Mesa (master): anv: Support i915 query (DRM_IOCTL_I915_QUERY) from Linux v4.17
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jan 28 18:34:22 UTC 2021
Module: Mesa
Branch: master
Commit: c0d07c838a9fcd67e4ae8cf948ced2daa3edf8c6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0d07c838a9fcd67e4ae8cf948ced2daa3edf8c6
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Sat Mar 23 00:17:57 2019 -0700
anv: Support i915 query (DRM_IOCTL_I915_QUERY) from Linux v4.17
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8667>
---
src/intel/vulkan/anv_gem.c | 21 +++++++++++++++++++++
src/intel/vulkan/anv_gem_stubs.c | 7 +++++++
src/intel/vulkan/anv_private.h | 2 ++
3 files changed, 30 insertions(+)
diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c
index 7cd37d60e27..587cf4b2ef4 100644
--- a/src/intel/vulkan/anv_gem.c
+++ b/src/intel/vulkan/anv_gem.c
@@ -660,3 +660,24 @@ anv_gem_syncobj_timeline_query(struct anv_device *device,
return gen_ioctl(device->fd, DRM_IOCTL_SYNCOBJ_QUERY, &args);
}
+
+int
+anv_i915_query(int fd, uint64_t query_id, void *buffer,
+ int32_t *buffer_len)
+{
+ struct drm_i915_query_item item = {
+ .query_id = query_id,
+ .length = *buffer_len,
+ .data_ptr = (uintptr_t)buffer,
+ };
+
+ struct drm_i915_query args = {
+ .num_items = 1,
+ .flags = 0,
+ .items_ptr = (uintptr_t)&item,
+ };
+
+ int ret = gen_ioctl(fd, DRM_IOCTL_I915_QUERY, &args);
+ *buffer_len = item.length;
+ return ret;
+}
diff --git a/src/intel/vulkan/anv_gem_stubs.c b/src/intel/vulkan/anv_gem_stubs.c
index 699502ad618..c34f9945e9c 100644
--- a/src/intel/vulkan/anv_gem_stubs.c
+++ b/src/intel/vulkan/anv_gem_stubs.c
@@ -245,6 +245,13 @@ anv_gem_supports_syncobj_wait(int fd)
return false;
}
+int
+anv_i915_query(int fd, uint64_t query_id, void *buffer,
+ int32_t *buffer_len)
+{
+ unreachable("Unused");
+}
+
int
anv_gem_syncobj_wait(struct anv_device *device,
const uint32_t *handles, uint32_t num_handles,
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index c36ba42aa98..b478ddedaf4 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1660,6 +1660,8 @@ int anv_gem_syncobj_timeline_signal(struct anv_device *device,
int anv_gem_syncobj_timeline_query(struct anv_device *device,
const uint32_t *handles, uint64_t *points,
uint32_t num_items);
+int anv_i915_query(int fd, uint64_t query_id, void *buffer,
+ int32_t *buffer_len);
uint64_t anv_vma_alloc(struct anv_device *device,
uint64_t size, uint64_t align,
More information about the mesa-commit
mailing list