From b006a4c5acbc5704210a3b2bc55ec4c6dcef31ef Mon Sep 17 00:00:00 2001 From: Andrey Gusev Date: Fri, 17 Dec 2021 18:33:48 +0200 Subject: [PATCH] wined3d: Add WINED3DFMT_R11G11B10_FLOAT vertex format. Used by Dark Souls: Remastered. 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/adapter_gl.c | 2 ++ dlls/wined3d/utils.c | 2 ++ dlls/wined3d/wined3d_gl.h | 1 + 5 files changed, 9 insertions(+) diff --git a/dlls/d3d10core/tests/d3d10core.c b/dlls/d3d10core/tests/d3d10core.c index a4729f9d2d3..a1c4be46b7f 100644 --- a/dlls/d3d10core/tests/d3d10core.c +++ b/dlls/d3d10core/tests/d3d10core.c @@ -12370,6 +12370,7 @@ static void test_create_input_layout(void) DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_SINT, + DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_SINT, @@ -13649,6 +13650,7 @@ static void test_format_support(void) static const struct format_support vertex_buffers[] = { {DXGI_FORMAT_R8G8_UINT}, + {DXGI_FORMAT_R11G11B10_FLOAT}, {DXGI_FORMAT_R16_FLOAT}, }; diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index 154221e405c..a76e5fa1295 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -18549,6 +18549,7 @@ static void test_create_input_layout(void) DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_SINT, + DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_SINT, @@ -20623,6 +20624,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_R11G11B10_FLOAT, D3D_FEATURE_LEVEL_10_0}, {DXGI_FORMAT_R16_FLOAT, D3D_FEATURE_LEVEL_10_0}, }; diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 6cc2f0cd9a8..5511a70a8ff 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -159,6 +159,7 @@ static const struct wined3d_extension_map gl_extension_map[] = {"GL_ARB_vertex_buffer_object", ARB_VERTEX_BUFFER_OBJECT }, {"GL_ARB_vertex_program", ARB_VERTEX_PROGRAM }, {"GL_ARB_vertex_shader", ARB_VERTEX_SHADER }, + {"GL_ARB_vertex_type_10f_11f_11f_rev", ARB_VERTEX_TYPE_10F_11F_11F_REV}, {"GL_ARB_vertex_type_2_10_10_10_rev", ARB_VERTEX_TYPE_2_10_10_10_REV}, {"GL_ARB_viewport_array", ARB_VIEWPORT_ARRAY }, {"GL_ARB_texture_barrier", ARB_TEXTURE_BARRIER }, @@ -3385,6 +3386,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, {ARB_CLEAR_TEXTURE, MAKEDWORD_VERSION(4, 4)}, {ARB_QUERY_BUFFER_OBJECT, MAKEDWORD_VERSION(4, 4)}, {ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE, MAKEDWORD_VERSION(4, 4)}, + {ARB_VERTEX_TYPE_10F_11F_11F_REV, MAKEDWORD_VERSION(4, 4)}, {ARB_CLIP_CONTROL, MAKEDWORD_VERSION(4, 5)}, {ARB_CULL_DISTANCE, MAKEDWORD_VERSION(4, 5)}, diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index ef2e28b545a..5e375f43a48 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -709,6 +709,8 @@ static const struct wined3d_format_vertex_info format_vertex_info[] = {WINED3DFMT_R16G16B16A16_SNORM, WINED3D_FFP_EMIT_SHORT4N, GL_SHORT}, {WINED3DFMT_R16G16_UNORM, WINED3D_FFP_EMIT_USHORT2N, GL_UNSIGNED_SHORT}, {WINED3DFMT_R16G16B16A16_UNORM, WINED3D_FFP_EMIT_USHORT4N, GL_UNSIGNED_SHORT}, + {WINED3DFMT_R11G11B10_FLOAT, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_INT_10F_11F_11F_REV, + ARB_VERTEX_TYPE_10F_11F_11F_REV}, {WINED3DFMT_R10G10B10X2_UINT, WINED3D_FFP_EMIT_UDEC3, GL_UNSIGNED_SHORT}, {WINED3DFMT_R10G10B10X2_SNORM, WINED3D_FFP_EMIT_DEC3N, GL_SHORT}, {WINED3DFMT_R10G10B10A2_UNORM, WINED3D_FFP_EMIT_INVALID, GL_UNSIGNED_INT_2_10_10_10_REV, diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 2dbc56ab79d..7b6fa50c5f0 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -143,6 +143,7 @@ enum wined3d_gl_extension ARB_VERTEX_BUFFER_OBJECT, ARB_VERTEX_PROGRAM, ARB_VERTEX_SHADER, + ARB_VERTEX_TYPE_10F_11F_11F_REV, ARB_VERTEX_TYPE_2_10_10_10_REV, ARB_VIEWPORT_ARRAY, ARB_TEXTURE_BARRIER,