2
0

resource_param.hlsl 669 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // RUN: %dxc -E main -T ps_6_0 -O0 %s | FileCheck %s
  2. // TODO: check pointer of handle later.
  3. // CHECK: %dx.types.Handle
  4. RWBuffer<float4> uav1[2];
  5. RWBuffer<float4> uav2[2];
  6. RWBuffer<float4> getUav(float4 a)
  7. {
  8. if (a.x > 1)
  9. return uav1[1];
  10. else
  11. return uav1[0];
  12. }
  13. void getUav(float4 a, out RWBuffer<float4> uav)
  14. {
  15. if (a.x > 1)
  16. uav = uav2[0];
  17. else
  18. uav = uav2[1];
  19. }
  20. void test_inout(RWBuffer<float4> uav, float4 a)
  21. {
  22. uav[a.y] = a-1;
  23. }
  24. float4 main(float4 a : A, float4 b:B) : SV_TARGET
  25. {
  26. RWBuffer<float4> u1 = getUav(a);
  27. test_inout(u1, a);
  28. RWBuffer<float4> u2;
  29. getUav(b, u2);
  30. test_inout(u2, b);
  31. return b;
  32. }