[Piglit] [PATCH 2/7] piglit-cl-util: Add a helper for getting the alignment of vector types

Aaron Watry awatry at gmail.com
Tue Oct 15 00:07:33 CEST 2013


On Mon, Sep 30, 2013 at 9:47 AM, Tom Stellard <tom at stellard.net> wrote:
> From: Tom Stellard <thomas.stellard at amd.com>
>
> ---
>  tests/cl/program/program-tester.c |  2 +-
>  tests/util/piglit-util-cl.c       | 13 +++++++++++++
>  tests/util/piglit-util-cl.h       |  6 ++++++
>  3 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/tests/cl/program/program-tester.c b/tests/cl/program/program-tester.c
> index 1524db0..0071c2e 100644
> --- a/tests/cl/program/program-tester.c
> +++ b/tests/cl/program/program-tester.c
> @@ -969,7 +969,7 @@ get_test_arg(const char* src, struct test* test, bool arg_in)
>                 char* type_size_str;
>                 regex_get_str(&type_size_str, type, "[[:digit:]]+", 0, REG_NEWLINE);
>                 test_arg.vec_elements = get_int(type_size_str);
> -               test_arg.vec_mem_elements = test_arg.vec_elements != 3 ? test_arg.vec_elements : 4; // test if we have type3
> +               test_arg.vec_mem_elements = piglit_cl_get_num_mem_elements(test_arg.vec_elements);
>                 free(type_size_str);
>         } else {
>                 test_arg.vec_elements = 1;
> diff --git a/tests/util/piglit-util-cl.c b/tests/util/piglit-util-cl.c
> index 5b4267f..85c7a5d 100644
> --- a/tests/util/piglit-util-cl.c
> +++ b/tests/util/piglit-util-cl.c
> @@ -25,6 +25,19 @@
>
>  #include "piglit-util-cl.h"
>
> +unsigned
> +piglit_cl_get_num_mem_elements(unsigned num_elements)

This function takes unsigned, but the vec_mem_elements member of the
test_arg struct you're saving the return value in takes size_t.

--Aaron

> +{
> +       /* The OpenCL spec requires that vec3 types use the same alignement
> +        * as vec4 types.
> +        */
> +       if (num_elements == 3) {
> +               return 4;
> +       } else {
> +               return num_elements;
> +       }
> +}
> +
>  bool
>  piglit_cl_probe_integer(int64_t value, int64_t expect, uint64_t tolerance)
>  {
> diff --git a/tests/util/piglit-util-cl.h b/tests/util/piglit-util-cl.h
> index 90d0cd2..c017495 100644
> --- a/tests/util/piglit-util-cl.h
> +++ b/tests/util/piglit-util-cl.h
> @@ -44,6 +44,12 @@
>  extern "C" {
>  #endif
>
> +/**
> + * \returns The number of elements this vector type has when stored in memory.
> + *          The value returned  the alignment in memory of the vector in units of
> + *          vector elements.
> + */
> +unsigned piglit_cl_get_num_mem_elements(unsigned num_elements);
>
>  /* Runtime independent */
>
> --
> 1.7.11.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list