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 9dd7eed3f1..7eaa0ca2cb 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -247,6 +247,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>(
@@ -268,3 +274,8 @@ std::string
 device::device_clc_version() const {
     return "1.1";
 }
+
+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 85cd031676..eed644e919 100644
--- a/src/gallium/state_trackers/clover/core/device.hpp
+++ b/src/gallium/state_trackers/clover/core/device.hpp
@@ -80,9 +80,12 @@ namespace clover {
       std::string device_version() const;
       std::string device_clc_version() 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.16.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to