SimpleGS12.hlsl 588 B

1234567891011121314151617181920212223242526
  1. // RUN: %dxc -E main -T gs_6_0 %s | FileCheck %s
  2. // Make sure the rowIdx is not immediate.
  3. // CHECK: @dx.op.loadInput.f32(i32 4, i32 0, i32 %
  4. struct VSOut {
  5. float4 uv[2] : TEXCOORD0;
  6. float4 pos : SV_Position;
  7. };
  8. struct GSOut {
  9. float4 pos : SV_Position;
  10. };
  11. uint i;
  12. uint j;
  13. // geometry shader that outputs 3 vertices from a point
  14. [maxvertexcount(3)]
  15. [instance(24)]
  16. void main(triangle VSOut points[3], triangle VSOut points2[3] : Overwrite2, inout PointStream<GSOut> stream) {
  17. GSOut o;
  18. o.pos = points[j].uv[i] + points2[j].uv[i];
  19. stream.Append(o);
  20. stream.RestartStrip();
  21. }