cbuf-usage-lib.hlsl 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // RUN: %dxc -auto-binding-space 13 -T lib_6_3 -Vd -validator-version 0.0 %s | %D3DReflect %s | FileCheck %s
  2. // Make sure usage flag is set properly for cbuffers used in libraries
  3. // CHECK-NOT: CBufUnused
  4. // CHECK: D3D12_SHADER_BUFFER_DESC: Name: CBuf1
  5. // CHECK: Num Variables: 1
  6. // CHECK: D3D12_SHADER_VARIABLE_DESC: Name: CBuf1
  7. // CHECK: uFlags: 0x2
  8. // CHECK: CBuffer: CBuf1
  9. // CHECK: D3D12_SHADER_BUFFER_DESC: Name: CBuf0
  10. // CHECK: Num Variables: 2
  11. // CHECK: D3D12_SHADER_VARIABLE_DESC: Name: i1
  12. // CHECK: uFlags: 0
  13. // CHECK: D3D12_SHADER_VARIABLE_DESC: Name: f1
  14. // CHECK: uFlags: 0x2
  15. // CHECK: CBuffer: CBuf0
  16. // CHECK: D3D12_SHADER_BUFFER_DESC: Name: CBuf2
  17. // CHECK: Num Variables: 1
  18. // CHECK: D3D12_SHADER_VARIABLE_DESC: Name: CBuf2
  19. // CHECK: uFlags: 0x2
  20. // CHECK: CBuffer: CBuf2
  21. cbuffer CBuf0 {
  22. int i1;
  23. float f1;
  24. }
  25. struct CBStruct {
  26. int i2;
  27. float f2;
  28. };
  29. ConstantBuffer<CBStruct> CBuf1;
  30. ConstantBuffer<CBStruct> CBufUnused;
  31. ConstantBuffer<CBStruct> CBuf2[];
  32. float unused_func() {
  33. return CBufUnused.i2;
  34. }
  35. export float foo() {
  36. return CBuf1.i2;
  37. }
  38. [shader("vertex")]
  39. float main(int idx : IDX) : OUT {
  40. return f1 * CBuf2[idx].f2;
  41. }