[PATCH 4/6] wined3d: Disable YUV formats when fixups are not supported.

Henri Verbeet hverbeet at gmail.com
Mon May 8 07:39:59 CDT 2017


On 7 May 2017 at 20:32, Matteo Bruni <mbruni at codeweavers.com> wrote:
> @@ -5192,8 +5193,19 @@ static BOOL wined3d_check_surface_capability(const struct wined3d_format *format
>
>      if (format->glInternal)
>      {
> -        TRACE("[OK]\n");
> -        return TRUE;
> +        switch (format->id)
> +        {
> +            case WINED3DFMT_YUY2:
> +            case WINED3DFMT_UYVY:
> +            case WINED3DFMT_YV12:
> +            case WINED3DFMT_NV12:
> +                TRACE("%s\n", gl_info->supported[ARB_FRAGMENT_PROGRAM]
> +                        ? "[OK]" : "[FAILED] - No YUV fixups support.");
> +                return gl_info->supported[ARB_FRAGMENT_PROGRAM];
> +            default:
> +                TRACE("[OK]\n");
> +                return TRUE;
> +        }
Generally speaking, we've been moving away from this kind of "list
some formats somewhere" approach. If we really have to disable these
formats, I'd argue apply_format_fixups() would be the correct place,
since creating the surfaces should probably also fail then. There's
also an argument that the CPU blitter should be able to handle these
though.



More information about the wine-devel mailing list