vkd3d-shader/hlsl: Generate vsir registers from patch variable derefs.

This commit is contained in:
Shaun Ren
2025-01-29 19:10:59 -05:00
committed by Henri Verbeet
parent 3fb241d4d6
commit ec6b4ed4ff
Notes: Henri Verbeet 2025-02-03 16:40:17 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Elizabeth Figura (@zfigura)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1362
5 changed files with 69 additions and 140 deletions

View File

@@ -19,7 +19,7 @@ void main(uint id : SV_VertexID, out data output)
output.b = 0.0;
}
[hull shader todo]
[hull shader]
struct data
{
float4 position : SV_Position;
@@ -50,7 +50,7 @@ data main(InputPatch<data, 3> input, uint i : SV_OutputControlPointID)
return input[i];
}
[domain shader todo]
[domain shader]
struct data
{
float4 position : SV_Position;
@@ -94,8 +94,9 @@ float4 main(data input) : sv_target
}
[test]
todo(sm<6) draw 3 control point patch list 3
todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)
% llvmpipe currently segfaults due to a bug during shader compilation in the driver.
if(!llvmpipe) todo(glsl | msl | mvk & vulkan) draw 3 control point patch list 3
if(!llvmpipe) todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)
% Passthrough hull shader control point function.
[hull shader todo]
@@ -129,5 +130,5 @@ void main(InputPatch<data, 3> input)
}
[test]
todo(sm<6) draw 3 control point patch list 3
todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)
if(!llvmpipe) todo(sm<6) draw 3 control point patch list 3
if(!llvmpipe) todo(mvk) probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0)