diff options
-rw-r--r-- | src/gallium/state_trackers/clover/api/device.cpp | 11 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.cpp | 14 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.hpp | 1 |
3 files changed, 16 insertions, 10 deletions
diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp index 5a4f94c1141..ca6b90ba271 100644 --- a/src/gallium/state_trackers/clover/api/device.cpp +++ b/src/gallium/state_trackers/clover/api/device.cpp @@ -326,16 +326,7 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, break; case CL_DEVICE_EXTENSIONS: - buf.as_string() = - "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" - + 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" : ""); + buf.as_string() = dev.supported_extensions(); break; case CL_DEVICE_PLATFORM: diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 010bae81403..0c02039eba7 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -278,3 +278,17 @@ device::supports_ir(enum pipe_shader_ir ir) const { return pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE, PIPE_SHADER_CAP_SUPPORTED_IRS) & (1 << ir); } + +std::string +device::supported_extensions() const { + return + "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" + + std::string(has_int64_atomics() ? " cl_khr_int64_base_atomics" : "") + + std::string(has_int64_atomics() ? " cl_khr_int64_extended_atomics" : "") + + std::string(has_doubles() ? " cl_khr_fp64" : "") + + std::string(has_halves() ? " cl_khr_fp16" : ""); +} diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp index ebe15f28e93..a7084e863f4 100644 --- a/src/gallium/state_trackers/clover/core/device.hpp +++ b/src/gallium/state_trackers/clover/core/device.hpp @@ -83,6 +83,7 @@ namespace clover { std::string ir_target() const; enum pipe_endian endianness() const; bool supports_ir(enum pipe_shader_ir ir) const; + std::string supported_extensions() const; friend class command_queue; friend class root_resource; |