diff options
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 9dd7eed3f17..71cf4bf60af 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -243,8 +243,15 @@ device::vendor_name() const { enum pipe_shader_ir device::ir_format() const { - return (enum pipe_shader_ir) pipe->get_shader_param( - pipe, PIPE_SHADER_COMPUTE, PIPE_SHADER_CAP_PREFERRED_IR); + int supported_irs = + pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE, + PIPE_SHADER_CAP_SUPPORTED_IRS); + + if (supported_irs & (1 << PIPE_SHADER_IR_NATIVE)) { + return PIPE_SHADER_IR_NATIVE; + } + + return PIPE_SHADER_IR_TGSI; } std::string |