[Piglit] [PATCH] Add OpenCL support
Tom Stellard
tstellar at gmail.com
Tue Sep 4 07:14:39 PDT 2012
On Thu, Aug 30, 2012 at 02:02:55AM +0200, Blaž Tomažič wrote:
> I have implemented an OpenCL testing framework for Piglit which I would
> like to merge upstream. Here is a summary of its functionality:
>
> The framework implements OpenCL utilities which are used for
> quicker and easier writing of tests.
>
> Test that are written against the framework can be defined to be
> run once, per each platform or per each device. Each test can be
> limited to a particular group of platforms or devices.
>
> There are different test types to chose from when writing a
> test. Each type exposes configuration variables that are used to
> automatically check for different implementation functionality
> (OpenCL version, extensions, filter by platform name,...) and
> create objects (context creation, program creation and building,
> source code loading, buffer creation and buffer data
> initialization,...), so there is less coding needed when writing
> a test.
>
> A little bigger description about the framework, and how to use it, is
> located here [1] and also in one of the commits (doc: Add cl tests
> documentation).
>
> This patch would add this framework to Piglit and about 70 tests that
> are implemented with it.
>
> The patch is quite large, but the commits that modify already present
> files are really small (cmake: and README: commits). The other commits
> only add new files.
>
> Blaž Tomažič
>
> [1] https://raw.github.com/blazt/piglit/opencl-request/tests/cl/README
>
Hi Blaž,
Overall, this looks really good, and I especially like all the
documentation, just two things:
I noticed that the license headers you are using reference IBM and VA
Linux. You should double check the license and make sure it is what
you want. Take a look at: tests/gles2/gles2_shader_runner.c for an
example of a standard license used in piglit.
Some of the cl-util files contain some really long lines, especially
piglit-framework-cl-program.c:96-99. You should go through and wrap some
of the longer lines at 80 characters to make them easier to read.
Nice Work!
-Tom
> ----------------------------------------------------------------
>
> The following changes since commit
> 4cb147e434c190155012ae80542f933d7a5b3231:
>
> egl-util: Add call to piglit_dispatch_default_init() (2012-08-29
> 10:03:16 -0700)
>
> are available in the git repository at:
>
> git://github.com/blazt/piglit.git opencl-request
>
> for you to fetch changes up to d2f52e9e0ccdcd2c6ee17ff2fac351bb4380fa0c:
>
> README: Include OpenCL information (2012-08-30 01:31:26 +0200)
>
> ----------------------------------------------------------------
> Blaž Tomažič (8):
> util-cl: Add utilities to support OpenCL tests
> util-cl: Add OpenCL testing framework
> cmake: Build OpenCL utilities and framework
> cl: Add OpenCL tests
> cmake: Build OpenCL tests
> cl: Add all_cl.tests test set
> doc: Add cl tests documentation
> README: Include OpenCL information
>
> CMakeLists.txt | 5 +
> README | 8 +-
> cmake/Modules/FindOpenCL.cmake | 44 +
> cmake/piglit_util.cmake | 2 +-
> cmake/target_api/CMakeLists.txt | 4 +
> cmake/target_api/cl/CMakeLists.txt | 10 +
> tests/CMakeLists.txt | 4 +
> tests/all_cl.tests | 131 ++
> tests/cl/CMakeLists.txt | 47 +
> tests/cl/README | 107 ++
> tests/cl/api/CMakeLists.cl.txt | 41 +
> tests/cl/api/CMakeLists.txt | 1 +
> tests/cl/api/build-program.c | 243 +++
> tests/cl/api/create-buffer.c | 331 ++++
> tests/cl/api/create-command-queue.c | 192 +++
> tests/cl/api/create-context-from-type.c | 305 ++++
> tests/cl/api/create-context.c | 293 ++++
> tests/cl/api/create-kernel.c | 169 ++
> tests/cl/api/create-kernels-in-program.c | 148 ++
> tests/cl/api/create-program-with-source.c | 193 +++
> tests/cl/api/enqueue-read_write-buffer.c | 507 ++++++
> tests/cl/api/get-command-queue-info.c | 155 ++
> tests/cl/api/get-context-info.c | 177 ++
> tests/cl/api/get-device-ids.c | 212 +++
> tests/cl/api/get-device-info.c | 153 ++
> tests/cl/api/get-event-info.c | 172 ++
> tests/cl/api/get-image-info.c | 202 +++
> tests/cl/api/get-kernel-info.c | 167 ++
> tests/cl/api/get-kernel-work-group-info.c | 190 +++
> tests/cl/api/get-mem-object-info.c | 167 ++
> tests/cl/api/get-platform-ids.c | 109 ++
> tests/cl/api/get-platform-info.c | 172 ++
> tests/cl/api/get-program-build-info.c | 176 ++
> tests/cl/api/get-program-info.c | 214 +++
> tests/cl/api/retain_release-command-queue.c | 158 ++
> tests/cl/api/retain_release-context.c | 168 ++
> tests/cl/api/retain_release-event.c | 172 ++
> tests/cl/api/retain_release-kernel.c | 158 ++
> tests/cl/api/retain_release-mem-object.c | 159 ++
> tests/cl/api/retain_release-program.c | 161 ++
> tests/cl/api/set-kernel-arg.c | 246 +++
> tests/cl/api/unload-compiler.c | 78 +
> tests/cl/custom/CMakeLists.cl.txt | 1 +
> tests/cl/custom/CMakeLists.txt | 1 +
> tests/cl/custom/run-simple-kernel.c | 78 +
> tests/cl/doc_api.c | 54 +
> tests/cl/doc_custom.c | 46 +
> tests/cl/doc_program.c | 56 +
> tests/cl/doc_program.cl | 89 +
> tests/cl/doc_program.program_test | 97 ++
> tests/cl/program/CMakeLists.cl.txt | 2 +
> tests/cl/program/CMakeLists.txt | 1 +
> .../build/fail/add-different-size-vector.cl | 13 +
> tests/cl/program/build/fail/increment-float.cl | 11 +
> tests/cl/program/build/other-data-types.cl | 22 +
> .../program/build/scalar-and-vector-operators.cl | 42 +
> tests/cl/program/build/scalar-data-type-half.cl | 10 +
> tests/cl/program/build/scalar-data-types.cl | 29 +
> tests/cl/program/build/scalar-operators.cl | 53 +
> tests/cl/program/build/vector-data-types.cl | 33 +
> tests/cl/program/build/vector-operators.cl | 53 +
> tests/cl/program/execute/comma.cl | 19 +
> tests/cl/program/execute/for-loop.cl | 69 +
> tests/cl/program/execute/get-global-id.cl | 84 +
> tests/cl/program/execute/reference.cl | 21 +
> tests/cl/program/execute/scalar-arithmetic-char.cl | 336 ++++
> .../cl/program/execute/scalar-arithmetic-float.cl | 343 ++++
> tests/cl/program/execute/scalar-arithmetic-int.cl | 336 ++++
> tests/cl/program/execute/scalar-arithmetic-long.cl | 336 ++++
> .../cl/program/execute/scalar-arithmetic-short.cl | 336 ++++
> .../cl/program/execute/scalar-arithmetic-uchar.cl | 193 +++
> tests/cl/program/execute/scalar-arithmetic-uint.cl | 193 +++
> .../cl/program/execute/scalar-arithmetic-ulong.cl | 193 +++
> .../cl/program/execute/scalar-arithmetic-ushort.cl | 193 +++
> tests/cl/program/execute/scalar-bitwise-int.cl | 134 ++
> tests/cl/program/execute/scalar-comparison-char.cl | 175 ++
> .../cl/program/execute/scalar-comparison-float.cl | 175 ++
> tests/cl/program/execute/scalar-comparison-int.cl | 175 ++
> tests/cl/program/execute/scalar-comparison-long.cl | 175 ++
> .../cl/program/execute/scalar-comparison-short.cl | 175 ++
> .../cl/program/execute/scalar-comparison-uchar.cl | 161 ++
> tests/cl/program/execute/scalar-comparison-uint.cl | 161 ++
> .../cl/program/execute/scalar-comparison-ulong.cl | 161 ++
> .../cl/program/execute/scalar-comparison-ushort.cl | 161 ++
> tests/cl/program/execute/scalar-logical-float.cl | 91 +
> tests/cl/program/execute/scalar-logical-int.cl | 91 +
> tests/cl/program/execute/sizeof.cl | 118 ++
> .../execute/vector-arithmetic-float4.program_test | 124 ++
> .../program/execute/vector-arithmetic-floating.cl | 25 +
> .../execute/vector-arithmetic-int4.program_test | 168 ++
> .../program/execute/vector-arithmetic-integer.cl | 45 +
> tests/cl/program/execute/vector-load-int4.cl | 27 +
> tests/cl/program/max-work-item-sizes.c | 133 ++
> tests/cl/program/program-tester.c | 1794
> ++++++++++++++++++++
> tests/cl/template_api.c | 41 +
> tests/cl/template_custom.c | 41 +
> tests/cl/template_program.c | 41 +
> tests/cl/template_program.cl | 9 +
> tests/cl/template_program.program_test | 8 +
> tests/util/CMakeLists.cl.txt | 20 +
> tests/util/piglit-framework-cl-api.c | 200 +++
> tests/util/piglit-framework-cl-api.h | 142 ++
> tests/util/piglit-framework-cl-custom.c | 67 +
> tests/util/piglit-framework-cl-custom.h | 118 ++
> tests/util/piglit-framework-cl-program.c | 331 ++++
> tests/util/piglit-framework-cl-program.h | 149 ++
> tests/util/piglit-framework-cl.c | 516 ++++++
> tests/util/piglit-framework-cl.h | 337 ++++
> tests/util/piglit-util-cl-enum.c | 934 ++++++++++
> tests/util/piglit-util-cl-enum.h | 95 ++
> tests/util/piglit-util-cl.c | 1001 +++++++++++
> tests/util/piglit-util-cl.h | 557 ++++++
> 112 files changed, 18567 insertions(+), 3 deletions(-)
> create mode 100644 cmake/Modules/FindOpenCL.cmake
> create mode 100644 cmake/target_api/cl/CMakeLists.txt
> create mode 100644 tests/all_cl.tests
> create mode 100644 tests/cl/CMakeLists.txt
> create mode 100644 tests/cl/README
> create mode 100644 tests/cl/api/CMakeLists.cl.txt
> create mode 100644 tests/cl/api/CMakeLists.txt
> create mode 100644 tests/cl/api/build-program.c
> create mode 100644 tests/cl/api/create-buffer.c
> create mode 100644 tests/cl/api/create-command-queue.c
> create mode 100644 tests/cl/api/create-context-from-type.c
> create mode 100644 tests/cl/api/create-context.c
> create mode 100644 tests/cl/api/create-kernel.c
> create mode 100644 tests/cl/api/create-kernels-in-program.c
> create mode 100644 tests/cl/api/create-program-with-source.c
> create mode 100644 tests/cl/api/enqueue-read_write-buffer.c
> create mode 100644 tests/cl/api/get-command-queue-info.c
> create mode 100644 tests/cl/api/get-context-info.c
> create mode 100644 tests/cl/api/get-device-ids.c
> create mode 100644 tests/cl/api/get-device-info.c
> create mode 100644 tests/cl/api/get-event-info.c
> create mode 100644 tests/cl/api/get-image-info.c
> create mode 100644 tests/cl/api/get-kernel-info.c
> create mode 100644 tests/cl/api/get-kernel-work-group-info.c
> create mode 100644 tests/cl/api/get-mem-object-info.c
> create mode 100644 tests/cl/api/get-platform-ids.c
> create mode 100644 tests/cl/api/get-platform-info.c
> create mode 100644 tests/cl/api/get-program-build-info.c
> create mode 100644 tests/cl/api/get-program-info.c
> create mode 100644 tests/cl/api/retain_release-command-queue.c
> create mode 100644 tests/cl/api/retain_release-context.c
> create mode 100644 tests/cl/api/retain_release-event.c
> create mode 100644 tests/cl/api/retain_release-kernel.c
> create mode 100644 tests/cl/api/retain_release-mem-object.c
> create mode 100644 tests/cl/api/retain_release-program.c
> create mode 100644 tests/cl/api/set-kernel-arg.c
> create mode 100644 tests/cl/api/unload-compiler.c
> create mode 100644 tests/cl/custom/CMakeLists.cl.txt
> create mode 100644 tests/cl/custom/CMakeLists.txt
> create mode 100644 tests/cl/custom/run-simple-kernel.c
> create mode 100644 tests/cl/doc_api.c
> create mode 100644 tests/cl/doc_custom.c
> create mode 100644 tests/cl/doc_program.c
> create mode 100644 tests/cl/doc_program.cl
> create mode 100644 tests/cl/doc_program.program_test
> create mode 100644 tests/cl/program/CMakeLists.cl.txt
> create mode 100644 tests/cl/program/CMakeLists.txt
> create mode 100644
> tests/cl/program/build/fail/add-different-size-vector.cl
> create mode 100644 tests/cl/program/build/fail/increment-float.cl
> create mode 100644 tests/cl/program/build/other-data-types.cl
> create mode 100644
> tests/cl/program/build/scalar-and-vector-operators.cl
> create mode 100644 tests/cl/program/build/scalar-data-type-half.cl
> create mode 100644 tests/cl/program/build/scalar-data-types.cl
> create mode 100644 tests/cl/program/build/scalar-operators.cl
> create mode 100644 tests/cl/program/build/vector-data-types.cl
> create mode 100644 tests/cl/program/build/vector-operators.cl
> create mode 100644 tests/cl/program/execute/comma.cl
> create mode 100644 tests/cl/program/execute/for-loop.cl
> create mode 100644 tests/cl/program/execute/get-global-id.cl
> create mode 100644 tests/cl/program/execute/reference.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-char.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-float.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-int.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-long.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-short.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-uchar.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-uint.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-ulong.cl
> create mode 100644 tests/cl/program/execute/scalar-arithmetic-ushort.cl
> create mode 100644 tests/cl/program/execute/scalar-bitwise-int.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-char.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-float.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-int.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-long.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-short.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-uchar.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-uint.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-ulong.cl
> create mode 100644 tests/cl/program/execute/scalar-comparison-ushort.cl
> create mode 100644 tests/cl/program/execute/scalar-logical-float.cl
> create mode 100644 tests/cl/program/execute/scalar-logical-int.cl
> create mode 100644 tests/cl/program/execute/sizeof.cl
> create mode 100644
> tests/cl/program/execute/vector-arithmetic-float4.program_test
> create mode 100644
> tests/cl/program/execute/vector-arithmetic-floating.cl
> create mode 100644
> tests/cl/program/execute/vector-arithmetic-int4.program_test
> create mode 100644
> tests/cl/program/execute/vector-arithmetic-integer.cl
> create mode 100644 tests/cl/program/execute/vector-load-int4.cl
> create mode 100644 tests/cl/program/max-work-item-sizes.c
> create mode 100644 tests/cl/program/program-tester.c
> create mode 100644 tests/cl/template_api.c
> create mode 100644 tests/cl/template_custom.c
> create mode 100644 tests/cl/template_program.c
> create mode 100644 tests/cl/template_program.cl
> create mode 100644 tests/cl/template_program.program_test
> create mode 100644 tests/util/CMakeLists.cl.txt
> create mode 100644 tests/util/piglit-framework-cl-api.c
> create mode 100644 tests/util/piglit-framework-cl-api.h
> create mode 100644 tests/util/piglit-framework-cl-custom.c
> create mode 100644 tests/util/piglit-framework-cl-custom.h
> create mode 100644 tests/util/piglit-framework-cl-program.c
> create mode 100644 tests/util/piglit-framework-cl-program.h
> create mode 100644 tests/util/piglit-framework-cl.c
> create mode 100644 tests/util/piglit-framework-cl.h
> create mode 100644 tests/util/piglit-util-cl-enum.c
> create mode 100644 tests/util/piglit-util-cl-enum.h
> create mode 100644 tests/util/piglit-util-cl.c
> create mode 100644 tests/util/piglit-util-cl.h
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list