[PATCH vkd3d v2 03/10] vkd3d-shader/hlsl: Set component count for objects to 1. --- Francisco, I left a test marked as todo because it still fails on master, because of missing object copy.
Giovanni Mascellani
gmascellani at codeweavers.com
Tue May 10 08:08:31 CDT 2022
From: Francisco Casas <fcasas at codeweavers.com>
---
libs/vkd3d-shader/hlsl.c | 17 ++++++++++-------
tests/hlsl-initializer-objects.shader_test | 10 +++++-----
2 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c
index 7239b183..4bdd770a 100644
--- a/libs/vkd3d-shader/hlsl.c
+++ b/libs/vkd3d-shader/hlsl.c
@@ -412,17 +412,20 @@ unsigned int hlsl_type_component_count(struct hlsl_type *type)
{
return hlsl_type_component_count(type->e.array.type) * type->e.array.elements_count;
}
- if (type->type != HLSL_CLASS_STRUCT)
+ if (type->type == HLSL_CLASS_OBJECT)
{
- ERR("Unexpected data type %#x.\n", type->type);
- return 0;
+ return 1;
}
-
- LIST_FOR_EACH_ENTRY(field, type->e.elements, struct hlsl_struct_field, entry)
+ if (type->type == HLSL_CLASS_STRUCT)
{
- count += hlsl_type_component_count(field->type);
+ LIST_FOR_EACH_ENTRY(field, type->e.elements, struct hlsl_struct_field, entry)
+ {
+ count += hlsl_type_component_count(field->type);
+ }
+ return count;
}
- return count;
+ assert(0);
+ return 0;
}
bool hlsl_types_are_equal(const struct hlsl_type *t1, const struct hlsl_type *t2)
diff --git a/tests/hlsl-initializer-objects.shader_test b/tests/hlsl-initializer-objects.shader_test
index 2306d07f..5261aa05 100644
--- a/tests/hlsl-initializer-objects.shader_test
+++ b/tests/hlsl-initializer-objects.shader_test
@@ -25,8 +25,8 @@ float4 main() : sv_target
}
[test]
-todo draw quad
-todo probe all rgba (0.2, 0.2, 0.2, 0.1)
+draw quad
+probe all rgba (0.2, 0.2, 0.2, 0.1)
[pixel shader]
@@ -49,7 +49,7 @@ float4 main() : sv_target
[test]
todo draw quad
-todo probe all rgba (31.1, 41.1, 51.1, 61.1) 1
+probe all rgba (31.1, 41.1, 51.1, 61.1) 1
[pixel shader]
@@ -71,7 +71,7 @@ float4 main() : sv_target
}
-[pixel shader fail todo]
+[pixel shader fail]
Texture2D tex;
struct foo
@@ -90,7 +90,7 @@ float4 main() : sv_target
}
-[pixel shader fail todo]
+[pixel shader fail]
Texture2D tex;
struct foo
--
2.36.0
More information about the wine-devel
mailing list