[PATCH i-g-t 3/4] tests/intel/xe_exec_atomic: Use new vm bind flag

Nirmoy Das nirmoy.das at intel.com
Fri Apr 12 09:01:16 UTC 2024


Use new vm bind flag to probe device atomics support.

Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
---
 tests/intel/xe_exec_atomic.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/intel/xe_exec_atomic.c b/tests/intel/xe_exec_atomic.c
index d9790da78..1ec149ca1 100644
--- a/tests/intel/xe_exec_atomic.c
+++ b/tests/intel/xe_exec_atomic.c
@@ -85,7 +85,8 @@ static void basic_inst(int fd, int inst_type, struct drm_xe_engine_class_instanc
 
 	exec_queue = xe_exec_queue_create(fd, vm, eci, 0);
 	bind_engine = xe_bind_exec_queue_create(fd, vm, 0);
-	xe_vm_bind_async(fd, vm, bind_engine, bo, 0, addr, bo_size, &sync, 1);
+	xe_vm_bind_async_flags(fd, vm, bind_engine, bo, 0, addr, bo_size,
+			       &sync, 1, DRM_XE_VM_BIND_FLAG_DEVICE_ATOMICS);
 	data = xe_bo_mmap_ext(fd, bo, bo_size, PROT_READ|PROT_WRITE);
 	data->data = value;
 
@@ -112,9 +113,10 @@ static void basic_inst(int fd, int inst_type, struct drm_xe_engine_class_instanc
 
 static bool has_atomics(int fd, uint32_t region)
 {
-	/* System memory atomics on dGPU is not functional as of now */
-	if (region == system_memory(fd) && xe_has_vram(fd))
-		return false;
+	struct drm_xe_query_config *config = xe_config(fd);
+
+	if (region == system_memory(fd))
+		return !!config->info[DRM_XE_QUERY_CONFIG_VA_BITS];
 
 	return true;
 }
-- 
2.42.0



More information about the igt-dev mailing list