tests/hlsl: Test SM6.6 dynamic resources.

This commit is contained in:
Giovanni Mascellani
2025-11-18 14:49:08 +01:00
committed by Henri Verbeet
parent d380bc196f
commit f47f712164
Notes: Henri Verbeet 2025-11-24 19:12:37 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1812
4 changed files with 178 additions and 9 deletions

View File

@@ -123,3 +123,138 @@ u[2:3], space 0, uav 1
[test]
todo(msl) draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
% Test SM 6.6 dynamic resources on SRVs
[require]
shader model >= 6.6
descriptors
[pixel shader]
uniform uint idx;
float4 main() : SV_Target
{
Texture2D<float> t = ResourceDescriptorHeap[idx];
return t.Load(uint3(0, 0, 0));
}
[descriptors]
[test]
uniform 0 uint 0
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
uniform 0 uint 1
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 2
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
t[1:3], space 0, srv 0
[test]
uniform 0 uint 0
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
uniform 0 uint 1
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 2
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
t[1:2], space 0, srv 1
[test]
uniform 0 uint 0
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 1
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
t[1:3], space 0, srv 0
[pixel shader]
float4 main(float4 pos : SV_Position) : SV_Target
{
uint idx = floor(pos.x);
idx %= 3;
Texture2D<float> t = ResourceDescriptorHeap[NonUniformResourceIndex(idx)];
return t.Load(uint3(0, 0, 0));
}
[test]
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
probe (1, 0) f32(2.0, 2.0, 2.0, 2.0)
probe (2, 0) f32(3.0, 3.0, 3.0, 3.0)
% Test SM 6.6 dynamic resources on UAVs
[pixel shader]
uniform uint idx;
float4 main() : SV_Target
{
RWTexture2D<float> u = ResourceDescriptorHeap[idx];
return u[uint2(0, 0)];
}
[descriptors]
[test]
uniform 0 uint 3
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
uniform 0 uint 4
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 5
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
u[1:3], space 0, uav 1
[test]
uniform 0 uint 0
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
uniform 0 uint 1
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 2
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
u[1:2], space 0, uav 2
[test]
uniform 0 uint 0
todo draw quad
probe (0, 0) f32(2.0, 2.0, 2.0, 2.0)
uniform 0 uint 1
todo draw quad
probe (0, 0) f32(3.0, 3.0, 3.0, 3.0)
[descriptors]
[pixel shader]
float4 main(float4 pos : SV_Position) : SV_Target
{
uint idx = floor(pos.x);
idx %= 3;
RWTexture2D<float> u = ResourceDescriptorHeap[NonUniformResourceIndex(idx + 3)];
return u[uint2(0, 0)];
}
[test]
todo draw quad
probe (0, 0) f32(1.0, 1.0, 1.0, 1.0)
probe (1, 0) f32(2.0, 2.0, 2.0, 2.0)
probe (2, 0) f32(3.0, 3.0, 3.0, 3.0)