mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
tests/hlsl: Test vertex shader uniform indirect addressing.
Note that, for indexes with a decimal part, the behavior is different depending on whether it is a temp load or a direct uniform load (which can only happen on vertex shaders). The former rounds to the closest-to-zero, while the latter rounds to the nearest even.
This commit is contained in:
parent
20b76f87bf
commit
b6ce1479fe
Notes:
Henri Verbeet
2025-04-02 19:43:14 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1434
@ -41,9 +41,15 @@ probe (0, 0) rgba (11.0, 11.0, 11.0, 11.0)
|
|||||||
uniform 0 float 1
|
uniform 0 float 1
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgba (12.0, 12.0, 12.0, 12.0)
|
probe (0, 0) rgba (12.0, 12.0, 12.0, 12.0)
|
||||||
|
uniform 0 float 1.6
|
||||||
|
draw quad
|
||||||
|
probe (0, 0) rgba (12.0, 12.0, 12.0, 12.0)
|
||||||
uniform 0 float 2
|
uniform 0 float 2
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgba (13.0, 13.0, 13.0, 13.0)
|
probe (0, 0) rgba (13.0, 13.0, 13.0, 13.0)
|
||||||
|
uniform 0 float 2.6
|
||||||
|
draw quad
|
||||||
|
probe (0, 0) rgba (13.0, 13.0, 13.0, 13.0)
|
||||||
uniform 0 float 3
|
uniform 0 float 3
|
||||||
draw quad
|
draw quad
|
||||||
probe (0, 0) rgba (14.0, 14.0, 14.0, 14.0)
|
probe (0, 0) rgba (14.0, 14.0, 14.0, 14.0)
|
||||||
@ -355,6 +361,55 @@ if(sm<4) probe (0,0) rgba (1.0, 1.0, 1.0, 1.0)
|
|||||||
if(sm>=4 & sm<6) todo probe (0,0) rgba (4.0, 4.0, 4.0, 4.0)
|
if(sm>=4 & sm<6) todo probe (0,0) rgba (4.0, 4.0, 4.0, 4.0)
|
||||||
if(sm>=6) probe (0,0) rgba (4.0, 3.0, 2.0, 1.0)
|
if(sm>=6) probe (0,0) rgba (4.0, 3.0, 2.0, 1.0)
|
||||||
|
|
||||||
|
[vertex shader]
|
||||||
|
uniform float4 f[3];
|
||||||
|
uniform int2 i;
|
||||||
|
|
||||||
|
void main(float4 pos : position, out float4 tex : texcoord, out float4 out_pos : sv_position)
|
||||||
|
{
|
||||||
|
tex = f[i.x + i.y];
|
||||||
|
out_pos = pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
[pixel shader]
|
||||||
|
float4 main(float4 tex : texcoord) : sv_target
|
||||||
|
{
|
||||||
|
return tex;
|
||||||
|
}
|
||||||
|
|
||||||
|
[test]
|
||||||
|
uniform 0 float4 1.0 2.0 3.0 4.0
|
||||||
|
uniform 4 float4 5.0 6.0 7.0 8.0
|
||||||
|
uniform 8 float4 9.0 10.0 11.0 12.0
|
||||||
|
if(sm<4) uniform 12 float4 0 0 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 0 0 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
probe (0, 0) rgba(1.0, 2.0, 3.0, 4.0)
|
||||||
|
if(sm<4) uniform 12 float4 1 0 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 1 0 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0)
|
||||||
|
if(sm<4) uniform 12 float4 0 1 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 0 1 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0)
|
||||||
|
if(sm<4) uniform 12 float4 1 1 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 1 1 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
probe (0, 0) rgba(9.0, 10.0, 11.0, 12.0)
|
||||||
|
if(sm<4) uniform 12 float4 0.5 0 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 0 0 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
todo(sm<4) probe (0, 0) rgba(1.0, 2.0, 3.0, 4.0)
|
||||||
|
if(sm<4) uniform 12 float4 0 1.4 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 0 1 0 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
todo(sm<4) probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0)
|
||||||
|
if(sm<4) uniform 12 float4 1.5 0 0 0
|
||||||
|
if(sm>=4) uniform 12 int4 2 0 0 0
|
||||||
|
todo(msl) draw quad
|
||||||
|
todo(sm<4) probe (0, 0) rgba(9.0, 10.0, 11.0, 12.0)
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
shader model >= 4.0
|
shader model >= 4.0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user