119 Commits

Author SHA1 Message Date
libretroadmin
f96ff71416 (video context drivers) Cleanups 2023-02-21 09:49:46 +01:00
LibretroAdmin
b4a2216049 (Context drivers) Cleanups; use flags instead of booleans etc. 2022-10-29 19:36:50 +02:00
Giovanni Cascione
18b3997a15
mali_fbdev: change bools to flags (#14508) 2022-10-12 12:12:16 +02:00
LibretroAdmin
d100e73780 Use more runloop flags 2022-10-10 08:59:27 +02:00
Giovanni Cascione
fd2a026f96
mali_fbdev: add conditional support for gles3 (#14494) 2022-10-08 19:05:26 +02:00
Giovanni Cascione
093432d6c4
mali_fbdev: fix assertion failed on video threaded switch (#14316)
* mali_fbdev: fix assertion failed on video thread switch

* mali_fbdev: added fallback to get refresh rate currently set
2022-08-16 22:13:43 +02:00
Giovanni Cascione
fe943a65e8 mali_fbdev: fix segfault switching video threaded from quickmenu 2022-03-15 05:45:38 +01:00
Giovanni Cascione
ffbbdbd256
fbdev: fix segfault on video thread switch and exit from hw_ctx cores (#13571) 2022-01-30 09:24:33 +01:00
Giovanni Cascione
f93548ab56
mali_fbdev fix for fps drop after egl_destroy (#13494)
Currently each time a screen resolution or setting change occurs, fbdev_destroy, fbdev_init and fbdev_set_mode are called in sequence, trying to destroy context and surface (though context pointer seems to remain unchanged) and create again both of them.
However it seems something is wrong with egl_destroy, as after the call fps drops from 60 to 33fps in GUI with huge performance impact, at least with libmali.
Philosophy is changed with this commit to avoid destroying and creating context and surface each time (creation only occurs in fbdev_init and egl_destroy is called only if retroarch is shutting down).
As a minor modification, framebuffer is resetted to 0 on retroarch shutdown to avoid any chance of freezed screen effect.
2022-01-14 15:30:04 +01:00
Giovanni Cascione
f43b19db4f
mali_fbdev: fix for yoffset>0 (screen freezing), setterm unavailable and refresh_rate division by 0 (#13450)
-In case yoffset is not set=0 by the driver (which seems to occur randomly on certain configurations), on next set_video_mode call screen freezes and cannot be updated. Condition to set yoffset to 0 if current value is >0 is added as fix.
-If setterm is not available, sh error occurs in the shell on gfx_ctx_mali_fbdev_destroy call. Condition based on setterm availability is added to avoid this.
-If pixclock from driver is not available (=0), divide by 0 occurs when trying to calculate refresh rate. Condition is added as a fix, if pixclock=0 refresh rate is set as 60.
2022-01-05 19:26:39 +01:00
twinaphex
4b5951bda3 Rename gl_common.h to gl2_common.h and remove some file dependencies
on it
2021-09-26 17:42:12 +02:00
twinaphex
465e84d60c (context drivers) Make names uniform 2020-07-20 18:22:33 +02:00
twinaphex
34662e8fe8 (Context drivers) Cleanups - use egl_get_proc_address directly instead
of wrapper functions
2020-07-18 17:22:24 +02:00
twinaphex
318c11129b Cleanups 2020-07-17 15:02:14 +02:00
twinaphex
4598f186a8 Get rid of video_frame_info dependency 2020-03-07 00:39:06 +01:00
twinaphex
4d7b627421 Get rid of video_info dependency for set_video_mode 2020-03-06 22:58:12 +01:00
twinaphex
e20151a048 Get rid of video_info struct for swap_buffers too 2020-03-06 22:29:51 +01:00
twinaphex
4aae293e3d Remove is_shutdown from check_window 2020-03-06 20:29:31 +01:00
twinaphex
fa7859ad13 (Gfx drivers context) Cleanup EGL calls 2020-01-06 18:27:18 +01:00
twinaphex
03bddff8e6 Cleanups of update_window_title functions 2019-09-22 03:05:06 +02:00
twinaphex
302e2fdc53 Move show memory details outside of the video context driver and
into retroarch.c - avoid lots of code duplication
2019-09-21 07:49:33 +02:00
twinaphex
65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00
twinaphex
453cc3dcbd (video context driver) has_Windowed can be degraded to a simple
boolean variable
2019-07-26 06:23:20 +02:00
LazyBumHorse
c20c67bd3a proper shader compatibility checks
- move shader flags from the video drivers to the context drivers
 - rework config_load_shader_preset() from configuration.c into retroarch_load_shader_preset() in retroarch.c with proper compatibility check
 - implicitly call retroarch_load_shader_preset() in retroarch_get_shader_preset() once per core/content life cycle
 - use video_shader_is_supported() instead of video_driver_test_all_flags() where appropriate
 - remove GFX_CTX_FLAGS_NONE because it is meaningless
2019-06-18 13:46:41 +02:00
twinaphex
ee3208ac39 Integrate video_driver.c into retroarch.c 2019-06-17 15:10:22 +02:00
twinaphex
b347b26d61 Reimplement shader flags being set - GL core should have only
Slang support and no GLSL, with the GL2 driver it is dependent
on the context driver
2019-03-13 14:06:50 +01:00
Brad Parker
5e177c75a5 add memory stats to more context drivers, use correct default variables for fps/stats/framecount/memory_show 2019-02-15 15:59:00 -05:00
twinaphex
62bea6ad11 SOme header cleanups 2019-02-02 22:02:24 +01:00
orbea
e062b98088 Remove trailing blank lines.
find . -type f -exec sed -i '${/^[[:space:]]*$/d;}' {} \+
2019-01-17 19:39:38 -08:00
Themaister
868465ad01 EGL: Add callback to select EGLConfig.
A more robust fix for DRM/GBM shenanigans.
2018-12-11 20:12:25 +01:00
twinaphex
4738ef545c Change interval type to signed int 2018-09-12 00:08:13 +02:00
Rob Loach
71c031099b
Fix missing division in mali fbdev 2018-04-27 22:44:53 -04:00
Brandon Wright
0e013ced75 Fix typo in mali fbdev driver. 2018-04-27 12:42:46 -05:00
Brandon Wright
c4f818599c Add some fbdev refresh rate polls. Also Xv. 2018-04-16 16:23:59 -05:00
Brandon Wright
533f898132 Add get refresh rate context function. Implement for X11 and Wayland. 2018-04-15 17:56:12 -05:00
twinaphex
16c1bd7a03 Create context get_api function 2018-03-01 21:16:54 +01:00
gblues
6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex
97095404bd Buildfixes 2017-11-13 11:04:09 +01:00
Alcaro
58bae8456a
Remove filestream dependency
This causes issues in #5664
2017-11-13 09:45:48 +00:00
twinaphex
b0398c1482 C89 build fixes 2017-05-19 03:34:53 +02:00
Kyle Brenneman
fcccc9dc0b Use eglGetPlatformDisplay when it's available.
Added a platform parameter to egl_init_context. If the caller provides a
platform other than EGL_NONE, then it will try to use eglGetPlatformDisplay or
eglGetPlatformDisplayEXT instead of eglGetDisplay.

If neither eglGetPlatformDisplay or eglGetPlatformDisplayEXT is supported, then
it will still fall back to calling eglGetDisplay.

Updated the Wayland, X11, and DRM callers to use the correct platform enum.
Those are the callers that don't just pass EGL_DEFAULT_DISPLAY as the native
display handle.

Calling eglGetDisplay with any value other than EGL_DEFAULT_DISPLAY is
inherently unreliable, because it requires the EGL implementation to guess a
platform type based on a (void *) pointer. Some implementations might not
identify a particular platform, or worse, might guess wrong.

Fixes https://github.com/libretro/RetroArch/issues/4790
2017-04-16 14:19:40 -06:00
Jools Wills
b587018c56 hardcode struct for compatibility between various mali EGL headers
Old kronos headers used mali_native_window, ARM's headers used fbdev_window, and
latest mali-fbdev package on the odroid with newer khronos headers, the struct seems missing
2017-04-07 18:55:33 +01:00
twinaphex
6247d6ea1d Update check_window - we no longer need runloop.h inside context driver 2017-01-23 01:02:33 +01:00
twinaphex
4ea31e99aa Remove some header includes 2017-01-23 00:39:20 +01:00
twinaphex
1ea3bea0ee Don't pass video_info by value to context_driver init function 2017-01-22 18:29:22 +01:00
twinaphex
9d1de5c974 Rewrite video_context_driver_set_resize 2017-01-19 14:31:57 +01:00
twinaphex
7fbd3fcfb6 Simplify has_windowed 2017-01-19 02:50:56 +01:00
twinaphex
b96e0bb820 Remove stub update_title functions 2017-01-19 01:58:44 +01:00
twinaphex
34da27c36b Don't need 'frame_count' variable for check_window 2017-01-18 21:47:12 +01:00
twinaphex
a6a4808e94 Refactor frame monitor code 2017-01-18 17:41:27 +01:00