[PATCH vkd3d 5/6] vkd3d-shader/spirv: Fix the outer tessellation level indices for isoline tessellation.

Henri Verbeet hverbeet at codeweavers.com
Wed Nov 17 06:06:02 CST 2021


From: Conor McCarthy <cmccarthy at codeweavers.com>

For isoline tessellation, "density" is specified by OL0, and "detail" by OL1.

Based on a vkd3d-proton patch by Hans-Kristian Arntzen.

Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 libs/vkd3d-shader/spirv.c | 4 ++--
 tests/d3d12.c             | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index e1a7dd37..5a7e561f 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -4084,8 +4084,8 @@ vkd3d_system_value_builtins[] =
     {VKD3D_SIV_TRIANGLE_W_TESS_FACTOR,     {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelOuter, NULL, 4, 2}},
     {VKD3D_SIV_TRIANGLE_INNER_TESS_FACTOR, {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelInner, NULL, 2, 0}},
 
-    {VKD3D_SIV_LINE_DETAIL_TESS_FACTOR,  {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelOuter, NULL, 4, 0}},
-    {VKD3D_SIV_LINE_DENSITY_TESS_FACTOR, {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelOuter, NULL, 4, 1}},
+    {VKD3D_SIV_LINE_DENSITY_TESS_FACTOR, {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelOuter, NULL, 4, 0}},
+    {VKD3D_SIV_LINE_DETAIL_TESS_FACTOR,  {VKD3D_SHADER_COMPONENT_FLOAT, 1, SpvBuiltInTessLevelOuter, NULL, 4, 1}},
 };
 static const struct vkd3d_spirv_builtin vkd3d_pixel_shader_position_builtin =
 {
diff --git a/tests/d3d12.c b/tests/d3d12.c
index f5a1723a..670fbf4a 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -29506,7 +29506,7 @@ static void test_domain_shader_inputs(void)
         {1.0f, 2.0f, 0.0f, 0.5f, 2.5f, 8.0f, 2.0f, 1.0f},
         {1.0f, 2.0f, 1.0f, 0.5f, 2.5f, 8.0f, 2.0f, 1.0f},
     };
-    static const unsigned int is_todo[] = {0x00110000, 0x00110100, 0x00111100, 0x00111000};
+    static const unsigned int is_todo[] = {0x00110000, 0x00110000, 0x00110000, 0x00110000};
     static const unsigned int stride = sizeof(*reference);
 
     memset(&desc, 0, sizeof(desc));
-- 
2.20.1




More information about the wine-devel mailing list