From d364ab4a615b762b3684fa292590ef4cfaba9ea8 Mon Sep 17 00:00:00 2001 From: Aaron Watry Date: Fri, 2 Jun 2017 21:51:43 -0500 Subject: [PATCH] clover/device: Get device/host unified memory from pipe driver clinfo no longer reports my discrete GCN card as unified memory Signed-off-by: Aaron Watry Reviewed-by: Francisco Jerez --- src/gallium/state_trackers/clover/api/device.cpp | 2 +- src/gallium/state_trackers/clover/core/device.cpp | 5 +++++ src/gallium/state_trackers/clover/core/device.hpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp index a80ca46654f..0b33350bb2e 100644 --- a/src/gallium/state_trackers/clover/api/device.cpp +++ b/src/gallium/state_trackers/clover/api/device.cpp @@ -336,7 +336,7 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, break; case CL_DEVICE_HOST_UNIFIED_MEMORY: - buf.as_scalar() = CL_TRUE; + buf.as_scalar() = dev.has_unified_memory(); break; case CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR: diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 158c9aa6964..8dfba1ad9fd 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -189,6 +189,11 @@ device::has_doubles() const { return pipe->get_param(pipe, PIPE_CAP_DOUBLES); } +bool +device::has_unified_memory() const { + return pipe->get_param(pipe, PIPE_CAP_UMA); +} + std::vector device::max_block_size() const { auto v = get_compute_param(pipe, ir_format(), diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp index 94a61d10500..7b3353df345 100644 --- a/src/gallium/state_trackers/clover/core/device.hpp +++ b/src/gallium/state_trackers/clover/core/device.hpp @@ -67,6 +67,7 @@ namespace clover { cl_uint max_compute_units() const; bool image_support() const; bool has_doubles() const; + bool has_unified_memory() const; std::vector max_block_size() const; cl_uint subgroup_size() const; -- 2.30.2