Andrey Gusev : wined3d: Add WINED3DFMT_R11G11B10_FLOAT vertex format.

Alexandre Julliard julliard at winehq.org
Fri Dec 17 15:14:56 CST 2021


Module: wine
Branch: master
Commit: b006a4c5acbc5704210a3b2bc55ec4c6dcef31ef
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b006a4c5acbc5704210a3b2bc55ec4c6dcef31ef

Author: Andrey Gusev <andrey.goosev at gmail.com>
Date:   Fri Dec 17 18:33:48 2021 +0200

wined3d: Add WINED3DFMT_R11G11B10_FLOAT vertex format.

Used by Dark Souls: Remastered.

Signed-off-by: Andrey Gusev <andrey.goosev at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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,




More information about the wine-cvs mailing list