On Wed, 11 Mar 2020 at 16:30, Paul Gofman gofmanp@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.