[Piglit] [PATCH] Replace scalar-load-[float|uchar] with more comprehensive tests.

Aaron Watry awatry at gmail.com
Wed Dec 5 10:05:14 PST 2012


On Tue, Dec 4, 2012 at 7:31 PM, Tom Stellard <tom at stellard.net> wrote:
> On Mon, Dec 03, 2012 at 07:57:26PM -0600, Aaron Watry wrote:
>> Move the kernel declarations into an include file and then create separate
>> program_test files for char/uchar/short/ushort/int/uint/long/ulong/float.
>>
>> I'm not quite sure how to use #pragmas in a program_test configuration, so for
>> now I'm leaving out half/double data types.
>
> #pragmas usually go in the source file right?  Could you do something like:
>
> #pragma PRAGMA_DEF and then add -DPRAGMA_DEF to the build flags.

Generally, if you want to enable/require/disable an extension you can
use a #pragma line.

What I was really looking for was something like
config.require_device_extensions as used/verified in
piglit-framework-cl.c:
bool check_device_extensions(cl_device_id device_id, char* extensions)

We want to check if a device supports double/half (via
cl_khr_fp[16|64]) before we attempt to run a test which uses those
data types. Eventually, we can do the same with the
cl_khr_byte_addressable_store and other extensions.

>
> This patch looks good and should really help increase the coverage.
>
> Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
>
>> ---
>>  .../program/execute/scalar-load-char.program_test  |   27 +++++++++++++++
>>  tests/cl/program/execute/scalar-load-float.cl      |   34 -------------------
>>  .../program/execute/scalar-load-float.program_test |   27 +++++++++++++++
>>  .../program/execute/scalar-load-int.program_test   |   27 +++++++++++++++
>>  .../program/execute/scalar-load-long.program_test  |   27 +++++++++++++++
>>  .../program/execute/scalar-load-short.program_test |   27 +++++++++++++++
>>  tests/cl/program/execute/scalar-load-uchar.cl      |   35 --------------------
>>  .../program/execute/scalar-load-uchar.program_test |   27 +++++++++++++++
>>  .../program/execute/scalar-load-uint.program_test  |   27 +++++++++++++++
>>  .../program/execute/scalar-load-ulong.program_test |   27 +++++++++++++++
>>  .../execute/scalar-load-ushort.program_test        |   27 +++++++++++++++
>>  tests/cl/program/execute/scalar-load.inc           |   14 ++++++++
>>  12 files changed, 257 insertions(+), 69 deletions(-)
>>  create mode 100644 tests/cl/program/execute/scalar-load-char.program_test
>>  delete mode 100644 tests/cl/program/execute/scalar-load-float.cl
>>  create mode 100644 tests/cl/program/execute/scalar-load-float.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-int.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-long.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-short.program_test
>>  delete mode 100644 tests/cl/program/execute/scalar-load-uchar.cl
>>  create mode 100644 tests/cl/program/execute/scalar-load-uchar.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-uint.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-ulong.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load-ushort.program_test
>>  create mode 100644 tests/cl/program/execute/scalar-load.inc
>>
>> diff --git a/tests/cl/program/execute/scalar-load-char.program_test b/tests/cl/program/execute/scalar-load-char.program_test
>> new file mode 100644
>> index 0000000..a168875
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-char.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (char)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=char -D OUT_TYPE=int
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer int[1] -5
>> +arg_in:  1 buffer char[1] -5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer int[1] -6
>> +arg_in:  1 char -6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer int[1] -7
>> +arg_in:  1 buffer char[1] -7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-float.cl b/tests/cl/program/execute/scalar-load-float.cl
>> deleted file mode 100644
>> index 0df9862..0000000
>> --- a/tests/cl/program/execute/scalar-load-float.cl
>> +++ /dev/null
>> @@ -1,34 +0,0 @@
>> -/*!
>> -[config]
>> -name: Scalar load float
>> -
>> -[test]
>> -kernel_name: load_global
>> -name: global address space
>> -arg_out: 0 buffer float[1] 3.5
>> -arg_in:  1 buffer float[1] 3.5
>> -
>> -[test]
>> -kernel_name: load_param
>> -name: parameter address space
>> -arg_out: 0 buffer float[1] 3.6
>> -arg_in:  1  float 3.6
>> -
>> -[test]
>> -kernel_name: load_constant
>> -name: constant address space
>> -arg_out: 0 buffer float[1] 3.7
>> -arg_in:  1 buffer float[1] 3.7
>> -!*/
>> -
>> -kernel void load_global(global float *out, global float *in) {
>> -     out[0] = in[0];
>> -}
>> -
>> -kernel void load_param(global float *out, float in) {
>> -     out[0] = in;
>> -}
>> -
>> -kernel void load_constant(global float *out, constant float *in) {
>> -     out[0] = in[0];
>> -}
>> diff --git a/tests/cl/program/execute/scalar-load-float.program_test b/tests/cl/program/execute/scalar-load-float.program_test
>> new file mode 100644
>> index 0000000..3e45847
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-float.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (float)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=float -D OUT_TYPE=float
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +kernel_name: load_global
>> +name: global address space
>> +arg_out: 0 buffer float[1] 3.5
>> +arg_in:  1 buffer float[1] 3.5
>> +
>> +[test]
>> +kernel_name: load_param
>> +name: parameter address space
>> +arg_out: 0 buffer float[1] 3.6
>> +arg_in:  1  float 3.6
>> +
>> +[test]
>> +kernel_name: load_constant
>> +name: constant address space
>> +arg_out: 0 buffer float[1] 3.7
>> +arg_in:  1 buffer float[1] 3.7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-int.program_test b/tests/cl/program/execute/scalar-load-int.program_test
>> new file mode 100644
>> index 0000000..655e60f
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-int.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (int)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=int -D OUT_TYPE=int
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer int[1] -5
>> +arg_in:  1 buffer int[1] -5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer int[1] -6
>> +arg_in:  1 int -6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer int[1] -7
>> +arg_in:  1 buffer int[1] -7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-long.program_test b/tests/cl/program/execute/scalar-load-long.program_test
>> new file mode 100644
>> index 0000000..d8c95fc
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-long.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (long)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=long -D OUT_TYPE=long
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer long[1] -5
>> +arg_in:  1 buffer long[1] -5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer long[1] -6
>> +arg_in:  1 long -6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer long[1] -7
>> +arg_in:  1 buffer long[1] -7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-short.program_test b/tests/cl/program/execute/scalar-load-short.program_test
>> new file mode 100644
>> index 0000000..e1d52ea
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-short.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (short)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=short -D OUT_TYPE=int
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer int[1] -5
>> +arg_in:  1 buffer short[1] -5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer int[1] -6
>> +arg_in:  1 short -6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer int[1] -7
>> +arg_in:  1 buffer short[1] -7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-uchar.cl b/tests/cl/program/execute/scalar-load-uchar.cl
>> deleted file mode 100644
>> index 3faa285..0000000
>> --- a/tests/cl/program/execute/scalar-load-uchar.cl
>> +++ /dev/null
>> @@ -1,35 +0,0 @@
>> -/*!
>> -[config]
>> -name: Scalar load uchar
>> -
>> -[test]
>> -name: global address space
>> -kernel_name: uchar_load_global
>> -arg_out: 0 buffer uint[1] 5
>> -arg_in:  1 buffer uchar[1] 5
>> -
>> -[test]
>> -name: parameter address space
>> -kernel_name: uchar_load_param
>> -arg_out: 0 buffer uint[1] 6
>> -arg_in:  1 uchar 6
>> -
>> -[test]
>> -name: constant address space
>> -kernel_name: uchar_load_constant
>> -arg_out: 0 buffer uint[1] 7
>> -arg_in:  1 buffer uchar[1] 7
>> -
>> -!*/
>> -
>> -kernel void uchar_load_global(global uint *out, global uchar *in) {
>> -     out[0] = in[0];
>> -}
>> -
>> -kernel void uchar_load_param(global uint *out, uchar in) {
>> -     out[0] = in;
>> -}
>> -
>> -kernel void uchar_load_constant(global uint *out, constant uchar *in) {
>> -     out[0] = in[0];
>> -}
>> diff --git a/tests/cl/program/execute/scalar-load-uchar.program_test b/tests/cl/program/execute/scalar-load-uchar.program_test
>> new file mode 100644
>> index 0000000..798bd53
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-uchar.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (uchar)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=uchar -D OUT_TYPE=uint
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer uint[1] 5
>> +arg_in:  1 buffer uchar[1] 5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer uint[1] 6
>> +arg_in:  1 uchar 6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer uint[1] 7
>> +arg_in:  1 buffer uchar[1] 7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-uint.program_test b/tests/cl/program/execute/scalar-load-uint.program_test
>> new file mode 100644
>> index 0000000..94b5993
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-uint.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (uint)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=uint -D OUT_TYPE=uint
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer uint[1] 5
>> +arg_in:  1 buffer uint[1] 5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer uint[1] 6
>> +arg_in:  1 uint 6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer uint[1] 7
>> +arg_in:  1 buffer uint[1] 7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-ulong.program_test b/tests/cl/program/execute/scalar-load-ulong.program_test
>> new file mode 100644
>> index 0000000..cbad644
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-ulong.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (ulong)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=ulong -D OUT_TYPE=ulong
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer ulong[1] 5
>> +arg_in:  1 buffer ulong[1] 5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer ulong[1] 6
>> +arg_in:  1 ulong 6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer ulong[1] 7
>> +arg_in:  1 buffer ulong[1] 7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load-ushort.program_test b/tests/cl/program/execute/scalar-load-ushort.program_test
>> new file mode 100644
>> index 0000000..a929ed4
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load-ushort.program_test
>> @@ -0,0 +1,27 @@
>> +[config]
>> +name: Scalar Data Type Load (ushort)
>> +
>> +program_source_file: scalar-load.inc
>> +build_options: -D SCALAR_TYPE=ushort -D OUT_TYPE=uint
>> +
>> +dimensions: 1
>> +global_size: 1 0 0
>> +
>> +[test]
>> +name: global address space
>> +kernel_name: load_global
>> +arg_out: 0 buffer uint[1] 5
>> +arg_in:  1 buffer ushort[1] 5
>> +
>> +[test]
>> +name: parameter address space
>> +kernel_name: load_param
>> +arg_out: 0 buffer uint[1] 6
>> +arg_in:  1 ushort 6
>> +
>> +[test]
>> +name: constant address space
>> +kernel_name: load_constant
>> +arg_out: 0 buffer uint[1] 7
>> +arg_in:  1 buffer ushort[1] 7
>> +
>> diff --git a/tests/cl/program/execute/scalar-load.inc b/tests/cl/program/execute/scalar-load.inc
>> new file mode 100644
>> index 0000000..5458847
>> --- /dev/null
>> +++ b/tests/cl/program/execute/scalar-load.inc
>> @@ -0,0 +1,14 @@
>> +typedef OUT_TYPE out_t;
>> +typedef SCALAR_TYPE scalar_t;
>> +
>> +kernel void load_global(global out_t *out, global scalar_t *in) {
>> +    out[0] = in[0];
>> +}
>> +
>> +kernel void load_param(global out_t *out, scalar_t in) {
>> +     out[0] = in;
>> +}
>> +
>> +kernel void load_constant(global out_t *out, constant scalar_t *in) {
>> +     out[0] = in[0];
>> +}
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> Piglit mailing list
>> Piglit at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list