From 4f3d189f539ea0c9831ca3a19b49e21220830574 Mon Sep 17 00:00:00 2001 From: Andrey Gusev Date: Fri, 19 Nov 2021 14:37:21 +0100 Subject: [PATCH] wined3d: Add WINED3DFMT_R16_FLOAT vertex format. Fixes rendering glitches in Batman: Arkham Knight. Signed-off-by: Andrey Gusev Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d10core/tests/d3d10core.c | 2 ++ dlls/d3d11/tests/d3d11.c | 2 ++ dlls/wined3d/utils.c | 1 + 3 files changed, 5 insertions(+) diff --git a/dlls/d3d10core/tests/d3d10core.c b/dlls/d3d10core/tests/d3d10core.c index 73151f2296c..a4729f9d2d3 100644 --- a/dlls/d3d10core/tests/d3d10core.c +++ b/dlls/d3d10core/tests/d3d10core.c @@ -12373,6 +12373,7 @@ static void test_create_input_layout(void) DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_SINT, + DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_SINT, DXGI_FORMAT_R8_UINT, @@ -13648,6 +13649,7 @@ static void test_format_support(void) static const struct format_support vertex_buffers[] = { {DXGI_FORMAT_R8G8_UINT}, + {DXGI_FORMAT_R16_FLOAT}, }; if (!(device = create_device())) diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index 140e7cc195c..53087684acf 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -18552,6 +18552,7 @@ static void test_create_input_layout(void) DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_SINT, + DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_SINT, DXGI_FORMAT_R8G8_UNORM, @@ -20622,6 +20623,7 @@ static void test_format_support(const D3D_FEATURE_LEVEL feature_level) static const struct format_support vertex_buffers[] = { {DXGI_FORMAT_R8G8_UINT, D3D_FEATURE_LEVEL_10_0}, + {DXGI_FORMAT_R16_FLOAT, D3D_FEATURE_LEVEL_10_0}, }; device_desc.feature_level = &feature_level; diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 1b0d7cc6eba..b7afa721587 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -727,6 +727,7 @@ static const struct wined3d_format_vertex_info format_vertex_info[] = {WINED3DFMT_R8_UINT, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_BYTE}, {WINED3DFMT_R8_SINT, WINED3D_FFP_EMIT_INVALID, GL_BYTE}, {WINED3DFMT_R8G8_UINT, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_BYTE}, + {WINED3DFMT_R16_FLOAT, WINED3D_FFP_EMIT_INVALID, GL_HALF_FLOAT, ARB_HALF_FLOAT_VERTEX}, {WINED3DFMT_R16_UINT, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_SHORT}, {WINED3DFMT_R16_SINT, WINED3D_FFP_EMIT_INVALID, GL_SHORT}, {WINED3DFMT_R32_UINT, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_INT},