From 9b65cc8895b08ac64ca9e23df4583dafa591d2dc Mon Sep 17 00:00:00 2001 From: Shaun Ren Date: Fri, 11 Apr 2025 11:35:57 -0400 Subject: [PATCH] vkd3d-shader/hlsl: Support HLSL_CLASS_STREAM_OUTPUT in hlsl type helpers. --- libs/vkd3d-shader/hlsl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c index d1d20b738..8915ca5df 100644 --- a/libs/vkd3d-shader/hlsl.c +++ b/libs/vkd3d-shader/hlsl.c @@ -591,6 +591,7 @@ static bool type_is_single_component(const struct hlsl_type *type) case HLSL_CLASS_HULL_SHADER: case HLSL_CLASS_GEOMETRY_SHADER: case HLSL_CLASS_BLEND_STATE: + case HLSL_CLASS_STREAM_OUTPUT: case HLSL_CLASS_NULL: return true; @@ -605,7 +606,6 @@ static bool type_is_single_component(const struct hlsl_type *type) case HLSL_CLASS_PASS: case HLSL_CLASS_TECHNIQUE: case HLSL_CLASS_VOID: - case HLSL_CLASS_STREAM_OUTPUT: break; } vkd3d_unreachable(); @@ -751,6 +751,7 @@ unsigned int hlsl_type_get_component_offset(struct hlsl_ctx *ctx, struct hlsl_ty case HLSL_CLASS_HULL_SHADER: case HLSL_CLASS_GEOMETRY_SHADER: case HLSL_CLASS_BLEND_STATE: + case HLSL_CLASS_STREAM_OUTPUT: VKD3D_ASSERT(idx == 0); break; @@ -762,7 +763,6 @@ unsigned int hlsl_type_get_component_offset(struct hlsl_ctx *ctx, struct hlsl_ty case HLSL_CLASS_SCALAR: case HLSL_CLASS_CONSTANT_BUFFER: case HLSL_CLASS_NULL: - case HLSL_CLASS_STREAM_OUTPUT: vkd3d_unreachable(); } type = next_type; @@ -1366,6 +1366,10 @@ struct hlsl_type *hlsl_type_clone(struct hlsl_ctx *ctx, struct hlsl_type *old, type->e.version = old->e.version; break; + case HLSL_CLASS_STREAM_OUTPUT: + type->e.so.so_type = old->e.so.so_type; + break; + default: break; }