mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Generate vsir registers from patch variable derefs.
This commit is contained in:
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
@@ -122,7 +122,7 @@ float4 main(InputPatch<data, 2> patch) : SV_TARGET
|
||||
return 0;
|
||||
}
|
||||
|
||||
[hull shader todo]
|
||||
[hull shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -148,7 +148,7 @@ float4 main(InputPatch<data, 2> patch) : POSITION
|
||||
return 0;
|
||||
}
|
||||
|
||||
[hull shader todo]
|
||||
[hull shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -242,7 +242,7 @@ float4 main(OutputPatch<data, 2> patch) : POSITION
|
||||
return patch[0].val;
|
||||
}
|
||||
|
||||
[hull shader todo]
|
||||
[hull shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -273,7 +273,7 @@ out_data main()
|
||||
return (out_data)0;
|
||||
}
|
||||
|
||||
[domain shader todo]
|
||||
[domain shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -304,7 +304,7 @@ void main(OutputPatch<data, 2> patch, inout PointStream<data> vout)
|
||||
|
||||
% Patch parameters can't have more than 32 control points.
|
||||
|
||||
[hull shader todo]
|
||||
[hull shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -356,7 +356,7 @@ float4 main(InputPatch<data, 33> patch) : POSITION
|
||||
return 0;
|
||||
}
|
||||
|
||||
[domain shader todo]
|
||||
[domain shader]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -446,7 +446,7 @@ float4 main(OutputPatch<data, 2> patch, patch_constant_data input, OutputPatch<d
|
||||
|
||||
% InputPatch types must match between the main function and the patch constant function of a hull shader.
|
||||
|
||||
[hull shader fail todo]
|
||||
[hull shader fail]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
@@ -477,7 +477,7 @@ float4 main(InputPatch<data, 2> patch) : POSITION
|
||||
return 0;
|
||||
}
|
||||
|
||||
[hull shader fail todo]
|
||||
[hull shader fail]
|
||||
struct data
|
||||
{
|
||||
float4 val : VAL;
|
||||
|
||||
@@ -17,7 +17,7 @@ void main(uint id : SV_VertexID, out data output)
|
||||
output.zero = float3(0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
[hull shader todo]
|
||||
[hull shader]
|
||||
struct vsdata
|
||||
{
|
||||
float4 position : SV_Position;
|
||||
@@ -61,7 +61,7 @@ data main(InputPatch<vsdata, 3> input, uint i : SV_OutputControlPointID)
|
||||
return o;
|
||||
}
|
||||
|
||||
[domain shader todo]
|
||||
[domain shader]
|
||||
struct hsdata
|
||||
{
|
||||
float4 position : SV_Position;
|
||||
@@ -105,5 +105,6 @@ 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 (-1.0, -2.0, 0.5, 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 (-1.0, -2.0, 0.5, 1.0)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user