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