vs_output2.hlsl 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // RUN: %dxc /T vs_6_0 /E BezierVS /DDX12 /Od /Zi %s | FileCheck %s
  2. // CHECK-DAG: call void @llvm.dbg.value(metadata float %{{.+}}, i64 0, metadata !{{[0-9]+}}, metadata !{{[0-9]+}}), !dbg !{{[0-9]+}} ; var:"output" !DIExpression(DW_OP_bit_piece, 0, 32)
  3. // CHECK-DAG: call void @llvm.dbg.value(metadata float %{{.+}}, i64 0, metadata !{{[0-9]+}}, metadata !{{[0-9]+}}), !dbg !{{[0-9]+}} ; var:"output" !DIExpression(DW_OP_bit_piece, 32, 32)
  4. // CHECK-DAG: call void @llvm.dbg.value(metadata float %{{.+}}, i64 0, metadata !{{[0-9]+}}, metadata !{{[0-9]+}}), !dbg !{{[0-9]+}} ; var:"output" !DIExpression(DW_OP_bit_piece, 64, 32)
  5. //--------------------------------------------------------------------------------------
  6. // vs_output2.hlsl
  7. //
  8. // variation on vs_output.hlsl that breaks up the basic blocks
  9. // so that the llvm.dbg.declare and the store are in different scopes
  10. //
  11. // Advanced Technology Group (ATG)
  12. // Copyright (C) Microsoft Corporation. All rights reserved.
  13. //--------------------------------------------------------------------------------------
  14. #ifdef DX12
  15. #define RS \
  16. [RootSignature(" \
  17. RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), \
  18. DescriptorTable(CBV(b0, numDescriptors = 1), visibility=SHADER_VISIBILITY_ALL) \
  19. ")]
  20. #else
  21. #define RS
  22. #endif
  23. //--------------------------------------------------------------------------------------
  24. // Vertex shader section
  25. //--------------------------------------------------------------------------------------
  26. struct VS_CONTROL_POINT_INPUT
  27. {
  28. float3 pos : POSITION;
  29. };
  30. struct VS_CONTROL_POINT_OUTPUT
  31. {
  32. float3 pos : POSITION;
  33. };
  34. void SubProg(out VS_CONTROL_POINT_OUTPUT output, VS_CONTROL_POINT_INPUT input)
  35. {
  36. output.pos = input.pos;
  37. if (output.pos.z > 3)
  38. output.pos.z = 1;
  39. }
  40. RS
  41. VS_CONTROL_POINT_OUTPUT BezierVS( VS_CONTROL_POINT_INPUT input )
  42. {
  43. VS_CONTROL_POINT_OUTPUT output;
  44. SubProg(output, input);
  45. return output;
  46. }