DebugMs.hlsl 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // RUN: %dxc -Emain -Tms_6_5 %s | %opt -S -hlsl-dxil-debug-instrumentation,parameter0=10,parameter1=20,parameter2=30 | %FileCheck %s
  2. // Check that the MS thread IDs are added properly
  3. // CHECK: %PIX_DebugUAV_Handle = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 0, i1 false)
  4. // CHECK: %ThreadIdX = call i32 @dx.op.threadId.i32(i32 93, i32 0)
  5. // CHECK: %ThreadIdY = call i32 @dx.op.threadId.i32(i32 93, i32 1)
  6. // CHECK: %ThreadIdZ = call i32 @dx.op.threadId.i32(i32 93, i32 2)
  7. // CHECK: %CompareToThreadIdX = icmp eq i32 %ThreadIdX, 10
  8. // CHECK: %CompareToThreadIdY = icmp eq i32 %ThreadIdY, 20
  9. // CHECK: %CompareToThreadIdZ = icmp eq i32 %ThreadIdZ, 30
  10. // CHECK: %CompareXAndY = and i1 %CompareToThreadIdX, %CompareToThreadIdY
  11. // CHECK: %CompareAll = and i1 %CompareXAndY, %CompareToThreadIdZ
  12. struct smallPayload {
  13. uint dummy;
  14. };
  15. struct PSInput {
  16. float4 position : SV_POSITION;
  17. float4 color : COLOR;
  18. };
  19. [outputtopology("triangle")]
  20. [numthreads(3, 1, 1)]
  21. void main(
  22. in payload smallPayload small,
  23. in uint tid : SV_DispatchThreadID,
  24. in uint tig : SV_GroupIndex,
  25. in uint groupId : SV_GroupID,
  26. out vertices PSInput verts[3],
  27. out indices uint3 triangles[1]) {
  28. SetMeshOutputCounts(3 /*verts*/, 1 /*prims*/);
  29. verts[tid].position = float4(0, 0, 0, 0);
  30. verts[tid].color = float4(0,0,0,0);
  31. triangles[0] = uint3(0, 1, 2);
  32. }