Commit Graph

1110 Commits

Author SHA1 Message Date
Kévin Petit
2dca46bc00 Remove exact duplicates from the compatibility suites (#495)
Contributes to #494.

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-20 17:38:49 +00:00
Kévin Petit
4a8cae4ae2 harness: select queue creation function based on OpenCL version (#490)
Use clCreateCommandQueue before OpenCL 2.0.

This enables most of the binaries to run to completion on a
1.2 implementation.

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-19 18:59:04 +00:00
Stuart Brady
2398587980 Reformat SPIR-V assembly and fix validation errors (#472)
* Reformat SPIR-V assembly using spirv-dis

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Fix duplicate non-aggregate type decls in SPIR-V as reported by spirv-val

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Reposition OpExtensions correctly in SPIR-V as reported by spirv-val

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Reposition OpVariables correctly in SPIR-V as reported by spirv-val

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Add missing OpTypeImage access qualifiers in SPIR-V as reported by spirv-val

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Remove same-width OpSConverts in SPIR-V as reported by spirv-val

Signed-off-by: Stuart Brady <stuart.brady@arm.com>

* Replace -ILPath with --spirv-binaries-path in README

Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-11-19 09:05:28 +00:00
boazo
60101c24cf Save Kernel Sources to Disk - Infrastructure Change (#412)
* Introduces the ability to capture the kernel sources and the build
options used by the conformance tests to a .cl and .options files.
This is achieved via a new compilation cache mode called dump-cl-files.
Files will be generated to the folder pointed by the compilation cache
path.

When a conformance test is executed with dump-cl-files cache mode and online
compilation mode, the files will be saved to the disk and the regular execution
flow of the conformance continues uninterrupted.

When a conformance test is executed with dump-cl-files cache mode and binary or spir-v
compilation mode, the files will be saved to the disk as well, however the compilation
will fail - leading to a failure in all test cases.

* Introduces the ability to capture the kernel sources and the build
options used by the conformance tests to a .cl and .options files.
This is achieved via a new compilation cache mode called dump-cl-files.
Files will be generated to the folder pointed by the compilation cache
path.

When a conformance test is executed with dump-cl-files cache mode and online
compilation mode, the files will be saved to the disk and the regular execution
flow of the conformance continues uninterrupted.

When a conformance test is executed with dump-cl-files cache mode and binary or spir-v
compilation mode, the files will be saved to the disk as well, however the compilation
will fail - leading to a failure in all test cases.

* merged with latest CTS code
2019-11-18 09:45:44 +00:00
Jim Lewis
040321d8b9 Allow CL_FLOAT denorm flushing for write tests (#28) (#456)
* Require exact for match normals, instead of arbitrary .005 relative error
* Add relaxation to allow 0 when float denormal is expected
* Refactor to use common validation function
2019-11-15 13:38:15 +00:00
Kévin Petit
917aaf9159 select: don't forget to count tests when failing to create programs (#482)
A test writer really shouldn't have to think about this...

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-15 13:13:48 +00:00
Kévin Petit
88004077e3 select: don't forget to count tests when failing to create programs (#483)
A test writer really shouldn't have to think about this...

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-15 13:13:30 +00:00
Kévin Petit
6d1484a6b7 A few error handling and flag test fixes for mem_host_flags (#484)
- Add missing error checks
- Add missing return
- Fix flag check

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-15 13:13:07 +00:00
Kévin Petit
35bc51e51a A few error handling and flag test fixes for mem_host_flags (#485)
- Add missing error checks
- Add missing return
- Fix flag check

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-15 13:12:48 +00:00
Grzegorz Wawiorko
1bffbbe3e4 Fixes #488 - cmake adjustment d3d and media_sharing (#489) 2019-11-15 13:12:17 +00:00
Kévin Petit
d7e8e5040a Mark SVM and pipes tests as requiring OpenCL 2.0 (#475)
Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-14 17:26:32 +00:00
Grzegorz Wawiorko
680271c61c Fix issue 486 - add build option for devices OCL2.X (#487) 2019-11-14 17:25:43 +00:00
Kévin Petit
82579827da Remove dead code from test_userevents (#473)
This code probably predates the move to the test framework and is
no longer useful.

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-12 15:01:32 +00:00
Kévin Petit
69c0d3a8b7 Remove dead code from test_userevents (#476)
This code probably predates the move to the test framework and is
no longer useful.

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-12 15:01:12 +00:00
Kévin Petit
937a2cb67d Use clCreateCommandQueue when possible (in a few tests) (#474)
In all these cases, the new entrypoint is not necessary. These
changes enable the tests to work or are a necessary step to get
the tests to work on an OpenCL 1.2 implementation.

While this may not be the final approach we want to solve this
specific compatibility issue, it also has the nice property of
reducing the diff with cl12_trunk until we merge.

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-11 17:16:22 +00:00
Kévin Petit
8dbfd8f287 Fix a couple of typos (#477)
Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-11 17:07:55 +00:00
Kévin Petit
32bbb19885 Fix a couple of typos (#478)
Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-11 17:07:40 +00:00
Kévin Petit
8d9b62fcf7 Fix delete calls (#480)
Both allocations are made with new[].

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-11 17:07:25 +00:00
Kévin Petit
055aa4fbbe Fix delete calls (#481)
Both allocations are made with new[].

Signed-off-by: Kévin Petit <kpet@free.fr>
2019-11-11 17:07:10 +00:00
Jim Lewis
cce8fd90b1 Fix dll linking warnings for VS 2015/17 (#467)
-- #ifdef out duplicate definitions
-- remove make_nan() dead code
2019-10-04 12:28:55 +01:00
Grzegorz Wawiorko
d6e1e7c870 Fix Issue 462 - test_svm crash (#463) 2019-10-02 11:57:40 +01:00
Kévin Petit
da0f375226 Add host/host test for clEnqueueSVMMemcpy (#460)
This was the only combination that was not exercised.

Fixes #419

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-09-26 11:56:34 +01:00
Jim Lewis
9d3d5ca412 cl12 Fix incoming errors overwritten by exit block (#249) (#454)
* Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/249 where incoming errors are overwritten by exit block

* Fix build: move declaration out of exit block
2019-09-23 21:01:53 +01:00
Pavan K Lanka
b763c6b07e Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/249 (#444)
* Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/249 where incoming errors are overwritten by exit block

* Fix for build failure that was observed in cl12_trunk with prior #249 change
2019-09-23 21:01:21 +01:00
Pavan K Lanka
79d1a14aa0 Fix for https://github.com/KhronosGroup/OpenCL-CTS/issues/346 - causing special float number generation to be skipped (#443) 2019-09-16 11:37:32 +01:00
Jim Lewis
6b54819efa Fix for https://github.com/KhronosGroup/OpenCL-CTS/issues/346 - causing special float number generation to be skipped (#455) 2019-09-16 11:37:00 +01:00
Pavan K Lanka
a4acc80c2b Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/27 remove the re-declaration of totalErrors (#445) 2019-09-16 11:24:50 +01:00
Jim Lewis
7da0d7a778 Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/27 remove the re-declaration of totalErrors (#457) 2019-09-16 11:24:33 +01:00
Grzegorz Wawiorko
f4682a9181 Fix compilation issues (#448) 2019-09-12 13:05:46 +01:00
Ben Ashbaugh
fb3dca1ac7 remove check for extension for writeable sRGB images (#449) 2019-09-12 13:05:11 +01:00
Grzegorz Wawiorko
e880869559 Fix verification if atomics 64bit extensions supported by device (#441) 2019-08-23 10:24:02 +01:00
Kévin Petit
0b9329a9d6 Add missing event release calls in SVM tests (#437)
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
2019-08-16 15:51:25 +01:00
Mats Petersson
83f2a64d8a Add support for arm printf extension. (#434)
The cl_arm_printf extension uses a call-back to tell the user-code
that some printf output has appeared from the execution of the CL
kernel.

The extsiting Printf tests assume output to stdout.

This change adds code to detect the cl_arm_printf extension, and an
implementation of the callback code to write to stdout.

Also fix a couple of formatting errors and don't "poll" when waiting
for events.

Signed-off-by: Mats Petersson <mats.petersson@arm.com>
2019-08-15 16:38:53 +01:00
Mats Petersson
93a1dc3a3a Fix leaking memory and add enum for address spaces (#435)
Test was not cleanig up all of the kernels and programs that it creates,
which results in our driver finding that the common context still has
references when exiting. The reason for not cleaning all kernels and
programs was that it used a hard-coded constant 3 instead of the actual
number of address spaces.

This fixes the leak, and makes the code a little clearer by adding an enum
describing each address space, rather than using magic numbers.

Signed-off-by: Mats Petersson <mats.petersson@arm.com>
2019-08-15 10:18:57 +01:00
Anastasia Stulova
e6d15a2bfc Release event in host_enqueue_order test.
Signed-off-by: Anastasia Stulova <anastasia.stulova@arm.com>
2019-08-14 16:02:39 +01:00
Stuart Brady
0d96c198ee Reimplement invocation of offline compilation program
This change reimplements offline compiler invocation, using a new command
line interface that allows the passing of relevant CL device information
to the offline compiler.  The information that is passed is as follows:

 * CL_DEVICE_ADDRESS_BITS
 * CL_DEVICE_EXTENSIONS
 * CL_DEVICE_IL_VERSION (with --compilation-mode=spir-v only)
 * CL_DEVICE_VERSION

The interface for the offline compiler script is as follows:

   usage: cl_offline_compiler --source FILE --output FILE
                              --cl-device-info FILE --mode MODE
                              -- [BUILD_OPTIONS [BUILD_OPTIONS ...]]

   positional arguments:
     BUILD_OPTIONS          additional options to pass to the compiler

   optional arguments:
     --source FILE          OpenCL C source file to compile
     --output FILE          SPIR-V or binary file to create
     --cl-device-info FILE  OpenCL device info file
     --mode                 compilation mode (spir-v or binary)

The OpenCL C version for compilation is now specified in BUILD_OPTIONS,
as normal for online compilation, i.e. with -cl-std=VERSION.

Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
2c43504923 Cleanup offline compilation code
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
982e3ed79c Cleanup generate_spirv_offline.py
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
147d159fec Fix line endings in generate_spirv_offline.py
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
4d891b67bd Separate out device information functions
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
f15178ca91 Use static libary for harness in media_sharing
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Stuart Brady
245e11ec67 Allow device ID to be specified for offline compilation
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-12 10:18:06 +01:00
Kévin Petit
76fd344e64 Set required language standards using CMake (#432)
- remove compiler-specific options
- disable GNU extensions
- require C++11 and C99 for the whole code base

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-08-08 12:02:18 +01:00
Kévin Petit
fa4b278432 Build the harness as a static library (#430)
This reduces by a factor of roughly two the number of files to build.

Fixes #193.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-08-07 17:18:10 +01:00
Stuart Brady
67655e6fe5 Fix parsing of offline compilation options in test_select (#429)
The local parsing of arguments in test_select.c throws away any unknown
arguments.  Pass these to parseCustomParam() before the local argument
parsing, so that the offline compilation options work as expected.

Fixes #327.

Signed-off-by: Stuart Brady <stuart.brady@arm.com>
2019-08-07 16:23:16 +01:00
Kevin Petit
4cb8fc49f8 Remove almost duplicate compatibility common code
Use the non-compatibility version.

In each case the diff was minimal, didn't have modifications that
would invalidate compatibility testing and it was clear that the
"latest/best" version was not the one in the compatibility copy.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-08-07 11:59:28 +01:00
Kevin Petit
fba5b654e8 Remove GL compatibility common code
It is completely unused.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-08-07 11:59:28 +01:00
Radek Szymanski
42cc707131 Remove redundant prints from half (#424)
The test harness already prints if the test passed, no need to duplicate
this information.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-08-05 15:17:09 +01:00
Radek Szymanski
03650057bb Move printing sub-test information into test harness (#421)
This removes all the duplicated code from each test, and moves it to
test harness so that we have single place where this information is
printed.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-08-05 15:16:12 +01:00
Kévin Petit
19951a2a14 Remove exact duplicate files from the compatibility common code (#422)
Use the copy from the non-compability test_common folder.

Many of these weren't even used at all.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-08-05 15:05:14 +01:00