[v3 PATCH 3/3] wined3d: Use EXT_framebuffer_multisample_blit_scaled extension.

Henri Verbeet hverbeet at gmail.com
Wed Mar 11 10:25:20 CDT 2020


On Wed, 11 Mar 2020 at 16:30, Paul Gofman <gofmanp at gmail.com> wrote:
> >> @@ -2630,7 +2635,8 @@ HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_
> >>          if (wined3d_texture_is_multisample_location(dst_texture, dst_location))
> >>              dst_location = WINED3D_LOCATION_RB_RESOLVED;
> >>
> >> -        if (wined3d_texture_is_multisample_location(src_texture, src_location))
> >> +        if ((!context->d3d_info->scaled_resolve || blit_op != WINED3D_BLIT_OP_COLOR_BLIT || convert)
> >> +                && wined3d_texture_is_multisample_location(src_texture, src_location))
> >>              src_location = WINED3D_LOCATION_RB_RESOLVED;
> >>      }
> > If scaled resolves are supported, we don't need to modify
> > "dst_location" either, right?
>
> No, we have to. Scaled resolve allows to scale from multisampled
> texture, but if destination is multisampled it always fails for me.
> There is explicit check for zero samples count on destination I spotted
> in Mesa code, and it seems to fail the same way on Nvidia.
>
Right, I checked the spec and it does say that. That limits the
benefit of EXT_framebuffer_multisample_blit_scaled a bit, but I guess
it's fine.



More information about the wine-devel mailing list