Mesa (master): clover: Add a function for retrieving a device' s preferred ir v3

Tom Stellard tstellar at kemper.freedesktop.org
Fri Jun 1 16:24:53 UTC 2012


Module: Mesa
Branch: master
Commit: 613323b2564babc1ecaac25a6cfd786b8c839315
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=613323b2564babc1ecaac25a6cfd786b8c839315

Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Mon Apr 23 12:09:08 2012 -0400

clover: Add a function for retrieving a device's preferred ir v3

A device now has two function for getting information about the IR
it needs to return.

ir_format() => returns the preferred IR
ir_target() => returns the triple for the target that is understood by
                 clang/llvm.

v2:
  - renamed ir_target() to ir_format()
  - renamed llvm_triple() to ir_target()

v3:
  - Remove unnecessary include
  - Do proper conversion from std::vector<char> to std::string

Reviewed-by: Francisco Jerez <currojerez at riseup.net>

---

 src/gallium/state_trackers/clover/core/device.cpp |   18 ++++++++++--------
 src/gallium/state_trackers/clover/core/device.hpp |    1 +
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
index 69b1b4a..2ab735d 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -160,16 +160,18 @@ _cl_device_id::vendor_name() const {
    return pipe->get_vendor(pipe);
 }
 
+enum pipe_shader_ir
+_cl_device_id::ir_format() const {
+   return (enum pipe_shader_ir) pipe->get_shader_param(pipe,
+                                                  PIPE_SHADER_COMPUTE,
+                                                  PIPE_SHADER_CAP_PREFERRED_IR);
+}
+
 std::string
 _cl_device_id::ir_target() const {
-   switch (pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE,
-                                  PIPE_SHADER_CAP_PREFERRED_IR)) {
-   case PIPE_SHADER_IR_TGSI:
-      return "tgsi";
-   default:
-      assert(0);
-      return "";
-   }
+   std::vector<char> target = get_compute_param<char>(pipe,
+                                                    PIPE_COMPUTE_CAP_IR_TARGET);
+   return { target.data() };
 }
 
 device_registry::device_registry() {
diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp
index d106352..9408083 100644
--- a/src/gallium/state_trackers/clover/core/device.hpp
+++ b/src/gallium/state_trackers/clover/core/device.hpp
@@ -60,6 +60,7 @@ public:
    std::vector<size_t> max_block_size() const;
    std::string device_name() const;
    std::string vendor_name() const;
+   enum pipe_shader_ir ir_format() const;
    std::string ir_target() const;
 
    friend struct _cl_command_queue;




More information about the mesa-commit mailing list