clover: Return correct value for CL_DEVICE_ENDIAN_LITTLE

Query the driver using PIPE_CAP_ENDIANNESS rather than always returning
true.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Tom Stellard 2013-07-09 21:21:40 -07:00 committed by Francisco Jerez
parent 4e90bc9a12
commit 8c9d3c62f6
3 changed files with 8 additions and 1 deletions

View File

@ -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:

View File

@ -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);
}

View File

@ -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;