Signed-off-by: Pierre Moreau <pierre.mor...@free.fr> --- src/gallium/state_trackers/clover/core/device.cpp | 11 +++++++++++ src/gallium/state_trackers/clover/core/device.hpp | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 158c9aa696..52ac5229a3 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -224,6 +224,12 @@ device::ir_format() const { pipe, PIPE_SHADER_COMPUTE, PIPE_SHADER_CAP_PREFERRED_IR); } +cl_uint +device::supported_irs() const { + return (enum pipe_shader_ir) pipe->get_shader_param( + pipe, PIPE_SHADER_COMPUTE, PIPE_SHADER_CAP_SUPPORTED_IRS); +} + std::string device::ir_target() const { std::vector<char> target = get_compute_param<char>( @@ -235,3 +241,8 @@ enum pipe_endian device::endianness() const { return (enum pipe_endian)pipe->get_param(pipe, PIPE_CAP_ENDIANNESS); } + +bool +device::supports_ir(cl_uint ir) const { + return supported_irs() & (1 << ir); +} diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp index 94a61d1050..065e788fd3 100644 --- a/src/gallium/state_trackers/clover/core/device.hpp +++ b/src/gallium/state_trackers/clover/core/device.hpp @@ -74,9 +74,12 @@ namespace clover { std::string device_name() const; std::string vendor_name() const; enum pipe_shader_ir ir_format() const; + cl_uint supported_irs() const; std::string ir_target() const; enum pipe_endian endianness() const; + bool supports_ir(cl_uint ir) const; + friend class command_queue; friend class root_resource; friend class hard_event; -- 2.12.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev