vkd3d-shader/hlsl: Accept multiple colon-separated attributes.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov
2024-10-27 14:31:20 +01:00
committed by Henri Verbeet
parent 794f4c30f4
commit 5ea946aa90
Notes: Henri Verbeet 2024-11-05 20:05:24 +01:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1230
5 changed files with 75 additions and 23 deletions

View File

@@ -639,7 +639,7 @@ float4 main() : sv_target
return tex.Sample(sam, float2(0, 0));
}
[pixel shader todo]
[pixel shader]
Texture2D tex;
cbuffer buffer

View File

@@ -39,6 +39,16 @@ float4 main(float tex : texcoord) : sv_target
todo(msl) draw quad
probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2)
[pixel shader fail(sm>=6)]
float4 main(float tex : texcoord) : semantic : sv_target
{
return tex;
}
[test]
todo(msl) draw quad
probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2)
[pixel shader]
float4 main(float tex : texcoord) : sv_target
@@ -76,7 +86,7 @@ float4 main(in float2 arr[2]) : sv_target
[pixel shader]
struct apple
{
float3 tp[4] : TEXCOORD0;
float3 tp[4] : BOGUS : TEXCOORD0;
};
float4 main(in apple a) : sv_target

View File

@@ -224,7 +224,7 @@ uniform 4 float 101
todo(msl) draw quad
probe (0, 0) rgba (100, 100, 100, 100)
[pixel shader todo]
[pixel shader]
cbuffer c
{
float a : packoffset(c1);
@@ -241,9 +241,26 @@ float4 main() : sv_target
uniform 0 float 200
uniform 4 float 201
uniform 8 float 202
todo(sm<6) draw quad
todo(sm<6) probe (0,0) rgba (201.0, 202.0, 0.0, 0.0)
draw quad
probe (0,0) rgba (201.0, 202.0, 0.0, 0.0)
[pixel shader]
cbuffer c
{
float a : packoffset(c1) : packoffset(c2);
}
float4 main() : sv_target
{
return float4(a, 0, 0, 0);
}
[test]
uniform 0 float 201
uniform 4 float 202
uniform 8 float 203
draw quad
probe (0,0) rgba (203.0, 0.0, 0.0, 0.0)
[pixel shader fail(sm<4)]
int k : register(i0); // register(cX) is also required.

View File

@@ -26,3 +26,17 @@ float4 main() : sv_target
uniform 0 float4 4.0 5.0 6.0 7.0
todo(msl) draw quad
probe (0, 0) rgba (4.0, 5.0, 4.0, 5.0)
[pixel shader]
float a : SEMANTIC : ANOTHER_SEMANTIC;
float4 main() : sv_target
{
return a;
}
[test]
uniform 0 float 3.5
todo(msl) draw quad
probe (0, 0) rgba (3.5, 3.5, 3.5, 3.5)