[Mesa-dev] [RFC PATCH 09/17] clover: Add additional functions to query supported IRs
Pierre Moreau
pierre.morrow at free.fr
Wed May 3 21:56:57 UTC 2017
Signed-off-by: Pierre Moreau <pierre.morrow at 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
More information about the mesa-dev
mailing list