vkd3d-shader: Implement shader model 1.0-1.3 texture projection.

This commit is contained in:
Elizabeth Figura
2025-08-09 15:33:46 -05:00
committed by Henri Verbeet
parent 44c80c60b8
commit c50210f230
Notes: Henri Verbeet 2025-11-20 18:37:00 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1814
9 changed files with 209 additions and 9 deletions

View File

@@ -0,0 +1,62 @@
% Test for the D3DTTFF_* projected texture flags.
[require]
shader model < 3.0
[sampler 0]
filter point point point
address clamp clamp clamp
[srv 0]
size (2d, 5, 5)
.0 .0 .0 .1 .1 .0 .0 .1 .2 .0 .0 .1 .3 .0 .0 .1 .4 .0 .0 .1
.0 .1 .0 .1 .1 .1 .0 .1 .2 .1 .0 .1 .3 .1 .0 .1 .4 .1 .0 .1
.0 .2 .0 .1 .1 .2 .0 .1 .2 .2 .0 .1 .3 .2 .0 .1 .4 .2 .0 .1
.0 .3 .0 .1 .1 .3 .0 .1 .2 .3 .0 .1 .3 .3 .0 .1 .4 .3 .0 .1
.0 .4 .0 .1 .1 .4 .0 .1 .2 .4 .0 .1 .3 .4 .0 .1 .4 .4 .0 .1
[vertex shader]
void main(inout float4 pos : position, out float4 tex : texcoord)
{
tex = float4(1.2, 0.5, 4.0, 2.0);
}
[pixel shader d3dbc-hex]
% TODO: Convert to assembly or HLSL.
ffff0101 % ps_1_1
00000042 b00f0000 % tex t0
00000001 800f0000 b0e40000 % mov r0, t0
0000ffff % end
[test]
projected 0 disable
draw quad
probe (0, 0) f32(0.4, 0.2, 0.0, 0.1)
projected 0 enable
draw quad
probe (0, 0) f32(0.3, 0.1, 0.0, 0.1)
% Doesn't affect 1.4 or 2.0.
[pixel shader d3dbc-hex]
% TODO: Convert to assembly or HLSL.
ffff0104 % ps_1_4
00000042 800f0000 b0e40000 % texld r0, t0
0000ffff % end
[test]
projected 0 enable
draw quad
probe (0, 0) f32(0.4, 0.2, 0.0, 0.1)
[pixel shader]
sampler sam;
float4 main(float2 tex : texcoord) : sv_target
{
return tex2D(sam, tex);
}
[test]
projected 0 enable
draw quad
probe (0, 0) f32(0.4, 0.2, 0.0, 0.1)