Mesa (main): v3dv: keep track of whether an image may be backed by external memory
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu May 27 07:23:13 UTC 2021
Module: Mesa
Branch: main
Commit: e60b009271faa4b42ed20872d6ec08afbee058b4
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e60b009271faa4b42ed20872d6ec08afbee058b4
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Wed May 26 09:33:12 2021 +0200
v3dv: keep track of whether an image may be backed by external memory
Such images will always require dedicated allocations.
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11002>
---
src/broadcom/vulkan/v3dv_image.c | 4 ++++
src/broadcom/vulkan/v3dv_private.h | 1 +
2 files changed, 5 insertions(+)
diff --git a/src/broadcom/vulkan/v3dv_image.c b/src/broadcom/vulkan/v3dv_image.c
index f1b06586ede..b42ccd25f66 100644
--- a/src/broadcom/vulkan/v3dv_image.c
+++ b/src/broadcom/vulkan/v3dv_image.c
@@ -296,6 +296,9 @@ v3dv_CreateImage(VkDevice _device,
modifier = DRM_FORMAT_MOD_LINEAR;
}
+ const VkExternalMemoryImageCreateInfo *external_info =
+ vk_find_struct_const(pCreateInfo->pNext, EXTERNAL_MEMORY_IMAGE_CREATE_INFO);
+
/* 1D and 1D_ARRAY textures are always raster-order */
VkImageTiling tiling;
if (pCreateInfo->imageType == VK_IMAGE_TYPE_1D)
@@ -332,6 +335,7 @@ v3dv_CreateImage(VkDevice _device,
image->drm_format_mod = modifier;
image->tiling = tiling;
image->tiled = tiling == VK_IMAGE_TILING_OPTIMAL;
+ image->external = external_info != NULL;
image->cpp = vk_format_get_blocksize(image->vk_format);
diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h
index 90a14206757..cf04f556a32 100644
--- a/src/broadcom/vulkan/v3dv_private.h
+++ b/src/broadcom/vulkan/v3dv_private.h
@@ -518,6 +518,7 @@ struct v3dv_image {
uint64_t drm_format_mod;
bool tiled;
+ bool external;
struct v3d_resource_slice slices[V3D_MAX_MIP_LEVELS];
uint64_t size; /* Total size in bytes */
More information about the mesa-commit
mailing list