summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2013-07-09 21:21:40 -0700
committerFrancisco Jerez <[email protected]>2013-07-22 22:45:20 +0200
commit8c9d3c62f60a2819948bdfb005600cdc10aa2547 (patch)
tree41d47c73c5edd95c3ba341baceb7fd9a597d6e15 /src/gallium/state_trackers/clover
parent4e90bc9a12bea93c6b5522abe8151a8cfe1d6d1d (diff)
clover: Return correct value for CL_DEVICE_ENDIAN_LITTLE
Query the driver using PIPE_CAP_ENDIANNESS rather than always returning true. Cc: [email protected] Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/clover')
-rw-r--r--src/gallium/state_trackers/clover/api/device.cpp3
-rw-r--r--src/gallium/state_trackers/clover/core/device.cpp5
-rw-r--r--src/gallium/state_trackers/clover/core/device.hpp1
3 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
index e132656032a..3e8b3f821c3 100644
--- a/src/gallium/state_trackers/clover/api/device.cpp
+++ b/src/gallium/state_trackers/clover/api/device.cpp
@@ -192,7 +192,8 @@ clGetDeviceInfo(cl_device_id dev, cl_device_info param,
return scalar_property<size_t>(buf, size, size_ret, 0);
case CL_DEVICE_ENDIAN_LITTLE:
- return scalar_property<cl_bool>(buf, size, size_ret, CL_TRUE);
+ return scalar_property<cl_bool>(buf, size, size_ret,
+ dev->endianness() == PIPE_ENDIAN_LITTLE);
case CL_DEVICE_AVAILABLE:
case CL_DEVICE_COMPILER_AVAILABLE:
diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
index 95a422c8b7a..94faeee6c44 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -192,3 +192,8 @@ _cl_device_id::ir_target() const {
PIPE_COMPUTE_CAP_IR_TARGET);
return { target.data() };
}
+
+enum pipe_endian
+_cl_device_id::endianness() const {
+ return (enum pipe_endian)pipe->get_param(pipe, PIPE_CAP_ENDIANNESS);
+}
diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp
index 465af9f197d..c6e50dbde6d 100644
--- a/src/gallium/state_trackers/clover/core/device.hpp
+++ b/src/gallium/state_trackers/clover/core/device.hpp
@@ -66,6 +66,7 @@ public:
std::string vendor_name() const;
enum pipe_shader_ir ir_format() const;
std::string ir_target() const;
+ enum pipe_endian endianness() const;
friend struct _cl_command_queue;
friend class clover::root_resource;