mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
2bb1f39fa7
This modifies function parameter passing to pass the counter buffer associated with a struct buffer to a function as a hidden parameter. Similarly function declarations will have hidden parameters added to accept the associated counter buffers. There is a limitation: if a SB type may or may not have an associated counter, passing it as a function parameter will assume that it does, and the counter will appear in the linkage whether or not there is a counter method used on the object.
24 lines
477 B
GLSL
24 lines
477 B
GLSL
|
|
// float4 Fn1(ConsumeStructuredBuffer<float4> arg_c)
|
|
// {
|
|
// return arg_c.Consume();
|
|
// }
|
|
|
|
float4 Fn2(AppendStructuredBuffer<float4> arg_a, ConsumeStructuredBuffer<float4> arg_c)
|
|
{
|
|
arg_a.Append(float4(1,2,3,4));
|
|
return arg_c.Consume();
|
|
}
|
|
|
|
AppendStructuredBuffer<float4> sbuf_a;
|
|
ConsumeStructuredBuffer<float4> sbuf_c;
|
|
|
|
AppendStructuredBuffer<float4> sbuf_unused;
|
|
|
|
float4 main(uint pos : FOO) : SV_Target0
|
|
{
|
|
// Fn1(sbuf_c);
|
|
|
|
return Fn2(sbuf_a, sbuf_c);
|
|
}
|