From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- libs/vkd3d-shader/hlsl.c | 3 ++- tests/hlsl-type-names.shader_test | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c index 2d17e514..2bd7ddf1 100644 --- a/libs/vkd3d-shader/hlsl.c +++ b/libs/vkd3d-shader/hlsl.c @@ -547,6 +547,7 @@ static const char * get_case_insensitive_typename(const char *name) static const char *const names[] = { "dword", + "float", }; unsigned int i;
@@ -2776,7 +2777,7 @@ static void declare_predefined_types(struct hlsl_ctx *ctx) effect_types[] = { {"dword", HLSL_CLASS_SCALAR, HLSL_TYPE_UINT, 1, 1}, - {"FLOAT", HLSL_CLASS_SCALAR, HLSL_TYPE_FLOAT, 1, 1}, + {"float", HLSL_CLASS_SCALAR, HLSL_TYPE_FLOAT, 1, 1}, {"VECTOR", HLSL_CLASS_VECTOR, HLSL_TYPE_FLOAT, 4, 1}, {"MATRIX", HLSL_CLASS_MATRIX, HLSL_TYPE_FLOAT, 4, 4}, {"STRING", HLSL_CLASS_OBJECT, HLSL_TYPE_STRING, 1, 1}, diff --git a/tests/hlsl-type-names.shader_test b/tests/hlsl-type-names.shader_test index b9be6af4..e88f1cda 100644 --- a/tests/hlsl-type-names.shader_test +++ b/tests/hlsl-type-names.shader_test @@ -1,20 +1,25 @@ [pixel shader] typedef float2 Dword; typedef float3 dWord; +typedef float2 fLoat;
float4 f() { typedef Dword dword; + typedef fLoat float; dword v1 = {1, 2}; + float v2 = {2, 3}; DWORD v4 = 4; - return float4(v.x, v.y, 3, v4); + return float4(v1.x, v2.x, v2.y, v4); }
float4 f2() { typedef dword dword; - dword v = 1; - return float4(v, v, v, v); + typedef float float; + dword v1 = 1; + float v2 = 1; + return float4(v1, v2, v1, v1); }
float4 main() : SV_TARGET @@ -42,3 +47,11 @@ float4 main() : sv_target { return float4(0, 0, 0, 0); } + +[pixel shader fail] +typedef float2 float; + +float4 main() : sv_target +{ + return float4(0, 0, 0, 0); +}