struct_bufHasCounter.hlsl 558 B

123456789101112131415161718192021222324252627282930
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: r/w+cnt
  3. // CHECK: r/w+cnt
  4. // CHECK: r/w+cnt
  5. // CHECK: r/w+cnt
  6. struct Foo
  7. {
  8. float2 a;
  9. float3 b;
  10. int2 c[4];
  11. };
  12. AppendStructuredBuffer<Foo> buf1;
  13. RWStructuredBuffer<Foo> buf2;
  14. ConsumeStructuredBuffer<Foo> buf3;
  15. RWStructuredBuffer<Foo> buf4;
  16. float4 main(float idx1 : Idx1, float idx2 : Idx2) : SV_Target
  17. {
  18. float4 r = 0;
  19. uint counter = buf2.IncrementCounter();
  20. counter = buf4.DecrementCounter();
  21. Foo f = buf3.Consume();
  22. buf1.Append(f);
  23. buf2[counter] = buf4[counter];
  24. return r;
  25. }