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

Henri Verbeet hverbeet at gmail.com
Wed Mar 11 07:23:00 CDT 2020


On Tue, 10 Mar 2020 at 15:02, Paul Gofman <gofmanp at gmail.com> wrote:
> @@ -5162,6 +5164,8 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_
>      d3d_info->srgb_write_control = !!gl_info->supported[ARB_FRAMEBUFFER_SRGB];
>      d3d_info->clip_control = !!gl_info->supported[ARB_CLIP_CONTROL];
>      d3d_info->full_ffp_varyings = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_FULL_FFP_VARYINGS);
> +    d3d_info->scaled_resolve = gl_info->supported[EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED]
> +            || !gl_info->supported[ARB_TEXTURE_MULTISAMPLE];
Is the ARB_TEXTURE_MULTISAMPLE check correct?

> @@ -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?



More information about the wine-devel mailing list