Module: vkd3d Branch: master Commit: ce50c3a186306822d8e910af660e1b388991e19f URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/ce50c3a186306822d8e910af660e1b...
Author: Zebediah Figura zfigura@codeweavers.com Date: Fri Jan 26 16:36:41 2024 -0600
vkd3d-shader/hlsl: Use hlsl_type_is_resource() for unbounded array checks.
Not all objects can be unbounded descriptors.
---
libs/vkd3d-shader/hlsl.y | 4 ++-- tests/hlsl/unbounded-array-5.1.shader_test | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index 204e9b04..7655f69e 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -956,7 +956,7 @@ static bool gen_struct_fields(struct hlsl_ctx *ctx, struct parse_fields *fields,
field->type = type;
- if (hlsl_version_ge(ctx, 5, 1) && type->class == HLSL_CLASS_OBJECT) + if (hlsl_version_ge(ctx, 5, 1) && hlsl_type_is_resource(type)) { for (k = 0; k < v->arrays.count; ++k) unbounded_res_array |= (v->arrays.sizes[k] == HLSL_ARRAY_ELEMENTS_COUNT_IMPLICIT); @@ -2162,7 +2162,7 @@ static void declare_var(struct hlsl_ctx *ctx, struct parse_variable_def *v)
type = basic_type;
- if (hlsl_version_ge(ctx, 5, 1) && type->class == HLSL_CLASS_OBJECT) + if (hlsl_version_ge(ctx, 5, 1) && hlsl_type_is_resource(type)) { for (i = 0; i < v->arrays.count; ++i) unbounded_res_array |= (v->arrays.sizes[i] == HLSL_ARRAY_ELEMENTS_COUNT_IMPLICIT); diff --git a/tests/hlsl/unbounded-array-5.1.shader_test b/tests/hlsl/unbounded-array-5.1.shader_test index e648e009..c2b4153f 100644 --- a/tests/hlsl/unbounded-array-5.1.shader_test +++ b/tests/hlsl/unbounded-array-5.1.shader_test @@ -18,6 +18,6 @@ float4 main() : sv_target {return 0;} float f[]; float4 main() : sv_target {return 0;}
-[pixel shader fail todo] +[pixel shader fail] STRING s[]; float4 main() : sv_target {return 0;}