On May 6, 2018 05:58:52 Daniel Stone <[email protected]> wrote:

Hi,

On 5 May 2018 at 19:07, Jason Ekstrand <[email protected]> wrote:
On Sat, May 5, 2018 at 6:34 AM, Bas Nieuwenhuizen <[email protected]> wrote:
@@ -1043,7 +1043,8 @@ x11_image_init(VkDevice device_h, struct
x11_swapchain *chain,
uint32_t bpp = 32;

if (chain->base.use_prime_blit) {
-      result = wsi_create_prime_image(&chain->base, pCreateInfo,
&image->base);
+      bool use_modifier = num_tranches > 0;
+      result = wsi_create_prime_image(&chain->base, pCreateInfo,
use_modifier, &image->base);

This confused me for a bit but I think I see what's going on.  You have an X
server which doesn't know about modifiers but mesa is built with modifier
support and prime is in use.  This results in the WSI code calling
dri3_pixmap_from_buffers (plural) on an X server which doesn't support it.

I'm not sure what I think about this way of solving the problem.  In my
twisted mind, DRM_FORMAT_MOD_LINEAR should always be valid even if the
modifier is ultimately ignored.  I'm going to send a counter-patch which
solves it another way but I'm not sure if my solution is better.  Daniel, do
you have any thoughts?

Linear is fairly unique in aliasing a pre-modifier GBM use flag, as
well as something that translates well across all our drivers. That
being said, I prefer Bas's patch for consistency: currently, we
_always_ set INVALID _everywhere_ if one or more components in the
chain are not modifier-aware. I don't really see a reason to diverge
here, especially when we could end up deciding on LINEAR inside the
driver but still setting INVALID for other reasons, e.g. if the user
requests a linear VkTilingMode.

Fair enough.



_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to