On 01/29/2015 11:30 AM, Daniel Vetter wrote:
On Wed, Jan 28, 2015 at 05:57:56PM +0000, Tvrtko Ursulin wrote:
On 01/28/2015 05:37 PM, Daniel Vetter wrote:
From: Rob Clark <robdclark@xxxxxxxxx>
In DRM/KMS we are lacking a good way to deal with tiled/compressed
formats. Especially in the case of dmabuf/prime buffer sharing, where
we cannot always rely on under-the-hood flags passed to driver specific
gem-create ioctl to pass around these extra flags.
The proposal is to add a per-plane format modifier. This allows to, if
necessary, use different tiling patters for sub-sampled planes, etc.
The format modifiers are added at the end of the ioctl struct, so for
legacy userspace it will be zero padded.
TODO how best to deal with assignment of modifier token values? The
rough idea was to namespace things with an 8bit vendor-id, and then
beyond that it is treated as an opaque value. But that was a relatively
arbitrary choice. There are cases where same tiling pattern and/or
compression is supported by various different vendors. So we should
standardize to use the vendor-id and value of the first one who
documents the format?
Maybe:
__u64 modifier[4];
__u64 vendor_modifier[4];
Seems rendundant since the modifier added in this patch is already vendor
specific. Or what exactly are you trying to accomplish here?
I am trying to avoid packet-in-a-packet (bitmasks) mumbo-jumbo and
vendor id on the head followed by maybe standardized or maybe vendor
specific tag. Feels funny. Would it not be simpler to put a struct in there?
But I was not following this from the start so maybe I am missing
something..
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx