From: Henri Verbeet hverbeet@codeweavers.com
--- tests/hlsl/uav-rwtexture.shader_test | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/tests/hlsl/uav-rwtexture.shader_test b/tests/hlsl/uav-rwtexture.shader_test index bfa2b4413..79cb47def 100644 --- a/tests/hlsl/uav-rwtexture.shader_test +++ b/tests/hlsl/uav-rwtexture.shader_test @@ -180,6 +180,24 @@ float4 main() : sv_target1 return 0; }
+% RWTexture1DArray types +[pixel shader fail(sm>=6) todo] +struct s +{ + float3 a; +}; + +RWTexture1DArray<float4> u : register(u2); +RWTexture1DArray<float> u1; +RWTexture1DArray<float2x2> u2; +RWTexture1DArray<struct s> u3; + +float4 main() : sv_target1 +{ + u[int2(0, 0)] = float4(11.1, 12.2, 13.3, 14.4); + return 0; +} + % RWTexture2D types [pixel shader fail(sm>=6)] struct s @@ -275,6 +293,14 @@ float4 main() : sv_target1 return 0; }
+[pixel shader fail] +RWTexture1DArray<Texture2D> u; + +float4 main() : sv_target1 +{ + return 0; +} + [pixel shader fail] RWTexture2D<Texture2D> u;
@@ -310,6 +336,19 @@ struct s Texture2D t; };
+RWTexture1DArray<struct s> u; + +float4 main() : sv_target1 +{ + return 0; +} + +[pixel shader fail] +struct s +{ + Texture2D t; +}; + RWTexture2D<struct s> u;
float4 main() : sv_target1
From: Henri Verbeet hverbeet@codeweavers.com
--- libs/vkd3d-shader/hlsl.l | 1 + libs/vkd3d-shader/hlsl.y | 6 ++++++ tests/hlsl/uav-rwtexture.shader_test | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl.l b/libs/vkd3d-shader/hlsl.l index 90abd64a3..e3da914ec 100644 --- a/libs/vkd3d-shader/hlsl.l +++ b/libs/vkd3d-shader/hlsl.l @@ -109,6 +109,7 @@ register {return KW_REGISTER; } RWBuffer {return KW_RWBUFFER; } RWStructuredBuffer {return KW_RWSTRUCTUREDBUFFER; } RWTexture1D {return KW_RWTEXTURE1D; } +RWTexture1DArray {return KW_RWTEXTURE1DARRAY; } RWTexture2D {return KW_RWTEXTURE2D; } RWTexture3D {return KW_RWTEXTURE3D; } sampler {return KW_SAMPLER; } diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index ba738473f..7d645ce9a 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -4722,6 +4722,7 @@ static struct hlsl_scope *get_loop_scope(struct hlsl_scope *scope) %token KW_RWBUFFER %token KW_RWSTRUCTUREDBUFFER %token KW_RWTEXTURE1D +%token KW_RWTEXTURE1DARRAY %token KW_RWTEXTURE2D %token KW_RWTEXTURE3D %token KW_SAMPLER @@ -5547,6 +5548,10 @@ uav_type: { $$ = HLSL_SAMPLER_DIM_1D; } + | KW_RWTEXTURE1DARRAY + { + $$ = HLSL_SAMPLER_DIM_1DARRAY; + } | KW_RWTEXTURE2D { $$ = HLSL_SAMPLER_DIM_2D; @@ -5697,6 +5702,7 @@ type_no_void: { case HLSL_SAMPLER_DIM_BUFFER: case HLSL_SAMPLER_DIM_1D: + case HLSL_SAMPLER_DIM_1DARRAY: case HLSL_SAMPLER_DIM_2D: case HLSL_SAMPLER_DIM_3D: if ($3->class == HLSL_CLASS_ARRAY) diff --git a/tests/hlsl/uav-rwtexture.shader_test b/tests/hlsl/uav-rwtexture.shader_test index 79cb47def..8029eef8d 100644 --- a/tests/hlsl/uav-rwtexture.shader_test +++ b/tests/hlsl/uav-rwtexture.shader_test @@ -181,7 +181,7 @@ float4 main() : sv_target1 }
% RWTexture1DArray types -[pixel shader fail(sm>=6) todo] +[pixel shader fail(sm>=6)] struct s { float3 a;
From: Henri Verbeet hverbeet@codeweavers.com
--- tests/hlsl/uav-rwtexture.shader_test | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/tests/hlsl/uav-rwtexture.shader_test b/tests/hlsl/uav-rwtexture.shader_test index 8029eef8d..46cbe7ab4 100644 --- a/tests/hlsl/uav-rwtexture.shader_test +++ b/tests/hlsl/uav-rwtexture.shader_test @@ -216,6 +216,24 @@ float4 main() : sv_target1 return 0; }
+% RWTexture2DArray types +[pixel shader fail(sm>=6) todo] +struct s +{ + float3 a; +}; + +RWTexture2DArray<float4> u : register(u2); +RWTexture2DArray<float> u1; +RWTexture2DArray<float2x2> u2; +RWTexture2DArray<struct s> u3; + +float4 main() : sv_target1 +{ + u[int3(0, 0, 0)] = float4(11.1, 12.2, 13.3, 14.4); + return 0; +} + % RWTexture3D types [pixel shader fail(sm>=6)] struct s @@ -309,6 +327,14 @@ float4 main() : sv_target1 return 0; }
+[pixel shader fail] +RWTexture2DArray<Texture2D> u; + +float4 main() : sv_target1 +{ + return 0; +} + [pixel shader fail] RWTexture3D<Texture2D> u;
@@ -362,6 +388,19 @@ struct s Texture2D t; };
+RWTexture2DArray<struct s> u; + +float4 main() : sv_target1 +{ + return 0; +} + +[pixel shader fail] +struct s +{ + Texture2D t; +}; + RWTexture3D<struct s> u;
float4 main() : sv_target1
From: Henri Verbeet hverbeet@codeweavers.com
--- libs/vkd3d-shader/hlsl.l | 1 + libs/vkd3d-shader/hlsl.y | 6 ++++++ tests/hlsl/uav-rwtexture.shader_test | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl.l b/libs/vkd3d-shader/hlsl.l index e3da914ec..b3d4aeee8 100644 --- a/libs/vkd3d-shader/hlsl.l +++ b/libs/vkd3d-shader/hlsl.l @@ -111,6 +111,7 @@ RWStructuredBuffer {return KW_RWSTRUCTUREDBUFFER; } RWTexture1D {return KW_RWTEXTURE1D; } RWTexture1DArray {return KW_RWTEXTURE1DARRAY; } RWTexture2D {return KW_RWTEXTURE2D; } +RWTexture2DArray {return KW_RWTEXTURE2DARRAY; } RWTexture3D {return KW_RWTEXTURE3D; } sampler {return KW_SAMPLER; } sampler1D {return KW_SAMPLER1D; } diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index 7d645ce9a..e58574f75 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -4724,6 +4724,7 @@ static struct hlsl_scope *get_loop_scope(struct hlsl_scope *scope) %token KW_RWTEXTURE1D %token KW_RWTEXTURE1DARRAY %token KW_RWTEXTURE2D +%token KW_RWTEXTURE2DARRAY %token KW_RWTEXTURE3D %token KW_SAMPLER %token KW_SAMPLER1D @@ -5556,6 +5557,10 @@ uav_type: { $$ = HLSL_SAMPLER_DIM_2D; } + | KW_RWTEXTURE2DARRAY + { + $$ = HLSL_SAMPLER_DIM_2DARRAY; + } | KW_RWTEXTURE3D { $$ = HLSL_SAMPLER_DIM_3D; @@ -5704,6 +5709,7 @@ type_no_void: case HLSL_SAMPLER_DIM_1D: case HLSL_SAMPLER_DIM_1DARRAY: case HLSL_SAMPLER_DIM_2D: + case HLSL_SAMPLER_DIM_2DARRAY: case HLSL_SAMPLER_DIM_3D: if ($3->class == HLSL_CLASS_ARRAY) { diff --git a/tests/hlsl/uav-rwtexture.shader_test b/tests/hlsl/uav-rwtexture.shader_test index 46cbe7ab4..76535bd59 100644 --- a/tests/hlsl/uav-rwtexture.shader_test +++ b/tests/hlsl/uav-rwtexture.shader_test @@ -217,7 +217,7 @@ float4 main() : sv_target1 }
% RWTexture2DArray types -[pixel shader fail(sm>=6) todo] +[pixel shader fail(sm>=6)] struct s { float3 a;
This merge request was approved by Henri Verbeet.
This merge request was approved by Giovanni Mascellani.