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