[sampler 0] filter linear linear linear address clamp clamp clamp [srv 0] size (2d, 2, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 [pixel shader] sampler s; Texture2D t; float4 main() : sv_target { return t.Sample(s, float2(0.5, 0.5)); } [test] draw quad probe (0, 0) rgba (0.25, 0, 0.25, 0) [pixel shader] SamplerState s; Texture2D t; float4 main() : sv_target { return t.Sample(s, float2(0.5, 0.5)); } [test] draw quad probe (0, 0) rgba (0.25, 0, 0.25, 0) [pixel shader fail] sampler2D s; float4 main() : sv_target { return tex3D(s, float3(0.0, 0.0, 0.0)); } [pixel shader fail] sampler s; float4 main() : sv_target { return tex2D(s, float2(0.0, 0.0)) + tex3D(s, float3(0.0, 0.0, 0.0)); } [sampler 0] filter linear linear linear address clamp clamp clamp [srv 0] size (3d, 2, 2, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 0.0 [pixel shader] sampler s; Texture3D t; float4 main() : sv_target { return t.Sample(s, float3(0.5, 0.5, 0.5)); } [test] draw quad probe (0, 0) f32(0.25, 0.5, 0.25, 0) [srv 0] size (cube, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 1.0 0.0 0.1 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.2 0.0 1.0 0.0 0.2 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.3 0.0 1.0 0.0 0.3 0.0 0.0 0.0 0.4 0.0 0.0 0.0 0.4 0.0 0.0 0.0 0.4 0.0 1.0 0.0 0.4 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.5 0.0 1.0 0.0 0.5 0.0 [pixel shader] sampler s; TextureCube t; float3 coords; float4 main() : sv_target { return t.Sample(s, coords); } [test] uniform 0 float4 1 0 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.0, 0) uniform 0 float4 -1 0 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.1, 0) uniform 0 float4 0 1 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.2, 0) uniform 0 float4 0 -1 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.3, 0) uniform 0 float4 0 0 1 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.4, 0) uniform 0 float4 0 0 -1 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.5, 0) [require] options: backcompat [pixel shader fail(sm>=5.1) todo(sm>=5.1)] sampler1D s; float4 main() : sv_target { return tex1D(s, 0.0); } [srv 0] size (2d, 3, 3) 0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 2.0 0.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0 0.0 2.0 0.0 1.0 1.0 2.0 0.0 1.0 2.0 2.0 0.0 1.0 [pixel shader fail(sm>=5.1) todo(sm>=5.1)] sampler s; float4 f; float4 main() : sv_target { return tex2Dproj(s, f); } [test] uniform 0 float4 50.0 50.0 42.0 100 draw quad probe (0, 0) rgba(1.0, 1.0, 0, 1.0) uniform 0 float4 0.075 0.025 -42.0 0.1 draw quad probe (0, 0) rgba(1.75, 0.25, 0, 1.0) uniform 0 float4 0.5 1.5 0.0 2.0 draw quad probe (0, 0) rgba(0.25, 1.75, 0, 1.0) uniform 0 float4 1.0 1.0 0.0 0.0 draw quad probe (0, 0) rgba(2.0, 2.0, 0, 1.0) [sampler 0] filter linear linear linear address clamp clamp clamp [sampler 1] filter linear linear linear address clamp clamp clamp [sampler 2] filter linear linear linear address clamp clamp clamp [sampler 3] filter linear linear linear address clamp clamp clamp [sampler 4] filter linear linear linear address clamp clamp clamp [sampler 5] filter linear linear linear address clamp clamp clamp [srv 0] size (2d, 1, 1) 0.0 0.0 0.0 1.0 [srv 1] size (2d, 1, 1) 1.0 1.0 1.0 1.0 [srv 2] size (2d, 1, 1) 2.0 2.0 2.0 1.0 [srv 3] size (2d, 1, 1) 3.0 3.0 3.0 1.0 [srv 4] size (2d, 1, 1) 4.0 4.0 4.0 1.0 [srv 5] size (2d, 1, 1) 5.0 5.0 5.0 1.0 [pixel shader fail(sm>=5.1) todo(sm>=5.1)] sampler samA; sampler samB[2]; sampler samC[3]; float4 main() : sv_target { return 100 * tex2D(samC[2], float2(0, 0)) + 10 * tex2D(samB[0], float2(0, 0)) + tex2D(samA, float2(0, 0)); } [test] draw quad if(sm<4) probe (0, 0) rgba(243, 243, 243, 111) if(sm>=4) probe (0, 0) rgba(234, 234, 234, 111) [srv 0] size (3d, 2, 2, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 0.0 [pixel shader fail(sm>=5.1) todo(sm>=5.1)] sampler s; float4 main() : sv_target { return tex3D(s, float3(0.5, 0.5, 0.5)); } [test] draw quad probe (0, 0) f32(0.25, 0.5, 0.25, 0) [srv 0] size (cube, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 1.0 0.0 0.1 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.2 0.0 1.0 0.0 0.2 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.3 0.0 1.0 0.0 0.3 0.0 0.0 0.0 0.4 0.0 0.0 0.0 0.4 0.0 0.0 0.0 0.4 0.0 1.0 0.0 0.4 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.5 0.0 1.0 0.0 0.5 0.0 [pixel shader fail(sm>=5.1) todo(sm>=5.1)] samplerCUBE s; float3 coords; float4 main() : sv_target { return texCUBE(s, coords); } [test] uniform 0 float4 1 0 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.0, 0) uniform 0 float4 -1 0 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.1, 0) uniform 0 float4 0 1 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.2, 0) uniform 0 float4 0 -1 0 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.3, 0) uniform 0 float4 0 0 1 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.4, 0) uniform 0 float4 0 0 -1 0 draw quad probe (0, 0) f32(0.25, 0.0, 0.5, 0) [require] shader model >= 4.0 [srv 0] size (2d, 2, 2) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2621.0 0.0 -2621.0 0.0 [pixel shader] sampler s; Texture2D t; float4 main() : sv_target { return t.Sample(s, float2(0.5, 0.5)); } [test] todo(msl & sm>=6) draw quad probe (0, 0) rgba(655.0, 0, -655.0, 0) 4096 [require] shader model >= 6.2 native-16-bit [pixel shader] sampler s; Texture2D t; float4 main() : sv_target { return t.Sample(s, float2(0.5, 0.5)); } [test] draw quad probe (0, 0) rgba(655.0, 0, -655.0, 0)