[PATCH vkd3d 1/7] tests: Test casts to float.
Matteo Bruni
matteo.mystral at gmail.com
Thu Sep 9 18:21:55 CDT 2021
On Thu, Sep 9, 2021 at 6:01 AM Zebediah Figura <zfigura at codeweavers.com> wrote:
>
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
> Makefile.am | 2 ++
> tests/cast-to-float.shader_test | 29 +++++++++++++++++++++++++++++
> tests/shader_runner_d3d12.c | 33 ++++++++++++++++++++++++++++++---
> 3 files changed, 61 insertions(+), 3 deletions(-)
> create mode 100644 tests/cast-to-float.shader_test
> diff --git a/tests/shader_runner_d3d12.c b/tests/shader_runner_d3d12.c
> index 2221c0f87..86151e424 100644
> --- a/tests/shader_runner_d3d12.c
> +++ b/tests/shader_runner_d3d12.c
> @@ -242,11 +242,38 @@ static void parse_test_directive(struct shader_context *context, const char *lin
> }
> memcpy(context->uniforms + offset, &v, sizeof(v));
> }
> + else if (match_string(line, "float", &line))
> + {
> + float f;
> +
> + if (!(f = strtof(line, &line)) && !line)
> + 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 (!(i = strtol(line, &line, 0)))
> + 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))
> {
> unsigned int u;
>
> - sscanf(line, "%u", &u);
> + if (!(u = strtoul(line, &line, 0)))
> + goto err;
> if (offset + 1 > context->uniform_count)
> {
> context->uniform_count = offset + 1;
Strictly speaking, it doesn't seem necessary to change and use the
strto*() functions instead of sscanf() in all the non-float4 cases.
Unless you have plans...
More information about the wine-devel
mailing list