The values in `src` are indices into an array in `get_order_string()`.
Not initializing `src` resulted in out of bounds accesses there.
It seems that when the out of bounds accesses happened, the result of
`get_order_string()` was not actually used, so at least the test was not
using random data. Fix the issue as it prevents a clean run of this test
with e.g. AddressSanitizer.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
Currently we don't escape subnormal values when generating image data.
In sampler read tests, we use `!=` to check the two values even when it
is floating-point data, which requires the two values are bitwise equal.
However, a sampler might flush subnormal values, causing the test case
to fail.
In this patch, when generating random image data, we escape subnormal
values.
The specification states that `clEnqueueMapImage` and
`clEnqueueMapBuffer` should return NULL on error. Ensure this is
checked.
This testing gap was caught by a compiler warning about `dataPtr` being
written but not read. With this fix, there are no more
Wunused-but-set-variable warnings in this test, so reenable the warning.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
Except for SYNC_FD, current implementation doesn't import exported
OpenCL semaphore in Vulkan and ends up doing signal and wait on
essentially two unrelated semaphores (one created in OpenCL and one in
Vulkan).
Since OpenCL exports the semaphore, import that in Vulkan to perform
signal/wait on the same underlying payload.
Isuue #875 clarified that CL_INVALID_BUFFER_SIZE should be returned if
clCreateBuffer is passed a pointer returned by clSVMAlloc as its
host_ptr and the size of the buffer exceeds the size of the SVM
allocation.
Add a new negative test to ensure CL_INVALID_BUFFER_SIZE is returned
when the size of buffer exceeds the size of the SVM allocation.
Fixes#1701
The `test_compiler compiler_defines_for_extensions` test did not free
all `malloc`'ed memory.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
* Added negative tests for clEnqueueCommandBufferKHR
* Added blocking the clEnqueueCommandBufferKHR call on a user event
* Added finalizing buffer before enqueuing
* Added negative tests for clRetainCommandBufferKHR, clReleaseCommandBufferKHR, clFinalizeCommandBufferKHR
* Added blocking the clEnqueueCommandBufferKHR call on a user event
* Changed cl_event to clEventWrapper
Only report an error (and include the error code), but don't throw an
exception as that would call `terminate`. Failure to release
resources is not fatal in other parts of the CTS.
This fixes `-Wterminate` warnings:
warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
note: in C++11 destructors default to ‘noexcept’
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
This is 7-year old CMake code that never did anything because the
function invocation is missing the PROPERTIES keyword.
Adding the keyword results in build errors, so just drop the dead code
since everything seems to be working without it anyway.
* cl_copy_images
* cl_get_info
* cl_fill_image
* cl_read_write_image
* kernel_image_methods
* IMAGE1D_BUFFER cannot be created with (USE_|ALLOC_|COPY_)_HOST_PTR
* do not allow mipmap with 1D buffer
* adjust M to be within maximum_sizes and max_pixels
* remove unused variables
* make sure M will never be 0
* fix region[0] after refactoring removing mipmap
* fix formatting
* format with clang-format-11
* fix image1d_buffer creation with gEnablePitch
* add missing case in switch
* use align_malloc when CL version is at least 2.0
* use CL_DEVICE_NUMERIC_VERSION and align_free
* fix free of pitch buffer
* fix formatting
* fix formatting
* fix data->is_aligned
* Corrections to mutable arguments tests
-added verification of device capabilities against mutable arguments
-corrected fail of 2 tests with Construction Kit
-general cleanup
* cleanup corrections
* restored relaxed version of mutable arguments tests
* corrections to strengthen the test around SVM arguments
`log_error` was invoked from a template function, but the format
specifiers weren't adjusted for the template parameter types. Use a
stringstream for printing instead.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
We compute the reference values using unsigned types exclusively,
even when the input type is signed. This fixes one place where
an signed type was inadvertently used.
There appears to have been some confusion over `uint_mask` during the
initial reviews of the subgroup tests. Add a comment to clarify the
purpose of the mask.
Use a 32-bit all-ones mask (`0xffffffff`) instead of a 64-bit all-ones
mask to further clarify the intent, that is, don't delay discarding
the upper 32 bits until the assignment but mask them out immediately.
Fixes https://github.com/KhronosGroup/OpenCL-CTS/issues/1203
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
* Shader -> SPIR-V at CTS build time (#1849)
Instead of relying on prebuilt checked-in SPIR-V files, compile
available shaders at CTS build time.
* Add dependency on glslc (available as part of VULKAN_SDK).
* Add optional build flag BUILD_GLSL_SHADERS, OFF by default.
* Remove pre-built SPIR-V files
* Compile Shader -> SPIR-V at CTS build time
* Use glslangValidator for shader -> spirv
* Add glslangValidator tool for shader -> spirv
* Refactor glslangValidator tool retrieval
* Address review comments
* Use add_subdirectory() instead of include()
* Use glslang instead of glslangValidator
* Update Github actions CI to install Vulkan SDK
Avoid casting to `uint64_t` in some places; instead keep the types as
`size_t` and use the `%z` length modifier, or as
`uint32_t` and use the `%u` specifier.
For printing of 64-bit types, use the `PRI*64` macros from <cinttypes>
to ensure portability across 32 and 64-bit builds.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
* Added test to cover iterative mutable argument update
According to issue description #1481
* cosmetic correction
* clang format fix
* Corrections due to code review
* Added test to cover overwritten update of mutable parameters
According to issue description #1481
* cosmetic corrections
* Corrections due to code review
`inOrderStr` and `outOrderStr` are both written into `orderName`,
which may not fit as all three are the same size. Decrease the sizes
of `inOrderStr` and `outOrderStr`. The new sizes are still
sufficiently large to hold the result of `get_order_string`.
This commit only affects the error path and does not change the
printed output. Error logs before and after this commit should not
differ.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
Add support for `CL_UNORM_INT_101010_2` in the `get_pixel_size` helper
function. This fixes the following tests:
* memInfo_image_from_buffer_positive
* image_from_buffer_alignment_negative
* imageInfo_image_from_buffer_positive
Signed-off-by: Ahmed Hesham <ahmed.hesham@arm.com>
* Added new test to cover multiple comands dispatch in one enqueued update
According to issue description #1481
* clang format correction
* Few minor corrections
* cosmetic corrections
* Added new tests for simultaneous use with mutable dispatch
-cross queue simultaneous use
-in-order queue with simultaneous use
According to issue description #1481
* Several corrections applied:
-reordered Skip conditions to check valid simultaneous_use_support flag
-removed unnecessary SetUpKernel call
-initialize kernel and memory buffers from BasicCommandBufferTest
instead BasicMutableCommandBufferTest
* Corrections for command buffer creation to request simultaneous property
When reporting errors from `clCreateCommandQueueWithProperties`,
report the correct property names. In particular:
`CL_QUEUE_DEVICE` should be `CL_QUEUE_ON_DEVICE`.
`CL_QUEUE_DEFAULT` should be `CL_QUEUE_ON_DEVICE_DEFAULT`.
Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
* Added command buffer with full mutable dispatch test
According to #1481 issue description, point 2.1
* Corrected the test to handle all available mutable properties
According to #1481 issue description, point 2.1