diff options
author | Jan Vesely <[email protected]> | 2017-09-20 16:06:10 -0400 |
---|---|---|
committer | Jan Vesely <[email protected]> | 2017-09-27 11:13:22 -0400 |
commit | f67ceeffd418d5757b01cc5493a8456b931db087 (patch) | |
tree | f76e8b0013a684579139271393cc85eebf4cec5f /src/gallium/state_trackers/clover | |
parent | 08521629503356a5cfe8e673b32ece7cb4aefff2 (diff) |
clover: Query and export int64 atomics
Signed-off-by: Jan Vesely <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/clover')
-rw-r--r-- | src/gallium/state_trackers/clover/api/device.cpp | 6 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.cpp | 6 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.hpp | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp index 26e88aadc73..3572bb0c921 100644 --- a/src/gallium/state_trackers/clover/api/device.cpp +++ b/src/gallium/state_trackers/clover/api/device.cpp @@ -331,11 +331,13 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, case CL_DEVICE_EXTENSIONS: buf.as_string() = - "cl_khr_global_int32_base_atomics" + "cl_khr_byte_addressable_store" + " cl_khr_global_int32_base_atomics" " cl_khr_global_int32_extended_atomics" " cl_khr_local_int32_base_atomics" " cl_khr_local_int32_extended_atomics" - " cl_khr_byte_addressable_store" + + std::string(dev.has_int64_atomics() ? " cl_khr_int64_base_atomics" : "") + + std::string(dev.has_int64_atomics() ? " cl_khr_int64_extended_atomics" : "") + std::string(dev.has_doubles() ? " cl_khr_fp64" : "") + std::string(dev.has_halves() ? " cl_khr_fp16" : ""); break; diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index c0ee0acaaf9..9dd7eed3f17 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -197,6 +197,12 @@ device::has_halves() const { } bool +device::has_int64_atomics() const { + return pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE, + PIPE_SHADER_CAP_INT64_ATOMICS); +} + +bool device::has_unified_memory() const { return pipe->get_param(pipe, PIPE_CAP_UMA); } diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp index c61be790a94..85cd031676d 100644 --- a/src/gallium/state_trackers/clover/core/device.hpp +++ b/src/gallium/state_trackers/clover/core/device.hpp @@ -68,6 +68,7 @@ namespace clover { bool image_support() const; bool has_doubles() const; bool has_halves() const; + bool has_int64_atomics() const; bool has_unified_memory() const; cl_uint mem_base_addr_align() const; |