feedback-reflect.hlsl 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. // RUN: %dxc -E main -T ps_6_5 %s | %D3DReflect %s | FileCheck %s
  2. // Test reflection for FeedbackTexture2D[Array]
  3. FeedbackTexture2D<SAMPLER_FEEDBACK_MIN_MIP> feedbackMinMip;
  4. FeedbackTexture2D<SAMPLER_FEEDBACK_MIP_REGION_USED> feedbackMipRegionUsed;
  5. FeedbackTexture2DArray<SAMPLER_FEEDBACK_MIN_MIP> feedbackMinMipArray;
  6. FeedbackTexture2DArray<SAMPLER_FEEDBACK_MIP_REGION_USED> feebackMipRegionUsedArray;
  7. Texture2D<float> texture2D;
  8. Texture2DArray<float> texture2DArray;
  9. SamplerState samp;
  10. float main() : SV_Target
  11. {
  12. float2 coords2D = float2(1, 2);
  13. float3 coords2DArray = float3(1, 2, 3);
  14. float clamp = 4;
  15. float bias = 0.5F;
  16. float lod = 6;
  17. float2 ddx = float2(1.0F / 32, 2.0F / 32);
  18. float2 ddy = float2(3.0F / 32, 4.0F / 32);
  19. float idx = 0; // Make each coord set unique
  20. feedbackMinMip.WriteSamplerFeedback(texture2D, samp, coords2D + (10 * idx++), clamp);
  21. feedbackMipRegionUsed.WriteSamplerFeedback(texture2D, samp, coords2D + (10 * idx++));
  22. feedbackMinMipArray.WriteSamplerFeedback(texture2DArray, samp, coords2DArray + (10 * idx++));
  23. feebackMipRegionUsedArray.WriteSamplerFeedback(texture2DArray, samp, coords2DArray + (10 * idx++));
  24. return 0;
  25. }
  26. // CHECK: ID3D12ShaderReflection:
  27. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC:
  28. // CHECK-NEXT: Shader Version: Pixel 6.5
  29. // CHECK-NEXT: Creator: <nullptr>
  30. // CHECK-NEXT: Flags: 0
  31. // CHECK-NEXT: ConstantBuffers: 0
  32. // CHECK-NEXT: BoundResources: 7
  33. // CHECK-NEXT: InputParameters: 0
  34. // CHECK-NEXT: OutputParameters: 1
  35. // CHECK-NEXT: Bound Resources:
  36. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: samp
  37. // CHECK-NEXT: Type: D3D_SIT_SAMPLER
  38. // CHECK-NEXT: uID: 0
  39. // CHECK-NEXT: BindCount: 1
  40. // CHECK-NEXT: BindPoint: 0
  41. // CHECK-NEXT: Space: 0
  42. // CHECK-NEXT: ReturnType: <unknown: 0>
  43. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_UNKNOWN
  44. // CHECK-NEXT: NumSamples (or stride): 0
  45. // CHECK-NEXT: uFlags: 0
  46. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: texture2D
  47. // CHECK-NEXT: Type: D3D_SIT_TEXTURE
  48. // CHECK-NEXT: uID: 0
  49. // CHECK-NEXT: BindCount: 1
  50. // CHECK-NEXT: BindPoint: 0
  51. // CHECK-NEXT: Space: 0
  52. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_FLOAT
  53. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2D
  54. // CHECK-NEXT: NumSamples (or stride): 4294967295
  55. // CHECK-NEXT: uFlags: 0
  56. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: texture2DArray
  57. // CHECK-NEXT: Type: D3D_SIT_TEXTURE
  58. // CHECK-NEXT: uID: 1
  59. // CHECK-NEXT: BindCount: 1
  60. // CHECK-NEXT: BindPoint: 1
  61. // CHECK-NEXT: Space: 0
  62. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_FLOAT
  63. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2DARRAY
  64. // CHECK-NEXT: NumSamples (or stride): 4294967295
  65. // CHECK-NEXT: uFlags: 0
  66. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: feedbackMinMip
  67. // CHECK-NEXT: Type: D3D_SIT_UAV_FEEDBACKTEXTURE
  68. // CHECK-NEXT: uID: 0
  69. // CHECK-NEXT: BindCount: 1
  70. // CHECK-NEXT: BindPoint: 0
  71. // CHECK-NEXT: Space: 0
  72. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_MIXED
  73. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2D
  74. // CHECK-NEXT: NumSamples (or stride): 4294967295
  75. // CHECK-NEXT: uFlags: 0
  76. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: feedbackMipRegionUsed
  77. // CHECK-NEXT: Type: D3D_SIT_UAV_FEEDBACKTEXTURE
  78. // CHECK-NEXT: uID: 1
  79. // CHECK-NEXT: BindCount: 1
  80. // CHECK-NEXT: BindPoint: 1
  81. // CHECK-NEXT: Space: 0
  82. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_MIXED
  83. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2D
  84. // CHECK-NEXT: NumSamples (or stride): 4294967295
  85. // CHECK-NEXT: uFlags: 0
  86. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: feedbackMinMipArray
  87. // CHECK-NEXT: Type: D3D_SIT_UAV_FEEDBACKTEXTURE
  88. // CHECK-NEXT: uID: 2
  89. // CHECK-NEXT: BindCount: 1
  90. // CHECK-NEXT: BindPoint: 2
  91. // CHECK-NEXT: Space: 0
  92. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_MIXED
  93. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2DARRAY
  94. // CHECK-NEXT: NumSamples (or stride): 4294967295
  95. // CHECK-NEXT: uFlags: 0
  96. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: feebackMipRegionUsedArray
  97. // CHECK-NEXT: Type: D3D_SIT_UAV_FEEDBACKTEXTURE
  98. // CHECK-NEXT: uID: 3
  99. // CHECK-NEXT: BindCount: 1
  100. // CHECK-NEXT: BindPoint: 3
  101. // CHECK-NEXT: Space: 0
  102. // CHECK-NEXT: ReturnType: D3D_RETURN_TYPE_MIXED
  103. // CHECK-NEXT: Dimension: D3D_SRV_DIMENSION_TEXTURE2DARRAY
  104. // CHECK-NEXT: NumSamples (or stride): 4294967295
  105. // CHECK-NEXT: uFlags: 0