mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-09-13 09:16:14 -07:00
d945d5e78c
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
148 lines
2.9 KiB
Plaintext
148 lines
2.9 KiB
Plaintext
[require]
|
|
shader model >= 4.0
|
|
|
|
[srv 0]
|
|
size (2d, 2, 2)
|
|
0.1 0.2 0.3 0.4 0.5 0.7 0.6 0.8
|
|
0.6 0.5 0.2 0.1 0.8 0.0 0.7 1.0
|
|
|
|
[pixel shader]
|
|
Texture2D t;
|
|
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
return t.Load(int3(pos.xy, 0));
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8)
|
|
probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1)
|
|
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
|
|
|
|
[pixel shader]
|
|
Texture2D t;
|
|
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
return t[pos.yx];
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) 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]
|
|
static const int size = 2;
|
|
Texture2DMS<float4, size - 1> t;
|
|
Texture2DMS<float4> t2;
|
|
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
return t.Load(pos.yx, 0);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) 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)
|
|
|
|
% 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]
|
|
todo(glsl) 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]
|
|
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(glsl) 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);
|
|
}
|
|
|
|
% SM4.0 cannot dynamically index multisampled textures, it relies on loop unrolling.
|
|
|
|
[require]
|
|
shader model >= 4.0
|
|
shader model < 4.1
|
|
|
|
[pixel shader]
|
|
Texture2DMS<float4, 1> t;
|
|
|
|
float4 main(float4 pos : sv_position) : sv_target
|
|
{
|
|
int i;
|
|
float4 o;
|
|
for (i = 0; i < 1; i++)
|
|
{
|
|
o = t.Load(pos.xy, i);
|
|
}
|
|
return o;
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4)
|
|
probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8)
|
|
probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1)
|
|
probe (1, 1) rgba (0.8, 0.0, 0.7, 1.0)
|