[v3 PATCH 1/3] wined3d: Manage source texture resolve in texture2d_blt() for colour blits.

Paul Gofman gofmanp at gmail.com
Wed Mar 11 10:40:26 CDT 2020


On Wed, 11 Mar 2020 at 18:25 Henri Verbeet <hverbeet at gmail.com> wrote:

> On Wed, 11 Mar 2020 at 16:25, Paul Gofman <gofmanp at gmail.com> wrote:
> > On 3/11/20 15:22, Henri Verbeet wrote:
> > > On Tue, 10 Mar 2020 at 15:01, Paul Gofman <gofmanp at gmail.com> wrote:
> > >> @@ -2629,8 +2622,14 @@ HRESULT texture2d_blt(struct wined3d_texture
> *dst_texture, unsigned int dst_sub_
> > >>          dst_location = dst_texture->resource.map_binding;
> > >>
> > >>      context = context_acquire(device, dst_texture,
> dst_sub_resource_idx);
> > >> +    scale = abs(src_box->right - src_box->left) !=
> abs(dst_box->right - dst_box->left)
> > >> +            || abs(src_box->bottom - src_box->top) !=
> abs(dst_box->bottom - dst_box->top);
> > > "scale" is already initialised earlier in the function. It's true that
> > > this variant would allow flips and mirrors whereas the variant earlier
> > > in the texture2d_blt() doesn't, but flipped/mirrored boxes aren't
> > > valid for texture2d_blt(). (In particular, wined3d_texture_blt() calls
> > > wined3d_texture_check_box_dimensions(); callers would use
> > > WINEDDBLTFX_MIRROR* to do flipped/mirrored blits.)
> > >
> > >> +    src_location = (scale || convert || blit_op !=
> WINED3D_BLIT_OP_COLOR_BLIT)
> > >> +            && wined3d_texture_is_multisample_location(src_texture,
> > >> +            src_texture->resource.draw_binding) ?
> WINED3D_LOCATION_RB_RESOLVED
> > >> +            : src_texture->resource.draw_binding;
> > > is the "blit_op" check needed?
> > I think it is not strictly necessary as colour key or alpha test blits
> > won't end up in FBO blitter anyway, but I thought it is less fragile and
> > more clear to be explicit here. Should I remove that?
>
> To the extent that it makes a difference for those blit types, I think
> using the resolved location makes sense there as well.
>
Yes, that what I was trying to do, and additionally resolve for special
blits even if the size and format is the same, that’s what I put blit_op
check for. Should I remove that? Anyway, it is probably a separate change.

>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200311/dcbaf712/attachment.htm>


More information about the wine-devel mailing list