2023-06-07 18:21:59 +02:00
|
|
|
[require]
|
|
|
|
shader model >= 4.0
|
|
|
|
|
2024-01-24 16:11:17 -03:00
|
|
|
[srv 0]
|
|
|
|
size (2d, 2, 3)
|
2023-06-07 18:21:59 +02:00
|
|
|
|
|
|
|
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
|
|
|
|
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
|
|
|
|
|
2023-06-07 20:34:59 +02:00
|
|
|
[pixel shader]
|
2023-06-07 18:21:59 +02:00
|
|
|
Texture2D t : register(t0);
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
uint u1, u2;
|
|
|
|
float f1, f2;
|
|
|
|
float4 ret;
|
|
|
|
|
|
|
|
t.GetDimensions(u1, u2);
|
|
|
|
t.GetDimensions(f1, f2);
|
|
|
|
ret.x = u1;
|
|
|
|
ret.y = f2;
|
|
|
|
t.GetDimensions(u1, f2);
|
|
|
|
ret.z = u1;
|
|
|
|
t.GetDimensions(f1, u2);
|
|
|
|
ret.w = u2;
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-10-21 22:23:27 +08:00
|
|
|
todo(glsl | msl) draw quad
|
2024-02-10 13:16:22 -06:00
|
|
|
probe (0, 0) rgba (2.0, 3.0, 2.0, 3.0)
|
2023-06-07 18:21:59 +02:00
|
|
|
|
2024-01-24 16:11:17 -03:00
|
|
|
[srv 1]
|
|
|
|
size (2d, 2, 2)
|
2023-06-07 18:21:59 +02:00
|
|
|
levels 2
|
|
|
|
|
|
|
|
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
|
|
|
|
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
|
|
|
|
|
|
|
|
0.0 0.0 1.0 0.0
|
|
|
|
|
2023-06-07 20:34:59 +02:00
|
|
|
[pixel shader]
|
2023-06-07 18:21:59 +02:00
|
|
|
Texture2D t : register(t1);
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
float4 ret;
|
|
|
|
|
|
|
|
t.GetDimensions(ret.x, ret.y);
|
|
|
|
t.GetDimensions(1, ret.z, ret.z, ret.w);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-10-21 22:23:27 +08:00
|
|
|
todo(glsl | msl) draw quad
|
2024-02-10 13:16:22 -06:00
|
|
|
probe (0, 0) rgba (2.0, 2.0, 1.0, 2.0)
|
2025-02-04 13:15:01 +10:00
|
|
|
|
|
|
|
[require]
|
|
|
|
shader model >= 6.2
|
|
|
|
native-16-bit
|
|
|
|
|
|
|
|
[uav 0]
|
|
|
|
format r32-uint
|
|
|
|
size (buffer, 4)
|
|
|
|
0 0 0 0
|
|
|
|
|
|
|
|
[compute shader]
|
|
|
|
RWBuffer<uint16_t> u : register(u0);
|
|
|
|
|
|
|
|
[numthreads(1, 1, 1)]
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
uint width;
|
|
|
|
u.GetDimensions(width);
|
|
|
|
u[0] = (uint16_t)width;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
dispatch 1 1 1
|
|
|
|
probe uav 0 (0) rui(4)
|
|
|
|
|
|
|
|
[uav 0]
|
|
|
|
stride 6
|
|
|
|
size (buffer, 2)
|
|
|
|
|
|
|
|
0 0 0
|
|
|
|
|
|
|
|
[compute shader]
|
|
|
|
struct foo
|
|
|
|
{
|
|
|
|
uint16_t count;
|
|
|
|
half h;
|
|
|
|
uint16_t stride;
|
|
|
|
};
|
|
|
|
|
|
|
|
RWStructuredBuffer<foo> u : register(u0);
|
|
|
|
|
|
|
|
[numthreads(1, 1, 1)]
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
uint count, stride;
|
|
|
|
u.GetDimensions(count, stride);
|
|
|
|
struct foo f0 = {(uint16_t)count, 0.5, (uint16_t)stride};
|
|
|
|
u[0] = f0;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
dispatch 1 1 1
|
|
|
|
probe uav 0 (0) rui(0x38000002)
|
|
|
|
probe uav 0 (1) rui(6)
|
|
|
|
|
|
|
|
[uav 0]
|
|
|
|
stride 8
|
|
|
|
size (buffer, 2)
|
|
|
|
|
|
|
|
0 0 0 0
|
|
|
|
|
|
|
|
[compute shader]
|
|
|
|
struct foo
|
|
|
|
{
|
|
|
|
uint16_t count;
|
|
|
|
half h;
|
|
|
|
uint32_t stride;
|
|
|
|
};
|
|
|
|
|
|
|
|
RWStructuredBuffer<foo> u : register(u0);
|
|
|
|
|
|
|
|
[numthreads(1, 1, 1)]
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
uint count, stride;
|
|
|
|
u.GetDimensions(count, stride);
|
|
|
|
struct foo f0 = {(uint16_t)count, 0.5, stride};
|
|
|
|
u[0] = f0;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
dispatch 1 1 1
|
|
|
|
probe uav 0 (0) rui(0x38000002)
|
|
|
|
probe uav 0 (1) rui(8)
|
|
|
|
|
|
|
|
[uav 0]
|
|
|
|
stride 8
|
|
|
|
size (buffer, 2)
|
|
|
|
|
|
|
|
0 0 0 0
|
|
|
|
|
|
|
|
[compute shader]
|
|
|
|
struct foo
|
|
|
|
{
|
|
|
|
uint16_t count;
|
|
|
|
uint32_t stride;
|
|
|
|
};
|
|
|
|
|
|
|
|
RWStructuredBuffer<foo> u : register(u0);
|
|
|
|
|
|
|
|
[numthreads(1, 1, 1)]
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
uint count, stride;
|
|
|
|
u.GetDimensions(count, stride);
|
|
|
|
struct foo f0 = {(uint16_t)count, stride};
|
|
|
|
u[0] = f0;
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
dispatch 1 1 1
|
|
|
|
probe uav 0 (0) rui(2)
|
|
|
|
probe uav 0 (1) rui(8)
|