mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
tests: Test casts to float.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Matteo Bruni <mbruni@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4509f089e5
commit
9d1f9746b7
@ -54,6 +54,7 @@ vkd3d_shader_runners = \
|
|||||||
tests/shader_runner_d3d12
|
tests/shader_runner_d3d12
|
||||||
|
|
||||||
vkd3d_shader_tests = \
|
vkd3d_shader_tests = \
|
||||||
|
tests/cast-to-float.shader_test \
|
||||||
tests/conditional.shader_test \
|
tests/conditional.shader_test \
|
||||||
tests/hlsl-array-dimension.shader_test \
|
tests/hlsl-array-dimension.shader_test \
|
||||||
tests/hlsl-bool-cast.shader_test \
|
tests/hlsl-bool-cast.shader_test \
|
||||||
@ -266,6 +267,7 @@ tests_vkd3d_api_LDADD = libvkd3d.la @VULKAN_LIBS@
|
|||||||
tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la
|
tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la
|
||||||
SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12
|
SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12
|
||||||
XFAIL_TESTS = \
|
XFAIL_TESTS = \
|
||||||
|
tests/cast-to-float.shader_test \
|
||||||
tests/conditional.shader_test \
|
tests/conditional.shader_test \
|
||||||
tests/hlsl-array-dimension.shader_test \
|
tests/hlsl-array-dimension.shader_test \
|
||||||
tests/hlsl-bool-cast.shader_test \
|
tests/hlsl-bool-cast.shader_test \
|
||||||
|
29
tests/cast-to-float.shader_test
Normal file
29
tests/cast-to-float.shader_test
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
[pixel shader]
|
||||||
|
|
||||||
|
float4 main(uniform int i, uniform uint u, uniform bool b, uniform half h) : sv_target
|
||||||
|
{
|
||||||
|
return float4(((float)i) + 1.5, ((float)u) - 2.5, ((float)b) / 2, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
[test]
|
||||||
|
uniform 0 int -1
|
||||||
|
uniform 1 uint 3
|
||||||
|
uniform 2 int -2
|
||||||
|
uniform 3 float 0.5
|
||||||
|
draw quad
|
||||||
|
probe all rgba (0.5, 0.5, 0.5, 0.5)
|
||||||
|
|
||||||
|
[pixel shader]
|
||||||
|
|
||||||
|
float4 main() : sv_target
|
||||||
|
{
|
||||||
|
int i = -1;
|
||||||
|
uint u = 3;
|
||||||
|
bool b = true;
|
||||||
|
half h = 0.5;
|
||||||
|
return float4(((float)i) + 1.5, ((float)u) - 2.5, ((float)b) / 2, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
[test]
|
||||||
|
draw quad
|
||||||
|
probe all rgba (0.5, 0.5, 0.5, 0.5)
|
@ -242,11 +242,38 @@ static void parse_test_directive(struct shader_context *context, const char *lin
|
|||||||
}
|
}
|
||||||
memcpy(context->uniforms + offset, &v, sizeof(v));
|
memcpy(context->uniforms + offset, &v, sizeof(v));
|
||||||
}
|
}
|
||||||
|
else if (match_string(line, "float", &line))
|
||||||
|
{
|
||||||
|
float f;
|
||||||
|
|
||||||
|
if (sscanf(line, "%f", &f) < 1)
|
||||||
|
goto err;
|
||||||
|
if (offset + 1 > context->uniform_count)
|
||||||
|
{
|
||||||
|
context->uniform_count = offset + 1;
|
||||||
|
context->uniforms = realloc(context->uniforms, context->uniform_count * sizeof(*context->uniforms));
|
||||||
|
}
|
||||||
|
memcpy(context->uniforms + offset, &f, sizeof(f));
|
||||||
|
}
|
||||||
|
else if (match_string(line, "int", &line))
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (sscanf(line, "%i", &i) < 1)
|
||||||
|
goto err;
|
||||||
|
if (offset + 1 > context->uniform_count)
|
||||||
|
{
|
||||||
|
context->uniform_count = offset + 1;
|
||||||
|
context->uniforms = realloc(context->uniforms, context->uniform_count * sizeof(*context->uniforms));
|
||||||
|
}
|
||||||
|
memcpy(context->uniforms + offset, &i, sizeof(i));
|
||||||
|
}
|
||||||
else if (match_string(line, "uint", &line))
|
else if (match_string(line, "uint", &line))
|
||||||
{
|
{
|
||||||
unsigned int u;
|
unsigned int u;
|
||||||
|
|
||||||
sscanf(line, "%u", &u);
|
if (sscanf(line, "%u", &u) < 1)
|
||||||
|
goto err;
|
||||||
if (offset + 1 > context->uniform_count)
|
if (offset + 1 > context->uniform_count)
|
||||||
{
|
{
|
||||||
context->uniform_count = offset + 1;
|
context->uniform_count = offset + 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user