[PATCH] wined3d: Check if destination texture is FBO attachable in glsl_blitter_supported().

Henri Verbeet hverbeet at gmail.com
Mon May 6 11:46:52 CDT 2019


On Mon, 6 May 2019 at 14:56, Paul Gofman <gofmanp at gmail.com> wrote:
> @@ -13193,6 +13193,14 @@ static BOOL glsl_blitter_supported(enum wined3d_blit_op blit_op, const struct wi
>          return FALSE;
>      }
>
> +    if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
> +            && !((dst_format->flags[WINED3D_GL_RES_TYPE_TEX_2D] & WINED3DFMT_FLAG_FBO_ATTACHABLE)
> +            || (dst_resource->bind_flags & WINED3D_BIND_RENDER_TARGET)))
> +    {
> +        TRACE("Destination texture is not FBO attachable.\n");
> +        return FALSE;
> +    }
> +
This is basically fine. Two comments though:

  - I could imagine cases where creating a staging destination texture
for the blit and compressing it afterwards would be preferable to
going through the CPU blitter. It's of course fine to handle that when
we run into it.
  - We're using src_format/dst_format with WINED3D_GL_RES_TYPE_TEX_2D
mostly for historical reasons, but at this point it would be more
appropriate to use src_resource/dst_resource->format_flags.



More information about the wine-devel mailing list