I have a feeling this should go before patch 3

On September 26, 2018 17:38:24 Eric Engestrom <eric.engest...@intel.com> wrote:

Signed-off-by: Eric Engestrom <eric.engest...@intel.com>
---
src/vulkan/wsi/wsi_common_display.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c
index c24b58e8c240f43ac512..0b71932bfa0939039ae3 100644
--- a/src/vulkan/wsi/wsi_common_display.c
+++ b/src/vulkan/wsi/wsi_common_display.c
@@ -1082,10 +1082,14 @@ wsi_display_image_init(VkDevice device_h,

memset(image->buffer, 0, sizeof (image->buffer));

+   /* The kernel expect a modifier for each plane for historical
+    * reasons, but they all have to be the same */
+   uint64_t drm_modifier[4] = {};
for (unsigned int i = 0; i < image->base.num_planes; i++) {
int ret = drmPrimeFDToHandle(wsi->fd, image->base.fds[i],
                          &image->buffer[i]);

+      drm_modifier[i] = image->base.drm_modifier;
close(image->base.fds[i]);
image->base.fds[i] = -1;
if (ret < 0)
@@ -1096,14 +1100,23 @@ wsi_display_image_init(VkDevice device_h,
image->state = WSI_IMAGE_IDLE;
image->fb_id = 0;

-   int ret = drmModeAddFB2(wsi->fd,
+   uint64_t *fb_modifiers = NULL;
+   uint32_t fb_flags = 0;
+   if (drm_modifier[0] != DRM_FORMAT_MOD_INVALID) {
+      fb_modifiers = drm_modifier;
+      fb_flags |= DRM_MODE_FB_MODIFIERS;
+   }
+
+   int ret = drmModeAddFB2WithModifiers(wsi->fd,
                  create_info->imageExtent.width,
                  create_info->imageExtent.height,
                  drm_format,
                  image->buffer,
                  image->base.row_pitches,
                  image->base.offsets,
-                           &image->fb_id, 0);
+                           fb_modifiers,
+                           &image->fb_id,
+                           fb_flags);

if (ret)
goto fail_fb;
--
Cheers,
Eric



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to