From 5357ab78b9357fd5b716e062b640a7ebce050db0 Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Wed, 17 Nov 2021 13:06:02 +0100 Subject: [PATCH] vkd3d-shader/spirv: Fix the outer tessellation level indices for isoline tessellation. 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 Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- 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));