0
0
mirror of https://gitlab.winehq.org/wine/vkd3d.git synced 2025-04-13 05:43:18 -07:00
Files
bin
crosslibs
demos
include
libs
m4
programs
tests
.gitignore
abs.shader_test
all.shader_test
arithmetic-float-uniform.shader_test
arithmetic-float.shader_test
arithmetic-int-uniform.shader_test
arithmetic-int.shader_test
arithmetic-uint.shader_test
array-parameters.shader_test
asuint.shader_test
bitwise.shader_test
cast-broadcast.shader_test
cast-componentwise-compatible.shader_test
cast-componentwise-equal.shader_test
cast-to-float.shader_test
cast-to-half.shader_test
cast-to-int.shader_test
cast-to-uint.shader_test
cbuffer.shader_test
compute.shader_test
conditional.shader_test
d3d12.c
d3d12_crosstest.h
d3d12_invalid_usage.c
d3d12_test_utils.h
distance.shader_test
entry-point-semantics.shader_test
exp.shader_test
expr-indexing.shader_test
floor.shader_test
frac.shader_test
function-return.shader_test
hlsl-array-dimension.shader_test
hlsl-attributes.shader_test
hlsl-bool-cast.shader_test
hlsl-clamp.shader_test
hlsl-comma.shader_test
hlsl-cross.shader_test
hlsl-dot.shader_test
hlsl-duplicate-modifiers.shader_test
hlsl-for.shader_test
hlsl-function-cast.shader_test
hlsl-function-overload.shader_test
hlsl-function.shader_test
hlsl-gather-offset.shader_test
hlsl-gather.shader_test
hlsl-initializer-flatten.shader_test
hlsl-initializer-implicit-array.shader_test
hlsl-initializer-invalid-arg-count.shader_test
hlsl-initializer-local-array.shader_test
hlsl-initializer-matrix.shader_test
hlsl-initializer-nested.shader_test
hlsl-initializer-numeric.shader_test
hlsl-initializer-objects.shader_test
hlsl-initializer-static-array.shader_test
hlsl-initializer-struct.shader_test
hlsl-intrinsic-override.shader_test
hlsl-invalid.shader_test
hlsl-is-front-face.shader_test
hlsl-ldexp.shader_test
hlsl-length.shader_test
hlsl-lerp.shader_test
hlsl-majority-pragma.shader_test
hlsl-majority-typedef.shader_test
hlsl-matrix-indexing.shader_test
hlsl-mul.shader_test
hlsl-nested-arrays.shader_test
hlsl-normalize.shader_test
hlsl-numeric-constructor-truncation.shader_test
hlsl-numeric-types.shader_test
hlsl-numthreads.shader_test
hlsl-return-implicit-conversion.shader_test
hlsl-shape.shader_test
hlsl-single-numeric-initializer.shader_test
hlsl-smoothstep.shader_test
hlsl-state-block-syntax.shader_test
hlsl-static-initializer.shader_test
hlsl-storage-qualifiers.shader_test
hlsl-struct-array.shader_test
hlsl-struct-assignment.shader_test
hlsl-struct-semantics.shader_test
hlsl-ternary.shader_test
hlsl-transpose.shader_test
hlsl-type-names.shader_test
hlsl-vector-indexing-uniform.shader_test
hlsl-vector-indexing.shader_test
hlsl_d3d12.c
lit.shader_test
log.shader_test
logic-operations.shader_test
majority-syntax.shader_test
math.shader_test
matrix-semantics.shader_test
max.shader_test
minimum-precision.shader_test
multiple-rt.shader_test
nointerpolation.shader_test
object-field-offsets.shader_test
object-references.shader_test
pow.shader_test
preproc-if-expr.shader_test
preproc-if.shader_test
preproc-ifdef.shader_test
preproc-invalid.shader_test
preproc-macro.shader_test
preproc-misc.shader_test
reflect.shader_test
register-reservations.shader_test
return.shader_test
round.shader_test
sampler-offset.shader_test
sampler.shader_test
saturate.shader_test
shader-interstage-interface.shader_test
shader_runner.c
shader_runner.h
shader_runner_d3d11.c
shader_runner_d3d12.c
shader_runner_d3d9.c
shader_runner_vulkan.c
side-effects.shader_test
sqrt.shader_test
step.shader_test
swizzle-constant-prop.shader_test
swizzles.shader_test
texture-load-offset.shader_test
texture-load-typed.shader_test
texture-load.shader_test
trigonometry.shader_test
uav-load.shader_test
uav-out-param.shader_test
uav.shader_test
utils.h
vkd3d_api.c
vkd3d_common.c
vkd3d_shader_api.c
vulkan_procs.h
writemask-assignop-0.shader_test
writemask-assignop-1.shader_test
writemask-assignop-2.shader_test
writemask-assignop-3.shader_test
.gitignore
ANNOUNCE
AUTHORS
COPYING
Doxyfile.in
INSTALL
LICENSE
Makefile.am
README
autogen.sh
configure.ac
vkd3d/tests/object-references.shader_test

