| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
|
|\
| |
| |
| |
| | |
Add meson support
See merge request mesa/kmscube!5
|
|/ |
|
| |
|
|\
| |
| |
| |
| | |
cube-tex: close the fd after EGLImage creation.
See merge request mesa/kmscube!2
|
| |
| |
| |
| | |
EGLImage takes the fd ownership.
|
| |
| |
| |
| |
| | |
planes[i].fd are opened in a `nplanes` loop, so they should be closed in
a same-length loop. Also, the name is a hint :P
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
common: free temporary log buffer
See merge request mesa/kmscube!3
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
add a trivial build-test ci
See merge request mesa/kmscube!4
|
|/ / |
|
|/ |
|
|
|
|
|
| |
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
|
|
|
| |
Gallium drivers that do not implement resource_create_with_modifiers()
will fail gbm_surface_create_with_modifiers() so fall back to the old
way.
Fixes: 4f7cec0 Use weak functions to handle lack of gbm modifiers
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes rendering issues with mode rgba on etnaviv. I have applied
the same change for nv12 variants but they are not supported on
etnaviv.
v1 -> v2:
- check if EGL_EXT_image_dma_buf_import_modifiers is supported
- use weak function trick for gbm_bo_get_modifier(..)
v2 -> v3:
- check if modifier != DRM_FORMAT_MOD_INVALID
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add weak function declaration and check if they're valid prior
to calling the functions.
This allows us to remove conditional compilation, yet allowing the
modifiers codepath to work if API is available.
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the default modifier is MOD_INVALID. At a later stage, if the
modifier is the same (the user may have explicit selected MOD_INVALID),
we'll fallback to MOD_LINEAR.
Simplify things to a) use MOD_LINEAR by default b) use the user modifier
- even if they request MOD_INVALID.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The GBM surface format has to match the DRM mode. Both are used in a
couple of places, so unify it so that it's only set in one place. Note
that the GBM and DRM formats are identical.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
|
|
|
|
|
|
|
| |
The select fds have to be reinitialized before each call to select.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robdclark@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
With atomic kms backend, userspace can get further ahead of the gpu. In
the decoder, we unref the previous frame when retrieving the current
frame. If userspace gets too far ahead, this can happen while the gpu
is still sampling from the previous frame.
Simple solution is add a fence.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove some boilerplate and check more specifically for all the entry-
points that different modules need.
Ok, I guess it isn't likely for a driver to expose eglCreateImageKHR
but not eglDeleteImageKHR.. but otoh kmscube is useful for bringing
up drivers.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
|
|
|
|
| |
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Seems work better than
commit 88858d32f2aa86d93397ed68641653cb34d8610b
Author: Lucas Stach <l.stach@pengutronix.de>
Date: Fri Apr 28 18:18:52 2017 +0200
common: use %llx to print modifier
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
|
|
|
|
|
|
|
|
|
|
|
| |
With the modifier support it is possible to force a modifier which isn't
compatible with any of the GPU targets. In that case the EGL platform will
be unable to allocate the back buffers.
Provide an error message in that case, instead of crashing.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Daniel Stone <daniels@collabora.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The initial pattern of:
initial_modeset();
while (1) {
pageflip();
}
was relying on getting a buffer despite not having rendered anything. It
would also show undefined content. Replace this with just using the
pageflip loop for the initial modeset as well.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Atomic does not let us have multiple requests in flight at once; if we
don't synchronise with the request completion on the CPU side, we can
get -EBUSY from the atomic commit.
We already have everything required to do this, namely the out-fence
from the last commit. Block on that with a CPU-side wait before we call
atomic commit, to make sure we'll never attempt to queue an atomic
commit before the previous one has completed.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eglGetProcAddress is allowed to return any old garbage for symbols it
doesn't know about. To avoid any mishaps, check for the appropriate
extension presence (split into EGL client extension, EGL display
extension, and GL extension, checks) before we look up any symbols
through it.
The walk through the extension list is taken from libepoxy.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
| |
The proper flag is to check is "enable_gbm_modifier"
Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* Make EGL image attribute specification code more generic, and not
specific to certain pixel formats, implicitely gaining support for YUY2
* Better handling of gstbuffers with multiple memory blocks
* Print out more information about the stream
* Use the GST_VIDEO_INFO_* macros instead of directly accessing the
GstVideoInfo fields; this is what the GStreamer documentation recommends
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
|
|
|
|
| |
This way, upstream decoder the produce frame with special strides and
offsets won't have to copy the frames. This also ensure DMABuf can be
delivered to kmscube.
Signed-off-by: Nicolas Dufresne <nicolas@ndufresne.ca>
|
|
|
|
|
|
|
|
|
| |
This is done by setting a max-lateness and enable QoS messaging. This
will have the effect that buffer arriving late to the appsink won't will
be dropped instead of being queued. This is similar to what GstVideoSink
base class would do.
Signed-off-by: Nicolas Dufresne <nicolas@ndufresne.ca>
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bus watch is useful for logging state changes, printing out
info/warning/error messages and handling common GStreamer activities like
latency redistribution and state change requests (that are sent by
elements since they are not allowed to directly change the state).
State changes and error messages can also cause a dot graph of the
pipeline to be generated if the GST_DEBUG_DUMP_DOT_DIR environment
variable is set. See the GST_DEBUG_BIN_TO_DOT_FILE documentation for more.
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
|
|
| |
This format is used for example by the i.MX6 CODA hardware video codec
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
|
|
|
|
| |
Without this, the various GST_* log macros won't output anything.
To enable, add "kmscube:<loglevel>" to the GST_DEBUG environment variable.
Example: GST_DEBUG=kmscube:5
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
|
|
|
|
|
|
|
|
| |
Use long long format when printing the format modifier, as a simple
long is only 4 bytes on 32bit systems.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
|
|
|
|
|
|
|
|
| |
The current initial value of 0 is a valid fd, so this will trip up
the GPU submit on the first render, when used as an IN fence for rendering.
Reported-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
| |
Note: nothing happens here yet since LINEAR == 0.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
| |
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
| |
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
|
|
|
|
|
|
| |
This is helpful for debugging as you will bail early with an error
message instead of a random SIGSEGV (or something more obscure).
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
| |
|