[Bug 779146] dmabuf: be able to negotiate tiled surfaces

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Mar 14 17:47:26 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=779146

--- Comment #19 from Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> ---
(In reply to Scott D Phillips from comment #18)
> The fact that a surface can be mapped linear isn't really important here,
> and the proposed GstDmabufMeta isn't depending on that. It is just a
> mechanism to negotiate the mutual support of some vendor-specific modified
> format between elements.

Well, you need to negotiate the caps before the allocation (hence the
modifiers). If you don't have DMABuf caps feature in your caps, you cannot do
3. Any software in-place filters will prevent doing DMABuf caps feature here.
Now, if producing linear dmabuf cost the same as using a special map, there is
really no point looking at that, we don't need two equivalent fallback here.

> 
> (In reply to Nicolas Dufresne (stormer) from comment #17)
> > I'm giving the option to:
> > 1. Add a new GST format, like NV12_64Z32
> 
> In the case of NV12 + I915_TILING_Y, I don't think adding it as a
> GstVideoFormat would be practical (ignoring the fact that it can be mapped
> linearly). The specifics of that tiling format vary by processor generation
> and even hardware configuration (some address bits get swizzled when
> multiple memory channels are present to balance accesses).

Good to know, though the options are not mutually exclusive. I picked 1. for
the Exynos, but it does not apply to Intel titling. The current approach used
in VAAPI is 1, but with existing color formats (linear formats).

I think the simplest for now it to ignore 2. and implement 3. So basically you
keep it linear like it is now by default, and try to negotiate the tiling if
downstream has the DMABuf caps feature in it's caps. The negotiation of the
modifiers remains unaffected, but you need to negotiate the caps first to get
there anyway.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list