gather.hlsl 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: textureGather
  3. SamplerState samp1 : register(s5);
  4. Texture2D<float4> text1 : register(t3);
  5. float4 main(float2 a : A) : SV_Target
  6. {
  7. uint status;
  8. float4 r = 0;
  9. r += text1.Gather(samp1, a);
  10. r += text1.Gather(samp1, a, uint2(-5, 7));
  11. r += text1.Gather(samp1, a, uint2(-3, 2), status); r += status;
  12. r += text1.GatherAlpha(samp1, a);
  13. r += text1.GatherAlpha(samp1, a, uint2(-3,8));
  14. r += text1.GatherAlpha(samp1, a, uint2(-3,8),status); r += status;
  15. r += text1.GatherAlpha(samp1, a, uint2(-3,8),uint2(-2,3), uint2(-3,8),uint2(-2,3));
  16. r += text1.GatherAlpha(samp1, a, uint2(-3,8),uint2(8,-3), uint2(8,-3), uint2(-3,2), status); r+=status;
  17. r += text1.GatherBlue(samp1, a);
  18. r += text1.GatherBlue(samp1, a, uint2(-3,8));
  19. r += text1.GatherBlue(samp1, a, uint2(-3,8),status); r += status;
  20. r += text1.GatherBlue(samp1, a, uint2(-3,8),uint2(-2,3), uint2(-3,8),uint2(-2,3));
  21. r += text1.GatherBlue(samp1, a, uint2(-3,8),uint2(8,-3), uint2(8,-3), uint2(-3,2), status); r+=status;
  22. r += text1.GatherGreen(samp1, a);
  23. r += text1.GatherGreen(samp1, a, uint2(-3,8));
  24. r += text1.GatherGreen(samp1, a, uint2(-3,8),status); r += status;
  25. r += text1.GatherGreen(samp1, a, uint2(-3,8),uint2(-2,3), uint2(-3,8),uint2(-2,3));
  26. r += text1.GatherGreen(samp1, a, uint2(-3,8),uint2(8,-3), uint2(8,-3), uint2(-3,2), status); r+=status;
  27. r += text1.GatherRed(samp1, a);
  28. r += text1.GatherRed(samp1, a, uint2(-3,8));
  29. r += text1.GatherRed(samp1, a, uint2(-3,8),status); r += status;
  30. r += text1.GatherRed(samp1, a, uint2(-3,8),uint2(-2,3), uint2(-3,8),uint2(-2,3));
  31. r += text1.GatherRed(samp1, a, uint2(-3,8),uint2(8,-3), uint2(8,-3), uint2(-3,2), status); r+=status;
  32. return r;
  33. }