Commit Graph

1211 Commits

Author SHA1 Message Date
Andrew
a1d094e64e Minor race fix and small cleanup to dispmanx_gfx
It's unlikely it was causing issues, but another race existed in the
dispmanx driver, it incremented the pending page count after sending the
update request.

If a context switch happened between sending the update and incrementing
the page count, the vsync callback would decrement it from 0 and cause
the uint to overflow.

Throw in a minor C89 fix and some whitespace fixups too.
2017-04-29 17:09:07 -07:00
twinaphex
4d419b2b56 (sdl_gfx.c) Update 2017-04-29 18:47:29 +02:00
twinaphex
60242e161a Buildfix 2017-04-29 18:45:58 +02:00
twinaphex
dd83b4a043 (Vita) Buildfix 2017-04-29 17:52:16 +02:00
twinaphex
e84adb504f Don't try to call video_driver_is_threaded from outside
gfx/video_driver.c - only exception right now - menu_display.c
2017-04-29 16:52:52 +02:00
twinaphex
91abbdd4f1 video_viewport_get_custom will never be NULL 2017-04-29 16:22:07 +02:00
twinaphex
c8bf28842f Get rid of some calls to video_driver_viewport_get_custom 2017-04-29 16:11:31 +02:00
twinaphex
2322e77795 Add to video_frame_info 2017-04-29 16:07:02 +02:00
twinaphex
6930262ec2 Update/buildfixes 2017-04-29 12:44:45 +02:00
Francisco José García García
afe173c883 [VITA] Really fix build 2017-04-29 12:02:26 +02:00
Twinaphex
ccd4bdbd60 Merge pull request #4862 from andrewlxer/master
Fix dispmanx triple buffering race and re-enable triple buffering
2017-04-29 11:16:51 +02:00
Francisco José García García
f7c56ddda3 [VITA] Fix build 2017-04-29 09:06:49 +02:00
Andrew
301a094ef9 Avoid potential dispmanx_gfx driver lockup
The dispmanx driver had a small race wherein if the vsync completed
between checking for a free page and waiting on the condvar, it would
hang forever waiting for a condition that would never fire.

I'm hoping this is what was causing the triple buffering lockups. In
my testing with it re-enabled and this fix, things are stable (and
much more performant than with triple buffering disabled).
2017-04-28 20:24:36 -07:00
Andrew
253c8cd997 Revert "DISPMANX: Disable triple buffering for now, for stability reasons."
This reverts commit 0b75671c21.
2017-04-28 20:20:43 -07:00
twinaphex
552845a94d Buildfixes 2017-04-29 02:39:32 +02:00
twinaphex
6d8789f4c1 (GX) Buildfix 2017-04-29 02:03:17 +02:00
twinaphex
e6ab06a701 Move path variables 2017-04-29 00:39:29 +02:00
twinaphex
f0c2d786ae Update arrays struct 2017-04-28 22:59:13 +02:00
twinaphex
87106b03c1 (3DS) Buildfix 2017-04-28 22:14:34 +02:00
twinaphex
05e4ec733e Move uint variables 2017-04-28 21:03:04 +02:00
twinaphex
4ef0809931 (GX) Another buildfix 2017-04-28 15:29:54 +02:00
twinaphex
684e83ef30 Updates 2017-04-28 15:19:39 +02:00
twinaphex
0da40fb3aa Move all float settings 2017-04-28 14:57:55 +02:00
twinaphex
ed53be7c81 Move all bool settings 2017-04-28 14:11:34 +02:00
twinaphex
cc095e56fc Start refactoring bool variables 2017-04-28 00:53:20 +02:00
twinaphex
2a13af52fc Revert "video_init function - video_info_t should not be const -"
This reverts commit c8bcbad4a7.
2017-04-24 12:25:14 +02:00
twinaphex
e5b38315fe Revert "Add real_width and real_height to video_info struct - let"
This reverts commit 831ea1a507.
2017-04-24 12:25:07 +02:00
twinaphex
8a215ce30e Revert "Cut down on another video_driver_set_size call"
This reverts commit b951c84e01.
2017-04-24 12:24:55 +02:00
twinaphex
b951c84e01 Cut down on another video_driver_set_size call 2017-04-24 12:23:09 +02:00
twinaphex
831ea1a507 Add real_width and real_height to video_info struct - let
the drivers set this depending on the video width/height they
get back from the video context driver
2017-04-24 12:18:28 +02:00
twinaphex
c8bcbad4a7 video_init function - video_info_t should not be const -
try to set video_driver_width/video_driver_height outside
of video driver init function
2017-04-24 12:03:21 +02:00
twinaphex
5a3b78bad3 Get rid of more performance counters 2017-04-24 11:24:16 +02:00
twinaphex
d06c963a19 Get rid of PERF_ENABLE blocks 2017-04-24 11:20:30 +02:00
twinaphex
365c7f9c8b (Video drivers) Cleanups 2017-04-24 10:08:32 +02:00
twinaphex
8efa2b146e Add this to d3d_alive 2017-04-24 09:44:15 +02:00
twinaphex
34852e159a Cut down on amount of times video_driver_build_info is called 2017-04-23 22:20:11 +02:00
twinaphex
aea00f1e00 Use memcmp instead of string_is_equal for more instances 2017-04-23 12:17:51 +02:00
twinaphex
0f2a6f3dd2 Don't use performance counters in GL/Vulkan/video thread wrapper
unless PERF_ENABLE is defined
2017-04-23 11:31:11 +02:00
twinaphex
a88284897b (D3D) Use C-style allocation for d3d->menu 2017-04-23 09:38:44 +02:00
twinaphex
aa2c29ac8b (exynos_gfx.c) Use memcmp 2017-04-22 09:34:30 +02:00
twinaphex
6ebd4e139e Rewrite more string_is_equal call invocations as memcmp 2017-04-22 08:51:16 +02:00
twinaphex
5bfc513af4 Buildfixes 2017-04-19 02:03:01 +02:00
twinaphex
7790fc3647 MOve renderchain files to dir 2017-04-19 01:51:05 +02:00
twinaphex
32c91baca6 Move read_viewport and viewport_info to render_chain_gl_legacy.c 2017-04-19 01:25:34 +02:00
twinaphex
0c5a87b1d7 Create scaler_ctx_scale_direct 2017-04-16 11:03:29 +02:00
twinaphex
257410d058 Turn matrix_4x4_multiply into macro 2017-04-16 07:55:02 +02:00
twinaphex
32cebbbcba Turn more matrix_4x4 functions into macros 2017-04-16 04:00:20 +02:00
twinaphex
fbd6d0ebc6 Turn more matrix 4x4 functions into macros 2017-04-16 03:53:07 +02:00
twinaphex
7f4b490fdb Prevent implicit memsets with struct video_viewport 2017-04-15 19:43:52 +02:00
twinaphex
55a0b7d1a9 Create default_ortho static variable 2017-03-25 10:22:57 +01:00