[Mesa-dev] [RFC PATCH 11/13] RFC: anv/wsi: Use VK_MESAX_external_image_dma_buf
Chad Versace
chadversary at chromium.org
Mon Mar 6 20:40:20 UTC 2017
When creating a VkSurface for X11, we created the underlying VkImage by
calling anv_image_create() and passing driver-private info to it. We can
now accomplish the same thing without driver-private info, using VK_MESAX_external_image_dma_buf.
In anv_wsi.c, replace the combo of
anv_image_create() + struct anv_image_create_info
with
anv_CreateImage() + VkExportImageDmaBufInfoMESAX
No intended change in behavior.
---
src/intel/vulkan/anv_wsi.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c
index 4236ee14909..ba50155a868 100644
--- a/src/intel/vulkan/anv_wsi.c
+++ b/src/intel/vulkan/anv_wsi.c
@@ -155,11 +155,7 @@ x11_anv_wsi_image_create(VkDevice device_h,
struct anv_image *image;
VkResult result;
- result = anv_image_create(anv_device_to_handle(device),
- &(struct anv_image_create_info) {
- .isl_tiling_flags = ISL_TILING_X_BIT,
- .stride = 0,
- .vk_info =
+ result = anv_CreateImage(anv_device_to_handle(device),
&(VkImageCreateInfo) {
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.imageType = VK_IMAGE_TYPE_2D,
@@ -177,7 +173,18 @@ x11_anv_wsi_image_create(VkDevice device_h,
.usage = (pCreateInfo->imageUsage |
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT),
.flags = 0,
- }},
+ .pNext =
+ &(VkExternalMemoryImageCreateInfoKHX) {
+ .sType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHX,
+ .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_MESAX,
+ .pNext =
+ &(VkExportImageDmaBufInfoMESAX) {
+ .sType = VK_STRUCTURE_TYPE_EXPORT_IMAGE_DMA_BUF_INFO_MESAX,
+ .drmFormatModifierCount = 1,
+ .pDrmFormatModifiers = (uint64_t[]) {
+ I915_FORMAT_MOD_X_TILED,
+ },
+ }}},
NULL,
&image_h);
if (result != VK_SUCCESS)
--
2.12.0
More information about the mesa-dev
mailing list