sampleL.hlsl 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // RUN: %dxilver 1.5 | %dxc -E main -T ps_6_0 -DTYPE=float4 %s | FileCheck %s -check-prefix=CHK_FLOAT
  2. // RUN: %dxilver 1.5 | %dxc -E main -T ps_6_2 -DTYPE=half4 -enable-16bit-types %s | FileCheck %s -check-prefix=CHK_HALF
  3. // RUN: %dxilver 1.5 | %dxc -E main -T ps_6_2 -DTYPE=min16float4 -enable-16bit-types %s | FileCheck %s -check-prefix=CHK_HALF
  4. SamplerState samp1 : register(s5);
  5. Texture2D<TYPE> text1 : register(t3);
  6. TextureCubeArray<TYPE> text2 : register(t5);
  7. int LOD;
  8. TYPE main(float2 a
  9. : A) : SV_Target {
  10. uint status;
  11. TYPE r = 0;
  12. // CHK_FLOAT: call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62,
  13. // CHK_HALF: call %dx.types.ResRet.f16 @dx.op.sampleLevel.f16(i32 62,
  14. r += text1.SampleLevel(samp1, a, LOD);
  15. // CHK_FLOAT: call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62,
  16. // CHK_HALF: call %dx.types.ResRet.f16 @dx.op.sampleLevel.f16(i32 62,
  17. r += text1.SampleLevel(samp1, a, LOD, uint2(-5, 7));
  18. // CHK_FLOAT: call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62,
  19. // CHK_HALF: call %dx.types.ResRet.f16 @dx.op.sampleLevel.f16(i32 62,
  20. // CHK_FLOAT: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
  21. // CHK_HALF: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
  22. r += text1.SampleLevel(samp1, a, LOD, uint2(-3, 2), status);
  23. r += CheckAccessFullyMapped(status);
  24. // CHK_FLOAT: call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62,
  25. // CHK_HALF: call %dx.types.ResRet.f16 @dx.op.sampleLevel.f16(i32 62,
  26. r += text2.SampleLevel(samp1, a.xyxy, LOD);
  27. // CHK_FLOAT: call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62,
  28. // CHK_HALF: call %dx.types.ResRet.f16 @dx.op.sampleLevel.f16(i32 62,
  29. // CHK_FLOAT: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
  30. // CHK_HALF: call i1 @dx.op.checkAccessFullyMapped.i32(i32 71,
  31. r += text2.SampleLevel(samp1, a.xyxy, LOD * 0.5, status);
  32. r += CheckAccessFullyMapped(status);
  33. return r;
  34. }