241 lines
3.6 KiB
Plaintext
Raw Normal View History

[pixel shader fail]
sampler sam;
float4 main() : sv_target
{
Texture2D tex;
tex = tex; // Uninitialized assignment to self.
return tex.Sample(sam, float2(0, 0));
}
[require]
shader model >= 4.0
[texture 0]
size (1, 1)
0.77 0.77 0.77 0.77
[texture 1]
size (1, 1)
0.64 0.64 0.64 0.64
[sampler 0]
filter linear linear linear
address clamp clamp clamp
[pixel shader]
Texture2D t_good, t_bad;
sampler sam;
float4 main() : sv_target
{
Texture2D a, b[1];
// This is basically a 'b[0] = t_good' but so that the copy-prop is delayed
int4 co = {0, 0, 0, 0};
b[(int) co.x + (int) co.y] = t_good;
a = b[0];
b[0] = t_bad;
// 'a' should be 't_good', not 't_bad' at this point
return 100 * a.Sample(sam, float2(0, 0)) + t_good.Sample(sam, float2(0, 0));
}
[test]
draw quad
probe all rgba (77.77, 77.77, 77.77, 77.77)
[texture 0]
size (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;
struct foo {
int3 a;
Texture2D b;
};
float4 main(float4 pos : sv_position) : sv_target
{
struct foo q;
q.a = int3(pos.xy, 0);
q.b = t;
return q.b.Load(q.a);
}
[test]
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)
[texture 0]
size (1, 1)
1.0 1.0 1.0 1.0
[texture 1]
size (1, 1)
2.0 2.0 2.0 1.0
[texture 2]
size (1, 1)
3.0 3.0 3.0 1.0
[pixel shader todo]
Texture2D tex[3];
struct foo {
float4 p;
Texture2D t;
};
float4 main() : sv_target
{
struct foo s[3];
s[0].t = tex[0];
s[1].t = tex[1];
s[2].t = tex[2];
return 100 * s[2].t.Load(0) + 10 * s[0].t.Load(0) + s[1].t.Load(0);
}
[test]
todo draw quad
todo probe all rgba (312, 312, 312, 111)
[pixel shader]
Texture2D tex1;
Texture2D tex2;
Texture2D tex3;
float4 main() : sv_target
{
Texture2D t[3][2];
t[0][0] = tex1; // Note: Only invalid in shader model 5.1, array ref. cannot be used as l-value.
t[0][1] = tex2;
t[1][0] = tex3;
t[1][1] = tex1;
t[2][0] = tex2;
t[2][1] = tex3;
return 1000 * t[2][0].Load(0) + 100 * t[1][1].Load(0) + 10 * t[2][1].Load(0) + t[0][1].Load(0);
}
[test]
draw quad
probe all rgba (2132, 2132, 2132, 1111)
[pixel shader fail]
Texture2D tex[3];
uniform int n;
struct foo {
float4 p;
Texture2D t;
};
float4 main() : sv_target
{
struct foo s[3];
s[0].t = tex[0];
s[1].t = tex[1];
s[2].t = tex[2];
return s[n].t.Load(0);
}
[pixel shader fail]
// Note: Only valid in shader model 5.1
Texture2D tex[3];
uniform int n;
float4 main() : sv_target
{
return tex[n].Load(0);
}
[pixel shader fail]
// Note: Only valid in shader model 5.1
RWTexture2D<float4> tex[3];
uniform int n;
float4 main() : sv_target
{
tex[n][int2(0, 0)] = 0.6;
return 0;
}
[pixel shader]
Texture2D tex;
uniform float f;
struct apple
{
Texture2D tex1;
Texture2D tex2;
float3 aa;
};
float4 main() : sv_target
{
struct apple a = {tex, tex, 1.0, 2.0, 3.0};
a.aa += f;
return a.aa.xyzx;
}
[test]
uniform 0 float 10.0
draw quad
probe (0, 0) rgba (11.0, 12.0, 13.0, 11.0)
[pixel shader fail]
float4 main(Texture2D tex2) : sv_target
{
Texture2D tex1;
tex2 = tex1;
return tex2.Load(int3(0, 0, 0));
}
[require]
shader model >= 5.0
[texture 0]
size (1, 1)
1.0 2.0 3.0 4.0
[pixel shader todo]
struct apple {
Texture2D tex;
float4 fo : COLOR;
};
float4 main(struct apple input) : sv_target
{
input.tex = input.tex; // Assignment to self.
return input.tex.Load(int3(0, 0, 0));
}
[test]
todo draw quad
todo probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0)