SamplerState g_sSamp : register(s0); Texture2DMS g_tTex2dmsf4; Texture2DMS g_tTex2dmsi4; Texture2DMS g_tTex2dmsu4; Texture2DMSArray g_tTex2dmsf4a; Texture2DMSArray g_tTex2dmsi4a; Texture2DMSArray g_tTex2dmsu4a; struct PS_OUTPUT { float4 Color : SV_Target0; float Depth : SV_Depth; }; uniform int c1; uniform int2 c2; uniform int3 c3; uniform int4 c4; int2 getOffset() { return int2(1, 1); } PS_OUTPUT main() { PS_OUTPUT psout; // 2DMS, no offset g_tTex2dmsf4.Load(c2, 3); g_tTex2dmsi4.Load(c2, 3); g_tTex2dmsu4.Load(c2, 3); // 2DMS, offset g_tTex2dmsf4.Load(c2, 3, getOffset()); g_tTex2dmsi4.Load(c2, 3, getOffset()); g_tTex2dmsu4.Load(c2, 3, getOffset()); // 2DMSArray, no offset g_tTex2dmsf4a.Load(c3, 3); g_tTex2dmsi4a.Load(c3, 3); g_tTex2dmsu4a.Load(c3, 3); // 2DMSArray, offset g_tTex2dmsf4a.Load(c3, 3, getOffset()); g_tTex2dmsi4a.Load(c3, 3, getOffset()); g_tTex2dmsu4a.Load(c3, 3, getOffset()); psout.Color = 1.0; psout.Depth = 1.0; return psout; }