Commit Graph

555 Commits

Author SHA1 Message Date
DziubanMaciejIntel
ee2d0921dc Fix test_gl error reporting (#764)
* Fix test_gl error reporting

Overwriting 'error' variable after check for Msaa/Depth support was clearing
the error counter incremented after failure in test_image_format_write. In
effect the test might return 0 even if there were errors.

* Fix variable name

* Fix formatting

* Fix formatting
2020-05-22 13:25:43 +01:00
John Kesapides
cfe4e41d96 Mem-leaks from conformance mem_host_flags (#770)
Fix various resource leaks in the tests for mem_host_flags.

Signed-off-by: John Kesapides <john.kesapides@arm.com>
2020-05-22 13:24:57 +01:00
James Price
09aa54246f Fix warnings in basic suite (#782)
* Fix "ignored typedef" warning

* Fix "returning reference to temporary" warning
2020-05-20 15:16:18 -04:00
Pierre Moreau
fe12c4e378 computeinfo: Attach min version to image types and flags
This is mostly required for OpenCL 1.0 and 1.1 conformance tests, but
also avoids testing for CL_MEM_KERNEL_READ_AND_WRITE on OpenCL 1.2.
2020-05-20 14:31:58 +01:00
Pierre Moreau
2d124f61eb computeinfo/main: Fix format specifiers for unsigned long 2020-05-20 14:31:58 +01:00
Pierre Moreau
0b4ecd1756 computeinfo/extended_versioning: Add missing arguments to log_error 2020-05-20 14:31:58 +01:00
Pierre Moreau
0ed62b4fbe Reformat computeinfo/ tests 2020-05-20 14:31:58 +01:00
Jack Frankland
f6b156d523 Correct khr Extension Checks for Device Versions (#778)
* Correct khronos extension device version checks so that 2.0, 2.1 and
2.2 extensions are only require for devices versions < 3.0
(`cl_khr_3d_image_writes`, `cl_khr_image2d_from_buffer` and
`cl_khr_depth_images` are all optional for devices supporting
OpenCL-3.0).

* Remove `cl_khr_fp64` from list or required extensions for 2.0,
`cl_khr_fp64` is a required extension for OpenCL-1.2 devices if they
suport doubles. Check for support of `cl_khr_fp64` on 1.2 devices.

* Remove duplicated `cl_khr_byte_addressable_store` from list of 2.0
extensions. Since this is a 1.1 extension and all versions greater than
1.1 are backwards compatible with 1.1 this will be checked anyway.
2020-05-20 14:16:37 +01:00
Ankit Goyal
4fbcd96e7f Remove "C" linkages (#781)
* Remove extern C linkages

* Update crc32 to cpp and remove extern C linkage
2020-05-20 14:16:19 +01:00
Grzegorz Wawiorko
223c43b7d9 test_api - fix minRequiredDimension in case of new OpenCL version (#779)
* Fix minRequiredDimension in case of new OpenCL version

* Fix code formatting
2020-05-19 10:16:21 +01:00
Grzegorz Wawiorko
ec32bd9b5e Format subgroups tests according to clang-format (#745)
* Format subgroups tests to clang-format

* Format issue - fix do/while issue
2020-05-19 10:16:06 +01:00
Jack Frankland
a6c3d921ae Remove clCreatePipe call from test_clone_kernel (#775)
* Remove the call to `clCreatePipe` in the `test_clone_kernel` test as
the result of this call (the pipe object) is unused. Further more
`clCreatePipe` is an optional API in OpenCL-3.0, so even if the pipe
object did have a use, support for this API would need to be queried in
the case of a OpenCL-3.0 driver where returning `CL_INVALID_OPERATION`
would be conformant behaviour. As it stands this test will incorrectly
fail for a 3.0 driver which does not support pipes.

* Correct comment regarding pipes and SVM since these features were not
actually tested in the source.
2020-05-18 13:03:57 +01:00
Ankit Goyal
833f0d029e Fix return-type warnings with harness library and basic test (#776)
* Fix offending `-Wreturn-type` in harness library

* Fix offending `-Wreturn-type` in basic test
2020-05-18 13:03:17 +01:00
John Kesapides
3afe926416 Mem-leaks from conformance test_basic (#771)
Release some leaked events

Signed-off-by: John Kesapides <john.kesapides@arm.com>
2020-05-14 12:57:20 +01:00
Jack Frankland
ebcc74049a Update SPIR-V CSV Options (#774)
* Update `opencl_conformance_tests_21_full_spirv.csv` with
`/-offlineCompiler/--compilation-mode` and
`/cache/--compilation-cache-path` in order to match the offline
compilation options in the cts executables. Do not add the
`--compilation-cache-mode` and `--compilation-program` options since
they are user specific and the default values are generic.

* Delete `opencl_conformance_tests_generate_spirv.csv` since there is no
longer a `generate` option for offline compilation in the cts
executables.
2020-05-14 12:51:03 +01:00
James Price
bda0285c2a Refactor basic/intmath tests into a single file (#757)
* Refactor basic/intmath tests into a single file

These six tests previously duplicated almost all of their sources in
separate files. Bring them into a single file with templated routines
to perform the tests.

This change also makes use of more C++ features and utilities from the
harness library to make the code cleaner.

* Fix array indices for initialization

* Use loop for buffer creation

* Refactor to remove duplicate verification code

Remove need for hardcoded number of test operations.

* Address review comments

* Use TEST_SKIPPED_ITSELF
2020-05-06 11:32:31 -04:00
Radek Szymanski
77d755c8ee Remove duplicated random_in_ranges function (#763)
This function is duplicated across clCopyImages files, so just keep one
definition in common file, and get rid of the duplicated ones.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2020-05-06 13:09:48 +01:00
Jack Frankland
8d28a5dc83 Add 3.0 as valid device version to version parsing logic (#765) 2020-05-06 13:09:20 +01:00
Radek Szymanski
54c21467ad Reduce code duplication in images (#749)
Some of the image code is needlessly copied over, where all you need is
a simple for loop.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2020-05-05 09:49:28 +01:00
ellnor01
794e9ebe50 Add argument to specify branch for clang-format check (#761)
If a change is not added to an origin/master branch, an argument
can be used to specify the relevant branch name for the clang-format
comparison.

Change-Id: I8ce712d077bf4d048a04a29c12bc2cb45e4abb93
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-05-04 14:25:28 -04:00
James Price
de952011f3 Replace magic constants in api/kernels tests (#754)
Also remove one unused test function.
2020-05-04 09:12:46 -04:00
James Price
0cb0e720f0 Use unsigned integers in multiple_device_context (#758)
Fixes a signed integer overflow issue.
2020-05-04 09:12:12 -04:00
James Price
11b21fdcca Remove unused API test (#756)
The test was also invalid, since it was testing that you can pass a
structure containing cl_mem objects to a kernel without SVM.
2020-05-01 14:29:32 +01:00
Kévin Petit
5e2f5b857e Accept OpenCL 3.0 in version parsing code and use where appropriate (#752)
* Accept OpenCL 3.0 in version parsing code and use where appropriate

There were a number of tests against 2.2 that are clearer against 3.0.

Fixes #751

Signed-off-by: Kévin Petit <kpet@free.fr>

* Remove CL_EXPERIMENTAL guards

Signed-off-by: Kévin Petit <kpet@free.fr>

* formatting

* Configure the headers for OpenCL 3.0

* more format fixes
2020-04-30 11:51:06 +01:00
James Price
1e5ffa08b5 Fix initialization of input data for api test (#746)
Caught by MSAN.
2020-04-28 09:17:14 -04:00
Grzegorz Wawiorko
64170ebb06 Turn on d3d binaries - Windows (#744)
* Turn on d3d binaries

* Add -DARCH variable

* Set ARCH base on platform
2020-04-27 11:15:04 +01:00
Grzegorz Wawiorko
efc9f38fdf Test d3d11 - remove spaces from extension string (#742) 2020-04-24 15:06:47 +01:00
James Price
b051f07a57 Fix buffer overflow in compiler suite (#740)
* Fix buffer overflow in compiler suite

* Use ARRAY_SIZE to determine number of source lines

* Add static assertion for number of lines
2020-04-22 12:48:13 +01:00
Radek Szymanski
e72cff3e7d Remove duplicate format functions (#738)
This moves the filter_formats and get_format_list functions to a common
file. These functions were roughly the same, with an optional filtering
in some tests for testing mipmaps.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2020-04-17 10:55:17 +01:00
Kévin Petit
d59808ceda clang-format: indent continued lines (#739)
This addresses comments from recent PR reviews.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2020-04-17 10:54:58 +01:00
James Price
2ac3c2c1ef Use std::string for get_device_*_string helpers (#737)
* Use std::string for get_device_*_string helpers

Removes need to use BufferOwningPtr to avoid memory leaks.

* Rename get_device_info to get_device_info_string

Makes it more obvious that it should only be called for device queries
that return strings.

* Tokenize extensions in is_extension_available

Avoids the potential issue where one extension name is a prefix of
another.

* Throw exception when device info size is 0
2020-04-16 14:27:40 -04:00
John Kesapides
c911046f5b Fix minor resource leaks in test_api. (#735)
Added some missing clProgramWrapper/clkernelWrapper, to avoid
resource leaks.

Signed-off-by: John Kesapides <john.kesapides@arm.com>
2020-04-16 13:35:29 +01:00
Jim Lewis
f3a3ec2b47 Allow CL_HALF_FLOAT denorm flushing for write tests (#452) (#453)
* Allow CL_HALF_FLOAT denorm flushing for write tests (#452)

* On mismatch, add relaxation when denormal half result is expected
* Refactor to use common validation function
* Clean up some diagnostics

* Fix review comments

- use cl_half
- remove extraneous casts
- replace literals with sizeof()

* Document rollover trick for IsHalfSubnormal
2020-04-16 10:23:44 +01:00
Kévin Petit
2fa8611862 Make it possible for enqueue_map tests to catch more USE_HOST_PTR issues (#730)
* Make it possible for enqueue_map tests to catch more USE_HOST_PTR issues

Don't update the memory passed as host_ptr with the correct result
and compute the reference result using a separate allocation so that
implementations that use copies to manage the host_ptr and never update
as part of map/unmap commands the memory pointed to by host_ptr fail
the test.

Rename initialData to hostPtrData for clarity.

Fixes #700

Signed-off-by: Kévin Petit <kpet@free.fr>

* format fixes

* more format fixes?
2020-04-16 10:23:03 +01:00
James Price
da7c1b3498 Use clang-format-9 for Travis CI formatting checks (#736) 2020-04-15 22:05:00 +01:00
ellnor01
c19897ff0f Remove check_opencl_version function (#734)
Removing all references to check_opencl_version as similar
get_device_cl_version() can be used instead.

Fixes #527

Change-Id: I474b6f536033707e1beb9b5b39410de24672c040
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-04-15 16:03:19 +01:00
James Price
f413103970 Add clang-format config and check-format.sh script (#724)
* Add clang-format config and check-format.sh script

Travis CI is now configured to run check-format.sh and the job will
fail if any format violations are detected. This will only check the
format of new/modified code; existing code that violates the format
will not cause a CI failure.

* Make format checking the first Travis CI job

* Tweak format based on Jeremy's preferences

* Tweak format based on Kevin's preferences
2020-04-15 15:46:39 +01:00
ellnor01
3b79ecdb87 Replace get_device_version with get_cl_device_version (#733)
They are duplicate functions

Fixes #709

Change-Id: I8f7d6b8254047adb9e09ede4951dedc3ec5c1099
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-04-15 14:31:22 +01:00
Jeremy Kemp
ce39ffdda7 Printf fixes for reference results #673 #675 (#680)
* Moved float tests that expect limits into their own sub-test.

These are harder to test generically on the CPU so have them be their own test which will retain hard-coded reference results.

* Remove unused variable.

* Switched reference result type from (char**) to (vector::const char*)

* printf: generate reference results where possible #673 #675

The reference results had two issues:
- They did not take into account the rounding mode of the device.
- Scientific notation results did not have trailing zero's, meaning that the exponent could be a single digit, despite the requirement being at least two digits.

This change introduces runtime generated reference results for types with numerical representations (float, int, hex, etc) where a direct mapping to standard C99 (sn)printf is possible to execute on the CPU.

* Trim leading zeroes from the exponent when verifying result #675.

There is no limit on how many leading zeros may be in the exponent, so strip them all.

* Switched to using get_default_rounding_mode.
2020-04-15 14:30:29 +01:00
Grzegorz Wawiorko
349da6e6fb Fix typo device -> devices (#728) 2020-04-15 11:05:59 +01:00
ellnor01
fea3e54e5a Add exceptions as errors in is_extension_available (#732)
is_extension_available is modified to handle errors by throwing
exceptions.

Contributes to #627

Change-Id: Ie9423df588892a0f8effa03d1cb48bf12400b983
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-04-15 11:05:46 +01:00
Jeremy Kemp
f4a4b5428e API: Fixed condition based on is_extension_available. (#726)
enqueue_kernel was being run when the cl_khr_create_command_queue was *not* present. The test should only be run when the extension *is* present.

Regressed in 93e76a8a4a.
2020-04-09 09:57:56 +01:00
ellnor01
93e76a8a4a Ensure is_extension_available is used where possible (#722)
(Patch2)
A number of tests have got their own code for checking the presence of
extensions. This change replaces that code with is_extension_available
function.

Contributes to #627

Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>

Change-Id: I17e007e5ad009e522c5006c42537bf1170550a6f
2020-04-03 10:49:53 +01:00
Kévin Petit
cd3b552094 Clean up enqueue_map_{buffer,image} tests a bit (#701)
- Introduce MTdataHolder
- Use BufferOwningPtr to manage allocations (fixes a few leaks in error cases)
- Introduce variable for common expressions
- Remove image format support check as the format is required by OpenCL 1.0

Contributes to #700

Signed-off-by: Kévin Petit <kpet@free.fr>
2020-04-02 21:46:41 +01:00
ellnor01
33e70615bd Ensure is_extension_available is used where possible (#721)
(Patch1)
A number of tests have got their own code for checking the presence of
extensions. This change replaces that code with is_extension_available
function.

Contributes to #627

Change-Id: I8dd2233719aa8c84841ac61776437d7f6e3fafe6
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-04-02 21:45:28 +01:00
ellnor01
ef3528e78a Ensure is_extension_available is used where possible (#721)
(Patch1)
A number of tests have got their own code for checking the presence of
extensions. This change replaces that code with is_extension_available
function.

Contributes to #627

Change-Id: I8dd2233719aa8c84841ac61776437d7f6e3fafe6
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
2020-04-02 21:22:02 +01:00
Ewan Crawford
aee0a22ad2 Preserve existing release flags in MSVC (#704)
* Preserve existing release flags in MSVC

Without this the `/MD` flag is lost on Release builds,
resulting in the below error when using a Ninja CMake generator with
VS2019 compiler. Before replacement `/MD /O2 /Ob2 /DNDEBUG`, after replace
`/MD /Od /Ob0 /DNDEBUG`

```
harness.lib(testHarness.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in test_conversions.cpp.obj
```

* Remove Visual Studio 2005 release flag workarounds
2020-03-30 16:44:54 +01:00
Jeremy Kemp
5e84ad0c19 Generic Address Space: Skip tests utlilising SVM on devices that do n… (#712)
* Harness: Added an option for a test to skip itself.

New condtion in callSingleTestFunction. This allows a test to return TEST_SKIP if the device does not support the requested test.

* Split generic_ptr_to_host_mem into two tests.

The old generic_ptr_to_host_mem test tests two different device capabilities (SVM and not SVM). This is a prerequisite for the following commit.

* Generic Address Space: Skip tests utlilising SVM on devices that do not support SVM.

Where a device does not support SVM, do not run the generic address space test(s) that rely on SVM.
2020-03-27 12:38:30 +00:00
Jeremy Kemp
540d1175c7 Generic Address Space: Skip test on unsupported devices. (#708)
* Generic Address Space: Skip test on unsupported devices.

Where a device does not have to support this test, skip it.

* CI: Added USE_CL_EXPERIMENTAL to the CI build(s).
2020-03-27 12:16:17 +00:00
John Kesapides
d128fea964 Global variable gDeviceType correctly set (#611)
Add gDeviceType set on kernel_read_write tests(image_streams)
as the device type affects the way validation is performed in the test.

Signed-off-by: John Kesapides <john.kesapides@arm.com>
2020-03-26 22:14:46 +00:00