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