Commit graph

6 commits

Author SHA1 Message Date
Nicolas Dufresne
95abc6c263 gldownload: Fix renegotiation loop
When DMABuf was tried, we would renegotiate back and fourth between
DMABuf and system memory if the export failed. This would happen for
every single frame.

This patch introduces try_dmabuf_exports boolean, which is unset when
an export failed. This boolean is then put back to TRUE when upstream
pushes new caps, or downstream pushes a reconfigure event.
2019-11-11 17:11:45 -05:00
Nicolas Dufresne
a09674dd6d gldownload: Refactor download mode selection
This introduces an enum in order to cleanup how we select the
transfer mode. It also fixes the case where we callback to PBO but
we didn't execute the PBO. That was not causing any issue, just that
the processing latency would be delayed to the next element, which
can be confusing.
2019-11-11 17:01:23 -05:00
Matthew Waters
51f2d05ff6 gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
Matt Fischer
c98f92ee03 gldownload: Add dmabuf exporting
This patch adds code to gldownload to export the image as a
dmabuf if requested.  The element now exposes memory:DMABuf as
a cap feature, and if it is selected, the element exports the
texture to an EGL image and then a dmabuf. It also implements a
fallback to system memory download in case the exportation failed.

https://bugzilla.gnome.org/show_bug.cgi?id=776927
2017-12-09 19:32:31 +00:00
Jan Schmidt
632015a9e8 gldownload: Micro-optimisation. Don't check output caps on every buffer
The output caps will only change on a set_caps() call, so check if
they contain the SystemMemory feature then and save some
per-buffer CPU.
2017-12-09 19:32:29 +00:00
Matthew Waters
df50ba0491 gl: add new gldownloadelement
Simply transforms caps to/from raw/glmemory capsfeatures
2017-12-09 19:31:57 +00:00