Oops, missed that v2. Still :
Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
On 05/05/18 19:11, Jason Ekstrand wrote:
In the prime case, our modifier is always DRM_FORMAT_MOD_LINEAR and we
would end up calling dri3_pixmap_from_buffers on an X server which does
not support it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106180
Fixes: c80c08e226 "vulkan/wsi/x11: Add support for DRI3 v1.2"
---
src/vulkan/wsi/wsi_common_x11.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c
index 3a00cad..29d0e67 100644
--- a/src/vulkan/wsi/wsi_common_x11.c
+++ b/src/vulkan/wsi/wsi_common_x11.c
@@ -1055,10 +1055,8 @@ x11_image_init(VkDevice device_h, struct x11_swapchain
*chain,
image->pixmap = xcb_generate_id(chain->conn);
#ifdef HAVE_DRI3_MODIFIERS
- if (image->base.drm_modifier != DRM_FORMAT_MOD_INVALID) {
- /* If the image has a modifier, we must have DRI3 v1.2. */
- assert(chain->has_dri3_modifiers);
-
+ if (chain->has_dri3_modifiers &&
+ image->base.drm_modifier != DRM_FORMAT_MOD_INVALID) {
cookie =
xcb_dri3_pixmap_from_buffers_checked(chain->conn,
image->pixmap,
@@ -1083,6 +1081,9 @@ x11_image_init(VkDevice device_h, struct x11_swapchain
*chain,
/* Without passing modifiers, we can't have multi-plane RGB images. */
assert(image->base.num_planes == 1);
+ assert(image->base.drm_modifier == DRM_FORMAT_MOD_LINEAR ||
+ image->base.drm_modifier == DRM_FORMAT_MOD_INVALID);
+
cookie =
xcb_dri3_pixmap_from_buffer_checked(chain->conn,
image->pixmap,
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev