On 7 May 2017 at 20:32, Matteo Bruni <mbruni(a)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.