Module: vkd3d Branch: master Commit: 09235d9e09f33f1880fb426e52184e14d821e417 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/09235d9e09f33f1880fb426e52184e... Author: Giovanni Mascellani <gmascellani(a)codeweavers.com> Date: Wed Dec 13 12:14:39 2023 +0100 tests: Test assigning multisampled textures with different sample counts. --- tests/hlsl/texture-load.shader_test | 66 +++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/hlsl/texture-load.shader_test b/tests/hlsl/texture-load.shader_test index 8609828b..30a33a4a 100644 --- a/tests/hlsl/texture-load.shader_test +++ b/tests/hlsl/texture-load.shader_test @@ -51,3 +51,69 @@ probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) + +% The sample count only matters for the external definition in SM4-5; +% internally it doesn't, you can even avoid it + +[require] +shader model >= 4.0 +shader model < 6.0 + +[pixel shader] +static const int size = 2; +Texture2DMS<float4, size - 1> t; + +float4 main(float4 pos : sv_position) : sv_target +{ + Texture2DMS<float4, 4> s = t; + return s.Load(pos.yx, 0); +} + +[test] +draw quad +probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) +probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) +probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) +probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) + +[pixel shader todo] +static const int size = 2; +Texture2DMS<float4, size - 1> t; + +float4 main(float4 pos : sv_position) : sv_target +{ + Texture2DMS<float4> s = t; + return s.Load(pos.yx, 0); +} + +[test] +todo draw quad +probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) +probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) +probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) +probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0) + +% SM6 is stricter instead + +[require] +shader model >= 6.0 + +[pixel shader fail] +static const int size = 2; +Texture2DMS<float4, size - 1> t; + +float4 main(float4 pos : sv_position) : sv_target +{ + Texture2DMS<float4, 4> s = t; + return s.Load(pos.yx, 0); +} + +[pixel shader fail] +static const int size = 2; +Texture2DMS<float4, size - 1> t; + +float4 main(float4 pos : sv_position) : sv_target +{ + Texture2DMS<float4> s = t; + return s.Load(pos.yx, 0); +}