2024-05-01 12:31:06 +10:00
|
|
|
[require]
|
|
|
|
shader model >= 4.0
|
|
|
|
rt-vp-array-index
|
|
|
|
|
|
|
|
[rtv 0]
|
|
|
|
format r32g32b32a32-float
|
|
|
|
size (2darray, 640, 480, 4)
|
|
|
|
|
|
|
|
[vertex shader]
|
|
|
|
uint layer_offset;
|
|
|
|
|
|
|
|
void main(float4 position : POSITION,
|
|
|
|
out float4 out_position : SV_POSITION,
|
|
|
|
out uint layer : SV_RenderTargetArrayIndex)
|
|
|
|
{
|
|
|
|
out_position = position;
|
|
|
|
layer = layer_offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uint layer_offset;
|
|
|
|
uint draw_id;
|
|
|
|
|
|
|
|
float4 main(in float4 pos : SV_Position,
|
|
|
|
in uint layer : SV_RenderTargetArrayIndex) : SV_Target
|
|
|
|
{
|
|
|
|
return float4(layer, draw_id, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint 0
|
|
|
|
uniform 1 uint 0
|
|
|
|
clear rtv 0 1.0 1.0 1.0 1.0
|
2024-04-23 20:44:51 +10:00
|
|
|
todo(glsl) draw quad
|
2024-05-01 12:31:06 +10:00
|
|
|
probe (320, 240, 0) rgba(0.0, 0.0, 0.0, 0.0)
|
|
|
|
probe (320, 240, 1) rgba(1.0, 1.0, 1.0, 1.0)
|
|
|
|
|
|
|
|
uniform 0 uint 1
|
|
|
|
uniform 1 uint 1
|
|
|
|
clear rtv 0 1.0 1.0 1.0 1.0
|
2024-04-23 20:44:51 +10:00
|
|
|
todo(glsl) draw quad
|
2024-05-01 12:31:06 +10:00
|
|
|
probe (320, 240, 0) rgba(1.0, 1.0, 1.0, 1.0)
|
|
|
|
probe (320, 240, 1) rgba(1.0, 1.0, 0.0, 0.0)
|
|
|
|
|
|
|
|
uniform 0 uint 3
|
|
|
|
uniform 1 uint 2
|
|
|
|
clear rtv 0 1.0 1.0 1.0 1.0
|
2024-04-23 20:44:51 +10:00
|
|
|
todo(glsl) draw quad
|
2024-05-01 12:31:06 +10:00
|
|
|
probe (320, 240, 0) rgba(1.0, 1.0, 1.0, 1.0)
|
|
|
|
probe (320, 240, 3) rgba(3.0, 2.0, 0.0, 0.0)
|