DirectXShaderCompiler icon indicating copy to clipboard operation
DirectXShaderCompiler copied to clipboard

Validation fails when linking to amplification shader target

Open dmpots opened this issue 2 years ago • 0 comments

Description When using dxc -link with an amplification shader target ( -Tas_6_6) I get a validation error message:

Link failed:
error: validation errors
Function: main: error: For amplification shader with entry 'main', payload size 8 is greater than declared size of 4 bytes.
note: at 'call void @dx.op.dispatchMesh.struct.payloadStruct(i32 173, i32 1, i32 1, i32 1, %struct.payloadStruct addrspace(3)* nonnull @"\01?p@@3UpayloadStruct@@A")' in block '#0' of function 'main'.
Validation failed.

If I compile the same shader directly to an amplification shader it works correctly.

Steps to Reproduce

> cat as.hlsl
struct payloadStruct
{
    uint myArbitraryData;
};

groupshared payloadStruct p;

[shader("amplification")]
[RootSignature("")]
[numthreads(1,1,1)]
void main(in uint3 groupID : SV_GroupID)
{
    p.myArbitraryData = groupID.z;
    DispatchMesh(1,1,1,p);
}

> dxc /Tas_6_6 as.hlsl
... outputs an amplification shader as expected ...
> dxc /Tlib_6_x /Fo as.lib as.hlsl
> dxc.exe /Tas_6_6 -link as.lib
Link failed:
error: validation errors
Function: main: error: For amplification shader with entry 'main', payload size 8 is greater than declared size of 4 bytes.
note: at 'call void @dx.op.dispatchMesh.struct.payloadStruct(i32 173, i32 1, i32 1, i32 1, %struct.payloadStruct addrspace(3)* nonnull @"\01?p@@3UpayloadStruct@@A")' in block '#0' of function 'main'.
Validation failed.

Actual Behavior

Link failed:
error: validation errors
Function: main: error: For amplification shader with entry 'main', payload size 8 is greater than declared size of 4 bytes.
note: at 'call void @dx.op.dispatchMesh.struct.payloadStruct(i32 173, i32 1, i32 1, i32 1, %struct.payloadStruct addrspace(3)* nonnull @"\01?p@@3UpayloadStruct@@A")' in block '#0' of function 'main'.
Validation failed.

Environment

  • DXC version dxcompiler.dll: 1.7 - 1.7.0.14071 (main, 9a0768d66); dxil.dll: 1.6(101.6.2104.33))
  • Host Operating System Windows 11

dmpots avatar Sep 11 '23 16:09 dmpots