Files
vkd3d/tests/hlsl/point-sprite.shader_test
Francisco Casas 2e0cbff3a0 vkd3d-shader/hlsl: Allocate return variables before other outputs.
point-sprite.shader_test is not technically well formed since, in SM4,
the vertex output signature should be:

// Output signature:
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// sv_position              0   xyzw        0      POS   float   xyzw
// texcoord                 0   xy          1     NONE   float   xy

and the pixel input signature should be:

// Input signature:
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// texcoord                 0   xy          0     NONE   float   xy

so we are not passing "texcoord" properly to the pixel shader, even on
Windows.
2025-06-23 17:56:40 +02:00

49 lines
1.1 KiB
Plaintext

[require]
point-size
% For tex2D() with newer shader models.
options: backcompat
shader model < 6.0
[sampler 0]
filter linear linear linear
address clamp clamp clamp
[srv 0]
size (2d, 2, 2)
1.0 1.0 0.0 1.0 0.0 1.0 1.0 1.0
1.0 0.0 0.0 1.0 1.0 0.0 1.0 1.0
[vertex shader]
float4 main(out float2 t : texcoord) : sv_position
{
t = float2(1, 1);
return float4(0, 0, 0, 1);
}
[pixel shader]
sampler2D s;
float4 main(float2 t : texcoord) : sv_target
{
return tex2D(s, t);
}
[test]
clear rtv 0 0 0 0 0
point-size 30.0 1.0 64.0
point-sprite off
draw point list 1
todo(sm>=4 & sm<6) probe (310, 230) f32(1, 0, 1, 1)
todo(sm>=4 & sm<6) probe (330, 230) f32(1, 0, 1, 1)
todo(sm>=4 & sm<6) probe (310, 250) f32(1, 0, 1, 1)
todo(sm>=4 & sm<6) probe (330, 250) f32(1, 0, 1, 1)
clear rtv 0 0 0 0 0
point-size 30.0 1.0 64.0
point-sprite on
draw point list 1
bug(mvk & sm>=4 & sm<6) probe (310, 230) f32(1, 1, 0, 1)
bug(mvk & sm>=4 & sm<6) probe (330, 230) f32(0, 1, 1, 1)
bug(mvk & sm>=4 & sm<6) probe (310, 250) f32(1, 0, 0, 1)
bug(mvk & sm>=4 & sm<6) probe (330, 250) f32(1, 0, 1, 1)