Commit Graph

106 Commits

Author SHA1 Message Date
Grzegorz Wawiorko
9daeca00ea cl21: Fix compilation in D3D cases (#393)
* Fix compilation in D3D cases

* Use existing harness include search path.
2019-07-24 14:20:39 +01:00
Stuart Brady
912bfbe466 Split offline compilation into multiple functions 2019-07-19 10:47:32 +01:00
Stuart Brady
9c337d5f37 Refactor handling of device ID for offline compilation
This also cleans up error handling in get_device_address_bits().
2019-07-19 10:47:32 +01:00
Stuart Brady
979405d84d Fix error handling in create_single_kernel_helper() 2019-07-19 10:47:32 +01:00
Wenju He
ccadaf3c1d test_basic/progvar: fix 64bit atomic types error (#370)
Enable 64bit atomics extentions in order to use 64bit atomic types in
test_progvar_prog_scope_init and test_progvar_prog_scope_uninit.
2019-07-15 10:46:58 +01:00
Grzegorz Wawiorko
4bd713856e cl21: Fix spirv path in bruteforce tests (#356)
* Fix spirv path in bruteforce tests

* Compilation fix - align_malloc already defined in kernelHelpers.c

* Fix spirv path in bruteforce tests - more places
2019-07-10 13:56:57 +01:00
Grzegorz Wawiorko
c6f515c0d3 Test fix - Test computeinfo should know each existing OCL version (#368) 2019-07-08 16:38:49 +01:00
Stuart Brady
543cbe769c Update command line parameters for offline compilation
This change simplifies the command line interface for controlling offline
compilation.  It replaces special command line syntax for controlling the
compilation cache for SPIR-V compilation, with generic command line
parameters that can now also be used for binary offline compilation.
2019-07-08 11:33:50 +01:00
Stuart Brady
f2f458b675 Rename gSpirVPath to gCompilationCachePath
gSpirVPath controls the location of the compilation cache for SPIR-V
offline compilation, but its name falsely implies that it is
SPIR-V specific.  This change renames it to gCompilationCachePath.
2019-07-08 11:33:50 +01:00
Stuart Brady
9be570cdf0 Refactor setting of compilation mode and cache mode
This change refactors the setting of the compilation mode, so that
instead of using a 'gOfflineCompiler' bool together with a
'gOfflineCompilerOutputType' enum, a single 'gCompilationMode' enum
is used.  The default value for gCompilationMode is 'kOnline', which
is equivalent to the previous defaulting of gOfflineCompiler to false.

In addition, it refactors the setting of the compilation cache mode,
so that instead of the 'gForceSpirVCache' and 'gForceSpirVGenerate'
bools, a single 'gCompilationCacheMode' enum is used.  The default
value for gCompilationCacheMode is 'kCacheModeCompileIfAbsent', which
is equivalent to the previous defaulting of both booleans to false.
2019-07-08 11:33:50 +01:00
Stuart Brady
814dd8adc0 Refactor code for getting CL_DEVICE_ADDRESS_BITS 2019-07-05 14:27:25 +01:00
Stuart Brady
36dfbd4162 Refactor is_extension_available()
This change splits up is_extension_available() so that the bulk of it
can be reused for fetching other items of variable-length device
information, such as CL_DEVICE_VERSION.
2019-07-05 14:27:25 +01:00
Stuart Brady
5438c664a1 Rename gOfflineCompilerInput/Output locals
These are local variables, and wrongly start with a "g" indicating that
they are globals.
2019-07-05 14:27:25 +01:00
Stuart Brady
ab36d94dd0 Reindent parameter parsing code 2019-07-05 14:27:25 +01:00
Stuart Brady
7486dd13ad Remove source transformation support
This change removes support for the "source" mode of offline compilation
which is commented with "to be removed in the future as we will use
offline compiler here".

The "source" mode allowed for the CL source to be transformed by
build_script_source.py and then passed to clCreateProgramWithSource(),
and appears to have been developed only for the purpose of testing the
offline compilation infrastructure.
2019-07-05 14:27:25 +01:00
Wenju He
e1874ba732 c11_atomics: fix ambiguous call atomic_fetch_add (#354)
Cast operand type to AddSubOperandType.
2019-07-05 11:37:23 +01:00
Nikhil Joshi
9686ea098c Fix enqueue_flags test to use correct barrier type. (#349)
Currently, enqueue_flags test uses CLK_LOCAL_MEM_FENCE.
Use CLK_GLOBAL_MEM_FENCE instead as all threads across work-groups
need to wait here.
2019-07-03 14:10:26 +01:00
Grzegorz Wawiorko
f7f6208f62 Fix test_api - query for device extensions in queue hint test (#352) 2019-07-03 12:16:05 +01:00
robquill
4eee1fe25e Use slice pitch instead of row pitch for 1D arrays. (#314)
Fixes fill_image 1Darray
2019-06-18 10:28:22 +01:00
Grzegorz Wawiorko
664b1ccf8d cl21: Enable compilation of spir 1.2 tests (#304)
* Enable compilation of spir 1.2 tests

* Files to copy as a list of files.
2019-06-17 12:59:44 +01:00
Grzegorz Wawiorko
94beef7cd3 Intel compiler bruteforce - fix signbitl function (#292) 2019-06-11 09:42:44 +01:00
Grzegorz Wawiorko
fcae94452d Intel compiler changes in cmake (#289) 2019-06-11 09:26:24 +01:00
Grzegorz Wawiorko
0c1f8d3166 Intel compiler - fix assert when checking OCL version (#291) 2019-06-11 09:25:27 +01:00
Grzegorz Wawiorko
616af4e2d8 Intel compiler changes compat.h (#290) 2019-06-11 09:24:10 +01:00
Marco Antognini
d99f96fe18 Improve exit codes (#32) (#297)
This patch ensures runTestHarness returns either EXIT_FAILURE or
EXIT_SUCCESS to avoid undefined behaviour.
2019-05-31 11:43:02 +01:00
Nikhil Joshi
03813a9674 Fix test_host_queue_order not to rely on bit accurate float ops (#294)
Currently, test_host_queue_order relies on bit accurate float ops.
It expects expects that sqrt((float)i * i) == i.
This is not always true due to floating point precision limitations.
The test does not really need the sqrt operation and it can be removed
instead of trying to correct the floating point check.

Replace problematic float operation with constant value of 1.
2019-05-29 11:09:04 +01:00
Grzegorz Wawiorko
fa312ab953 cl21: Fix Issue #35 - ask for capability size. Too small size could cause errors (#96)
* Fix Issue #35 - ask for capability size. Too small size could cause errors

* Fix Issue #35 - Review fixes

* Fix Issue #35 - Review fixes - build issues fixed
2019-05-23 18:19:51 +01:00
Radek Szymanski
bfb3e4aa2c cl21: Add minimal required version functionality (#270)
This adds functionality to define minimal required version through the
ADD_TEST* macros. Tests that don't meet the version requirement will
be skipped.

By default the minimal required version is set to 1.0, subsequent
patches will set the appropriate version for each of the tests.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-05-22 18:31:01 +01:00
Grzegorz Wawiorko
32e702efbc cl21: Fix Issue 38 - Test spirv_new - new test for cl_khr_spirv_no_integer_… (#119)
* Fix Issue 38 - Test spirv_new - new test for cl_khr_spirv_no_integer_wrap_decoration SPV_KHR_no_integer_wrap_decoration extension

* Remove not used variable.
2019-05-22 15:56:43 +01:00
Radek Szymanski
a6fdb7ce60 cl21: Use test_status for test results (#274)
This moves from numeric values to enum values to keep result state of
the test, so we can easily save this information in JSON results.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-05-17 14:31:55 +01:00
Sven van Haastregt
caae56d32c cl21: Add image access qualifier for spirv_new binaries (#272)
The OpenCL SPIR-V Environment Specification v2.2-10, Section 2.1
states that:

    For all OpTypeImage type-declaration instructions:
    The optional image Access Qualifier must be present.

Add the ReadOnly or WriteOnly qualifier as appropriate to the .spvasm
files, and regenerate the .spv files using

    spirv-as --target-env spv1.0
2019-05-15 19:02:06 +01:00
Grzegorz Wawiorko
4f71ca382b cl21: Fix Issue 264 - travis builds configuration fixed because of changes in icd loader project (#265)
* Fix Issue 264 - travis builds configuration fixed because of changes in icd loader project

* Fix Issue 264 - Fix multi line issue
2019-05-15 12:12:55 +01:00
Radek Szymanski
f747995668 cl21: Reuse test harness code in kernel_read_write (#242)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-05-01 21:19:47 +08:00
Radek Szymanski
d8f307f7e6 cl21: Reuse test harness code in contractions (#253)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-05-01 19:10:58 +08:00
Radek Szymanski
3aae1d60ef cl21: Reuse test harness code in headers (#256)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-05-01 19:09:01 +08:00
cdai2
abe52cae81 Fix Issue #53: required buffer size exceed the available size in non_uniform_work_group (#54) 2019-04-30 22:21:35 +08:00
Pierre Moreau
3001148ca9 cl21: CMake improvements (#236)
* Do not append non-existing folder to CMAKE_MODULE_PATH

Fixes #221

* Add use of deprecated OpenCL 1.2 and 2.1 APIs

* Define CL_TARGET_OPENCL_VERSION to 210

Fixes #227

* Define cmake_minimum_required as first operation

The CMake documentation mentions that
> Call the cmake_minimum_required() command at the beginning of the
> top-level CMakeLists.txt file even before calling the project()
> command. It is important to establish version and policy settings
> before invoking other commands whose behavior they may affect.

* CMake: Match both AppleClang and Clang
2019-04-30 22:20:20 +08:00
Radek Szymanski
211ea1e342 cl21: Reuse test harness code in samplerlessReads (#245)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-04-30 22:17:44 +08:00
Wenju He
17b102e2e4 Fix ilogbl crash and fetestexcept build if _MSC_VER>=1800 (#230)
FP_ILOGB0, FP_ILOGBNAN, ilogbm, ilogbf, ilogbl, fetestexcept and
feclearexcept are supported in Visual Studio 2013.
2019-04-29 20:41:01 +08:00
Pierre Moreau
b77db8686c Fix typos in main CMakeLists.txt (#233) 2019-04-27 08:34:05 +08:00
Pierre Moreau
d8666d5409 Add toggle for enabling OpenGL ES interop tests 2019-04-26 01:39:37 +01:00
Pierre Moreau
b23c6a6e1d Mark the graphics interop toggles as options
This allows enabling/disabling them via CMake without editing the
CMakeLists.txt file.
2019-04-26 01:39:37 +01:00
Pierre Moreau
eb1b484c29 Fix compilation of gl/main.cpp
Fixes 07196c35 ("cl22: Use single array for function list (#148)")
2019-04-26 01:39:37 +01:00
Pierre Moreau
92fcfeda22 gl: Add missing tests to the CMakeLists.txt 2019-04-26 01:39:37 +01:00
Pierre Moreau
30fae0f9b1 gl: Remove non-existent file and fix compilation 2019-04-26 01:39:37 +01:00
Wenju He
f380c730da Use unique tmp file to allow parallel printf tests (#101)
Parallel printf tests fail because they use the same file /tmp/tmpfile
to capture OpenCL kernel outputs. This patch solves this problem by
using a unique file for each process.
2019-04-25 18:10:03 +01:00
Radek Szymanski
e9d9ffac6d cl21: Reuse test harness code in clFillImage (#201)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-04-25 02:49:11 +01:00
Radek Szymanski
189d907d76 cl21: Reuse test harness code in clCopyImage (#198)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-04-25 02:46:05 +01:00
Radek Szymanski
b1db97e403 cl21: Reuse test harness code in clReadWriteImage (#207)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-04-25 02:16:24 +01:00
Radek Szymanski
7185e9bb06 cl21: Reuse test harness code in clGetInfo (#204)
Some of the setup functionality is already there in the test harness, so
use that and remove the duplicated code from within the suite.

Signed-off-by: Radek Szymanski <radek.szymanski@arm.com>
2019-04-25 01:56:50 +01:00