inline_dbginfo.hlsl 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // RUN: %dxc -T ps_6_0 -E main -Zi %s | FileCheck %s
  2. // Make sure llvm.dbg.value exist.
  3. // CHECK: call void @llvm.dbg.value
  4. // Exclude quoted source file (see readme)
  5. // CHECK-LABEL: {{!"[^"]*\\0A[^"]*"}}
  6. typedef float4 MyCoolFloat4;
  7. static float4 myStaticGlobalVar = float4(1.0, 1.0, 1.0, 1.0);
  8. // Local var with same name as outer scope
  9. float4 localScopeVar_func(float4 val)
  10. {
  11. float4 color = val * val;
  12. return color;
  13. }
  14. // Local var with same name as register
  15. float4 localRegVar_func(float4 val)
  16. {
  17. float4 r1 = val;
  18. return r1;
  19. }
  20. // Array
  21. float4 array_func(float4 val)
  22. {
  23. float result[4];
  24. result[0] = val.x;
  25. result[1] = val.y;
  26. result[2] = val.z;
  27. result[3] = val.w;
  28. return float4(result[0], result[1], result[2], result[3]);
  29. }
  30. // Typedef
  31. float4 typedef_func(float4 val)
  32. {
  33. MyCoolFloat4 result = val;
  34. return result;
  35. }
  36. // Global
  37. float4 global_func(float4 val)
  38. {
  39. myStaticGlobalVar *= val;
  40. return myStaticGlobalVar;
  41. }
  42. float4 depth4(float4 val)
  43. {
  44. val = val * val;
  45. return val;
  46. }
  47. float4 depth3(float4 val)
  48. {
  49. val = depth4(val) * val;
  50. return val;
  51. }
  52. float4 depth2(float4 val)
  53. {
  54. val = depth3(val) * val;
  55. return val;
  56. }
  57. float4 main( float4 unused : SV_POSITION, float4 color : COLOR ) : SV_Target
  58. {
  59. float4 ret1 = localScopeVar_func(color);
  60. float4 ret2 = localRegVar_func(ret1);
  61. float4 ret3 = array_func(ret2);
  62. float4 ret4 = typedef_func(ret3);
  63. float4 ret5 = global_func(ret4);
  64. float4 ret6 = depth2(ret5);
  65. return max(ret6, color);
  66. }