Files
vkd3d/tests/hlsl/is-front-face.shader_test
2025-08-04 15:00:02 +02:00

63 lines
2.3 KiB
Plaintext

[require]
shader model >= 4.0
[input layout]
0 r32g32-float sv_position
[vb 0]
-2.0 -2.0
2.0 -2.0
-2.0 2.0
2.0 -2.0
-2.0 2.0
2.0 2.0
[vertex shader]
void main(out uint a : A, inout float4 pos : sv_position)
{
a = 2;
}
[pixel shader]
float4 main(uint a : A, bool face : sv_isfrontface) : sv_target
{
return float4(a, face, 0, 0);
}
[test]
todo(msl & sm>=6) draw triangle list 6
probe (160, 240) f32(2.0, 0.0, 0.0, 0.0)
probe (480, 240) f32(2.0, 1.0, 0.0, 0.0)
[require]
shader model >= 4.0
shader model < 4.1
[pixel shader dxbc-tpf-hex]
% As above, but compiled with native d3dcompiler_43.
% Versions 43 and earlier will pack together "a" with "face".
43425844 5c2e1427 858794db 4ee8c03b c5723497 00000001 00000140 % DXBC header
00000003 0000002c 00000080 000000b4 %
4e475349 0000004c 00000002 00000008 % .input
00000038 00000000 00000000 00000001 00000000 00000101 % .param A.x, v0.x, uint
0000003a 00000000 00000009 00000001 00000000 00000202 % .param sv_isfrontface.y, v0.y, uint, FFACE
76730041 6673695f 746e6f72 65636166 ababab00 %
4e47534f 0000002c 00000001 00000008 % .output
00000020 00000000 00000000 00000003 00000000 0000000f % .param sv_target.xyzw, o0.xyzw, float, TARGET
745f7673 65677261 abab0074 %
52444853 00000084 00000040 00000021 % .text ps_4_0
03000862 00101012 00000000 % dcl_input_ps constant v0.x
04000863 00101022 00000000 00000009 % dcl_input_ps_sgv v0.y, is_front_face
03000065 001020f2 00000000 % dcl_output o0.xyzw
05000056 00102012 00000000 0010100a 00000000 % utof o0.x, v0.x
07000001 00102022 00000000 0010101a 00000000 00004001 3f800000 % and o0.y, v0.y, l(0x3f800000)
08000036 001020c2 00000000 00004002 00000000 00000000 00000000 00000000 % mov o0.zw, l(0, 0, 0, 0)
0100003e % ret
[test]
clear rtv 0 0.0 0.0 0.0 0.0
todo(msl) draw triangle list 6
probe (160, 240) f32(2.0, 0.0, 0.0, 0.0)
todo(glsl) probe (480, 240) f32(2.0, 1.0, 0.0, 0.0)