WIP: HLSL: add structuredbuffer pass by reference in fn params
This PR adds the ability to pass structuredbuffer types by reference as function parameters. It also changes the representation of structuredbuffers from anonymous blocks with named members, to named blocks with pseudonymous members. That should not be an externally visible change.
This commit is contained in:
23
Test/hlsl.structbuffer.fn.frag
Normal file
23
Test/hlsl.structbuffer.fn.frag
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
StructuredBuffer<uint4> sbuf : register(t10);
|
||||
RWStructuredBuffer<uint4> sbuf2;
|
||||
|
||||
// Not shared, because of type difference.
|
||||
StructuredBuffer<uint3> sbuf3 : register(t12);
|
||||
|
||||
uint4 get(in StructuredBuffer<uint4> sb, uint bufferOffset)
|
||||
{
|
||||
return sb[bufferOffset];
|
||||
}
|
||||
|
||||
void set(in RWStructuredBuffer<uint4> sb, uint bufferOffset, uint4 data)
|
||||
{
|
||||
sb[bufferOffset] = data;
|
||||
}
|
||||
|
||||
float4 main(uint pos : FOO) : SV_Target0
|
||||
{
|
||||
set(sbuf2, 2, get(sbuf, 3));
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user