wined3d: Disable YUV formats when not supported.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d17fda090d
commit
27f1d5ae8e
|
@ -3224,7 +3224,8 @@ static void apply_format_fixups(struct wined3d_adapter *adapter, struct wined3d_
|
||||||
0, CHANNEL_SOURCE_X, 0, CHANNEL_SOURCE_W, 0, CHANNEL_SOURCE_ONE, 0, CHANNEL_SOURCE_ONE);
|
0, CHANNEL_SOURCE_X, 0, CHANNEL_SOURCE_W, 0, CHANNEL_SOURCE_ONE, 0, CHANNEL_SOURCE_ONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gl_info->supported[APPLE_YCBCR_422])
|
if (!gl_info->supported[APPLE_YCBCR_422] && gl_info->supported[ARB_FRAGMENT_PROGRAM]
|
||||||
|
&& gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
|
||||||
{
|
{
|
||||||
idx = get_format_idx(WINED3DFMT_YUY2);
|
idx = get_format_idx(WINED3DFMT_YUY2);
|
||||||
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_YUY2);
|
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_YUY2);
|
||||||
|
@ -3232,7 +3233,18 @@ static void apply_format_fixups(struct wined3d_adapter *adapter, struct wined3d_
|
||||||
idx = get_format_idx(WINED3DFMT_UYVY);
|
idx = get_format_idx(WINED3DFMT_UYVY);
|
||||||
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_UYVY);
|
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_UYVY);
|
||||||
}
|
}
|
||||||
|
else if (!gl_info->supported[APPLE_YCBCR_422] && (!gl_info->supported[ARB_FRAGMENT_PROGRAM]
|
||||||
|
|| !gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]))
|
||||||
|
{
|
||||||
|
idx = get_format_idx(WINED3DFMT_YUY2);
|
||||||
|
gl_info->formats[idx].glInternal = 0;
|
||||||
|
|
||||||
|
idx = get_format_idx(WINED3DFMT_UYVY);
|
||||||
|
gl_info->formats[idx].glInternal = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gl_info->supported[ARB_FRAGMENT_PROGRAM] && gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
|
||||||
|
{
|
||||||
idx = get_format_idx(WINED3DFMT_YV12);
|
idx = get_format_idx(WINED3DFMT_YV12);
|
||||||
format_set_flag(&gl_info->formats[idx], WINED3DFMT_FLAG_HEIGHT_SCALE);
|
format_set_flag(&gl_info->formats[idx], WINED3DFMT_FLAG_HEIGHT_SCALE);
|
||||||
gl_info->formats[idx].height_scale.numerator = 3;
|
gl_info->formats[idx].height_scale.numerator = 3;
|
||||||
|
@ -3244,6 +3256,15 @@ static void apply_format_fixups(struct wined3d_adapter *adapter, struct wined3d_
|
||||||
gl_info->formats[idx].height_scale.numerator = 3;
|
gl_info->formats[idx].height_scale.numerator = 3;
|
||||||
gl_info->formats[idx].height_scale.denominator = 2;
|
gl_info->formats[idx].height_scale.denominator = 2;
|
||||||
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_NV12);
|
gl_info->formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_NV12);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
idx = get_format_idx(WINED3DFMT_YV12);
|
||||||
|
gl_info->formats[idx].glInternal = 0;
|
||||||
|
|
||||||
|
idx = get_format_idx(WINED3DFMT_NV12);
|
||||||
|
gl_info->formats[idx].glInternal = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
|
if (!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue