Age | Commit message (Collapse) | Author | Files | Lines |
|
Do as the TODO comment in gst-decoder.c suggests and turn this function
into a common helper.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
The FPS code is common for each run loop. Factor this out into
and put in perfcntrs.c.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
The call to init_egl() can be made before calling the cube
init function. This allows it to be factored out into a common
location. struct egl is then passed in to each init() for use
as needed; the same as struct gbm.
As the cube init function no longer needs to modify struct egl
outside of setting the draw function, to keep egl const move
the draw call out of egl. It didn't make much sense in here to
begin with and seems to have been placed in this struct out
of convenience. Move the draw function to a new struct of cube
specific data.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
This matches init_gbm() and allows for more refactoring in later patches.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
For a couple cubes we only store the gbm struct to get access to
the screen buffer resolution. Just store the resolution directly.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
These EGL extension are not used in this cube, remove these checks.
Signed-off-by: Andrew Davis <afd@ti.com>
|
|
The gears mode currently depends on either GLES3 or desktop GL to build,
but in both cases without a proper meson dependency check.
It also doesn't really use any features which would require those GL
versions over GLES2, which is already a global dependency of kmscube.
So just change it to use symbols which are available in GLES2 and it
can be built and run in all platforms.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
|
|
On some platforms, `EGLNativeDisplayType` is an int instead of
a pointer, in which case the void pointer will raise
a `-Wint-conversion`.
Let's cast it to the correct type directly.
Closes: https://gitlab.freedesktop.org/mesa/kmscube/-/issues/16
|
|
decodebin3 is no more experimental since GStreamer-1.22:
https://gstreamer.freedesktop.org/releases/1.22
decodebin3 is now prefered to decodebin till GStreamer-1.24:
https://gstreamer.freedesktop.org/releases/1.24
This solves negotiation issues encountered with V4L2 stateless hardware
video decoders when using kmscube video playback option.
Signed-off-by: Hugues Fruchet <hugues.fruchet@foss.st.com>
|
|
Offscreen renders need an explicit video mode to be passed by the
user. However, when it's missing, current error handling just says that
initialising a DRM device failed, which sounds a bit misleading.
Add a warning message asking for a video mode command line parameter.
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Apply 1 suggestion(s) to 1 file(s)
Co-authored-by: Eric Engestrom <eric@engestrom.ch>
|
|
Since commit 38986c1 (kmscube: add option to run for specified # of frames)
we have the option of running for a given number of frames. This allows
usage for instance in automatic system tests like climate chamber etc.
To allow starting in background without termination from STDIN add a
new option that prevents polling / selecting for console input.
Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
|
|
When importing an egl image from a linux dma buf fd, we need to pass
the proper image attributes to eglCreateImageKHR. The modifier check
here should not ignore DRM_FORMAT_MOD_LINEAR when setting
EGL_DMA_BUF_PLANE0_MODIFIER_LO/HI_EXT else the ordering of
samples within a plane will be incorrect, resulting in
incorrect/garbled pixels being presented.
v2: Update code changes to set EGL_DMA_BUF_PLANE0_MODIFIER_LO/HI
whenever an extension exposes modifiers so that INVALID modifiers are
accepted (Daniel Stone)
|
|
Use gears mode with -g or --gears to render gears on each cube face.
Renders gears to texture once and then renders the texture on each face.
Based on cube-tex.c and of course, gears.
|
|
- Add esInvert() function
- Add esTranspose() function
- Rewrite esRotate() function
- Set identity matrix at beginning of esFrustum()
|
|
|
|
This reverts commit f296635648ba31454bfe6a9ff7495f6b28af26ec
|
|
Kmscube currently selects the first connector that has a link status of
connected. Add a command line option to use a specific connector if
more than one connector has a connected link status.
Signed-off-by: Ralph Campbell <ralphcampbell1@gmail.com>
|
|
It is useful to be able to render the kube without touching the KMS. For
example, this allows us to utilise DRM render devices or to measure the
performance without waiting for vblank.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
|
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
Because 0.47 is not compatible with python 3.10 that debian now ships.
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
debian's python is now also marked as EXTERNALLY-MANAGED (see PEP 668),
which means that if we still want to install packages through pip we
need to either create a venv (overkill here), or add
`--break-system-packages`.
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
Signed-off-by: Eric Engestrom <eric@igalia.com>
|
|
This is not needed to build, and the functionality is also
compatible with GLES2 only.
Fixes build in environment with only GLES2 headers.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
|
|
Run-time dependency glesv2 found: YES 3.2
Check usable header "GLES3/gl3.h" : NO
meson.build:65: WARNING: GLES3 not supported; shadertoy & texturator are NOT included in this build
Fixes: 61fb902a021e ("meson: replace gles version check with a header presence check")
|
|
found by codespell
|
|
|
|
As explained in #8, there are GLES implementations out there that report
bogus version numbers for the GLESv2 lib, so we can't actually use that
version number reliably.
Closes: https://gitlab.freedesktop.org/mesa/kmscube/-/issues/8
|
|
find_crtc_for_encoder()
They return -1 on error, so it needs to be signed.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
|
|
This means that `shadertoy` & `texturator` might not be supported in a given build.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
|
|
gl2ext.h is the extenstion header for OpenGL ES 2.0 and all later
versions according to the Khronos documentation [1]. gl3ext.h is either
an empty stub, or may not even exist on some platforms.
[1]: https://www.khronos.org/registry/OpenGL/index_es.php#headers
|
|
|
|
Prior to kernel 5.19 this was a soft failure, but 5.19
adds checks that result in a hard syscall fail.
|
|
In the off-chance that gbm_create_device fails and returns a NULL value, further
down the line a segfault will be triggered when dereferencing gbm.dev.
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
|
|
find_crtc_for_connector returns -1 if no crtc found, not 0
|
|
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
|
|
This should've been done a year and a half ago, but I didn't look at
this repo...
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
|
|
This reverts commit 2418cfe7e7af581698b85f51e849d20c876b17e3
|
|
|
|
Multiplanar formats can have different BOs for each plane, so call the
correct GBM function to get the handle for a specific plane.
|
|
|
|
|
|
The following build warning is seen:
../texturator.c:603:45: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
*complemented = (((float)rgba[2]) / 255.0) / 0.25;
Fix it by using the != 0.0f construction to properly convert from float
to bool.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
|
When libpng is not present the following build warning is seen:
../texturator.c:98:13: warning: 'png' defined but not used [-Wunused-variable]
static bool png;
Fix it by only defining the png variable when HAVE_LIBPNG is defined.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
|
Since commit 301a556b8ece ("add fps reporting") the <time.h> header
is included, which causes build failures with c99 extension on ARM32:
../common.c: In function 'get_time_ns':
../common.c:376:18: error: storage size of 'tv' isn't known
struct timespec tv;
^~
../common.c:377:16: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
clock_gettime(CLOCK_MONOTONIC, &tv);
Change c_std to gnu99 to fix the build error as explained at:
https://gcc-help.gcc.gnu.narkive.com/8xCaKI6r/problem-with-struct-timespec-and-c99-standard
c99 has been used since commit 6cbd03ab9406 ("Makefile.am: Add -std=c99 to
CFLAGS") to fix the following mips64el build failure:
"cube-tex.c:230:2: note: use option -std=c99 or -std=gnu99 to compile your code"
Use c_std=gnu99 to make both mips64el and ARM32 happy.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
|
Only wired up for shadertoy mode, other modes aren't likely to be
interesting.
|
|
|
|
|
|
|