Cameron Gutman
e74753bec1
Allow fallback from EGL to direct on EGLImage export failure
2021-03-22 22:51:29 -05:00
Cameron Gutman
26d04b5f9c
Render DRM-PRIME frames as opaque images
...
We can't always assume they are NV12. Even if they _are_ NV12,
they may have DRM format modifiers that are incompatible with
simply assuming linear Y and UV buffers (such as tiling).
2021-03-21 23:23:12 -05:00
Cameron Gutman
a0b9684504
Continue refactoring for non-NV12 support in EGLRenderer
2021-03-21 21:43:57 -05:00
Cameron Gutman
402b6d1f0c
Begin refactoring for non-NV12 support in EGLRenderer
2021-03-21 19:20:52 -05:00
Cameron Gutman
d33ccce683
Hold a reference to the underlying DMA-BUFs until the next frame
2021-03-07 12:01:25 -06:00
Cameron Gutman
d722bf10b9
Don't use glFinish() with KMSDRM backend
2021-03-07 11:23:31 -06:00
Cameron Gutman
164b3edd41
Fix viewport size on High DPI Wayland systems
...
Fixes #533
2021-03-01 22:47:14 -06:00
Cameron Gutman
93d21a0d1d
Fix EGLImage leak when not using a hwaccel backend
2021-02-06 17:59:05 -06:00
Cameron Gutman
36dd6c83e0
Fix assert failure when using v4l2m2m with EGL
2021-02-04 20:38:18 -06:00
Cameron Gutman
c3895f06c0
Fix handling of preferred/compatible pixel formats with EGLRenderer and VAAPI/DRM backends
2021-02-04 19:39:18 -06:00
Cameron Gutman
c3cea0238e
Fix build with old EGL 1.5 headers without EGL_EGL_PROTOTYPES
2021-01-31 21:42:56 -06:00
Cameron Gutman
baffab62ce
Fix uninitialized variable warning
2021-01-31 12:58:19 -06:00
Cameron Gutman
dbfdc2fd14
Share DRM FD and GBM device with SDL
...
Depends on https://hg.libsdl.org/SDL/rev/d75deb75464a
2021-01-30 21:11:52 -06:00
Cameron Gutman
a0cc93b813
Fix EGL renderer build on SDL 2.0.9 and earlier
2021-01-03 14:24:30 -06:00
Cameron Gutman
e5bcc793e5
Implement overlay support in EGLRenderer
...
Fixes #405
2020-12-19 23:01:41 -06:00
Cameron Gutman
2f3a1a5d79
Work around bug where GLES surface creation repeatedly fails on X11
2020-09-07 23:53:29 -07:00
Cameron Gutman
88ed72fdc1
Use regular VSync when enabled because adaptive VSync still tears
2020-06-20 14:44:21 -07:00
Cameron Gutman
f1c459fd6c
Fix leak of renderer when we fail to create a GL context
2020-06-08 20:39:12 -07:00
Cameron Gutman
994312c212
Force GL to block after the current frame instead during the next frame
2020-05-16 16:25:13 -07:00
Cameron Gutman
5f25e0d4e2
Add limited support for frame pacing to EGLRenderer
2020-05-16 15:59:10 -07:00
Cameron Gutman
4bbe571f5f
Fix build without FFmpeg and with older EGL 1.5 headers
2020-05-16 13:25:10 -07:00
Cameron Gutman
c58d21375c
EGL 1.4 doesn't have EGLAttrib either
2020-05-16 12:20:52 -07:00
Cameron Gutman
ed128c558f
Add support for EGLRenderer on EGL 1.4
2020-05-16 12:13:00 -07:00
Cameron Gutman
42ced309d3
Restore the original GL attributes after EGLRenderer is destroyed
2020-05-15 20:22:11 -07:00
Cameron Gutman
1fcd306879
Fix EGLRenderer when SDL isn't built with X11 or Wayland backends
2020-05-15 20:01:22 -07:00
Cameron Gutman
26c9ad7f06
Use eglGetProcAddress() for all GLES 2.0 extensions
2020-05-15 19:39:41 -07:00
Cameron Gutman
4b7b01ce0a
Fix EGL build
2020-05-15 17:54:45 -07:00
Cameron Gutman
6632154906
Remove some unnecessary headers and definitions
2020-05-15 16:59:29 -07:00
Cameron Gutman
eb9d54465c
Don't use EGLRenderer if not built with SDL 2.0.10+
2020-05-13 19:19:11 -07:00
Cameron Gutman
eb9e1f81d4
Enable the EGLRenderer to use the render thread
2020-05-13 19:09:20 -07:00
Cameron Gutman
51e9ab83ad
Send a null AVFrame to indicate end of stream to allow renderers to do render thread cleanup
2020-05-13 18:55:21 -07:00
Antoine Damhet
0a396f3112
Introduce a new FFMPEG frontend renderer: EGLRenderer
...
Right now this renderer works on X11 & Wayland with VAAPI as a backend.
Some rendering latency benchmarks on my `i7-10510U` (with
`intel-media-driver` 20.1.1 which cause a *huge* regression with the
SDL_Renderer):
| | X11 | Wayland |
| Before | 6.78ms | 22.50ms |
| EGLRenderer | 0.76ms | 00.77ms |
Signed-off-by: Antoine Damhet <antoine.damhet@lse.epita.fr>
2020-05-12 11:11:35 +02:00