Mesa (main): anv: add a custom AcquireNextImage2KHR func

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 17 22:56:40 UTC 2022


Module: Mesa
Branch: main
Commit: 7a522862157bf59ef92047dea2b6e75182c88964
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a522862157bf59ef92047dea2b6e75182c88964

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Fri Feb 11 19:28:08 2022 +0200

anv: add a custom AcquireNextImage2KHR func

So that we can plug our intel_measure framework.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Felix DeGrood <felix.j.degrood at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14998>

---

 src/intel/vulkan/anv_measure.c |  2 +-
 src/intel/vulkan/anv_measure.h |  6 +++++-
 src/intel/vulkan/anv_wsi.c     | 16 ++++++++++++++++
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/intel/vulkan/anv_measure.c b/src/intel/vulkan/anv_measure.c
index c77ac00bf71..4114c4add8a 100644
--- a/src/intel/vulkan/anv_measure.c
+++ b/src/intel/vulkan/anv_measure.c
@@ -426,7 +426,7 @@ _anv_measure_submit(struct anv_cmd_buffer *cmd_buffer)
  *  Hook for the start of a frame.
  */
 void
-anv_measure_acquire(struct anv_device *device)
+_anv_measure_acquire(struct anv_device *device)
 {
    struct intel_measure_config *config = config_from_device(device);
    struct intel_measure_device *measure_device = &device->physical->measure_device;
diff --git a/src/intel/vulkan/anv_measure.h b/src/intel/vulkan/anv_measure.h
index bca0fc0c207..a058a5ac51e 100644
--- a/src/intel/vulkan/anv_measure.h
+++ b/src/intel/vulkan/anv_measure.h
@@ -46,7 +46,7 @@ void _anv_measure_endcommandbuffer(struct anv_cmd_buffer *cmd_buffer);
 void _anv_measure_beginrenderpass(struct anv_cmd_buffer *cmd_buffer);
 
 /* tracks frame progression */
-void anv_measure_acquire(struct anv_device *device);
+void _anv_measure_acquire(struct anv_device *device);
 
 /* should be combined with endcommandbuffer */
 void _anv_measure_submit(struct anv_cmd_buffer *cmd_buffer);
@@ -55,6 +55,10 @@ void
 _anv_measure_add_secondary(struct anv_cmd_buffer *primary,
                            struct anv_cmd_buffer *secondary);
 
+#define anv_measure_acquire(device) \
+   if (unlikely(device->physical->measure_device.config)) \
+      _anv_measure_acquire(device)
+
 #define anv_measure_snapshot(cmd_buffer, type, event_name, count) \
    if (unlikely(cmd_buffer->measure)) \
       _anv_measure_snapshot(cmd_buffer, type, event_name, count)
diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c
index 67ffefd59e4..bffa3beca14 100644
--- a/src/intel/vulkan/anv_wsi.c
+++ b/src/intel/vulkan/anv_wsi.c
@@ -71,6 +71,22 @@ anv_finish_wsi(struct anv_physical_device *physical_device)
                      &physical_device->instance->vk.alloc);
 }
 
+VkResult anv_AcquireNextImage2KHR(
+   VkDevice _device,
+   const VkAcquireNextImageInfoKHR *pAcquireInfo,
+   uint32_t *pImageIndex)
+{
+   VK_FROM_HANDLE(anv_device, device, _device);
+
+   VkResult result =
+      wsi_common_acquire_next_image2(&device->physical->wsi_device,
+                                     _device, pAcquireInfo, pImageIndex);
+   if (result == VK_SUCCESS)
+      anv_measure_acquire(device);
+
+   return result;
+}
+
 VkResult anv_QueuePresentKHR(
     VkQueue                                  _queue,
     const VkPresentInfoKHR*                  pPresentInfo)



More information about the mesa-commit mailing list