[PATCH vkd3d v2] vkd3d-shader: Don't redundantly override shader output info.

Philip Rebohle philip.rebohle at tu-dortmund.de
Thu Oct 24 15:33:15 CDT 2019


Signed-off-by: Philip Rebohle <philip.rebohle at tu-dortmund.de>
---
v2: Fix assertion with clip/cull distances.

Supersedes patch 171404.
---
 libs/vkd3d-shader/spirv.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 1598ae0..8e3b53a 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -4220,11 +4220,13 @@ static void vkd3d_dxbc_compiler_emit_shader_signature_outputs(struct vkd3d_dxbc_
         {
             case VKD3D_SV_CLIP_DISTANCE:
                 compiler->output_info[i].id = clip_distance_id;
+                compiler->output_info[i].component_type = VKD3D_TYPE_FLOAT;
                 compiler->output_info[i].array_element_mask = clip_distance_mask;
                 break;
 
             case VKD3D_SV_CULL_DISTANCE:
                 compiler->output_info[i].id = cull_distance_id;
+                compiler->output_info[i].component_type = VKD3D_TYPE_FLOAT;
                 compiler->output_info[i].array_element_mask = cull_distance_mask;
                 break;
 
@@ -4381,10 +4383,10 @@ static void vkd3d_dxbc_compiler_emit_output(struct vkd3d_dxbc_compiler *compiler
             vkd3d_spirv_build_op_decorate(builder, id, SpvDecorationPatch, NULL, 0);
 
         vkd3d_dxbc_compiler_decorate_xfb_output(compiler, id, output_component_count, signature_element);
-    }
 
-    compiler->output_info[signature_idx].id = id;
-    compiler->output_info[signature_idx].component_type = component_type;
+        compiler->output_info[signature_idx].id = id;
+        compiler->output_info[signature_idx].component_type = component_type;
+    }
 
     if (use_private_variable)
         storage_class = SpvStorageClassPrivate;
-- 
2.23.0




More information about the wine-devel mailing list