Commit Graph

6518 Commits

Author SHA1 Message Date
aliaspider
1223309052 better handling of existing #version directive in glsl shaders. 2017-05-11 05:14:11 +01:00
twinaphex
57089dc108 Update gl_common.c - update CHANGES.md 2017-05-11 02:56:11 +02:00
twinaphex
e0c0815f42 (shader_vulkan.cpp) cleanups - don't use memset 2017-05-10 06:40:21 +02:00
twinaphex
1b302d6e40 (shader_vulkan.cpp) Cleanups 2017-05-10 06:31:06 +02:00
twinaphex
865ec1eb71 Cleanup 2017-05-10 06:23:53 +02:00
hunterk
7f8d4479f4 fix version directives in GLSL shaders, courtesy of aliaspider 2017-05-09 23:20:00 -05:00
twinaphex
9dff2434ef Fix some structurally dead code warnings 2017-05-09 20:54:03 +02:00
twinaphex
d75f155eb6 Reorder video_driver.h 2017-05-09 01:37:12 +02:00
twinaphex
f928e57064 Combine video_context_driver.c and video_driver.c 2017-05-09 01:25:59 +02:00
twinaphex
bac9973354 Cleanups 2017-05-09 00:58:01 +02:00
twinaphex
ed86a2ed10 Add threading error notes 2017-05-06 17:35:12 +02:00
Andrew
858e15b837 Fix performance issue with max_swapchain_images
This fixes a performance problem introduced in my last commit when
max_swapchain_images == 3.

In my last commit I incorrectly stated the 3rd buffer was not being
used, after doing some additional testing I realized I was mistaken,
it can indeed be used due to the used page tracking.

Reverting that portion of my previous commit.
2017-05-05 16:58:17 -07:00
Twinaphex
6e51153387 Revert "Cleanu gl_raster_font_render_line"
This reverts commit 45cf53b487.
2017-05-05 05:30:49 +02:00
twinaphex
45cf53b487 Cleanu gl_raster_font_render_line 2017-05-05 05:23:26 +02:00
Andrew
01e25bd5c7 Fix max_swapchain_images and do some additional cleanup
When max_swapchain_images was originally added it worked properly,
but was subsequently broken by using the value to specify the number
of buffers allocated.

Due to how the dispmanx driver works, only 2 buffers are ever actually
used, so the 3rd buffer in the "swapchain" ended up doing nothing.

Fix this by restoring it to the original intent, that is, if
max_swapchain_images <= 2 wait for vsync after the flip (reducing
lag), otherwise wait at the last possible moment (increasing lag).

Additionally, fix up some unnecessary void* usage where type safety
could be maintained.
2017-05-04 18:45:59 -07:00
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
46bae549ac Fix some coverity warnings 2017-04-29 19:22:44 +02:00
twinaphex
17827940fd Get rid of some if conditionals 2017-04-29 19:21:24 +02: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
c147604103 Update 2017-04-29 18:33:50 +02:00
twinaphex
7bdef1fde4 Buildfixes 2017-04-29 18:30:23 +02:00
twinaphex
dd83b4a043 (Vita) Buildfix 2017-04-29 17:52:16 +02:00
twinaphex
b5e97238ac Optimize video_driver_threaded_{lock|unlock} 2017-04-29 17:38:47 +02:00
twinaphex
d86f466fe9 Turn video_driver_is_threaded into macro 2017-04-29 17:33:36 +02:00
twinaphex
03145a0424 Pass video_is_threaded variable to video_driver_init 2017-04-29 17:10:59 +02:00
twinaphex
11a96df465 Rewrite font_driver_free 2017-04-29 17:02:35 +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
63504cd9c8 No longer need to grab threaded variable from settings struct 2017-04-29 16:37:49 +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
79c7627651 Move video_viewport_custom to gfx/video_driver.c 2017-04-29 13:10:01 +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
324227d239 (Win32) Buildfix 2017-04-28 15:59:42 +02:00
twinaphex
4ef0809931 (GX) Another buildfix 2017-04-28 15:29:54 +02:00
twinaphex
d1b6a865c4 Buildfixes 2017-04-28 15:29:20 +02:00
twinaphex
684e83ef30 Updates 2017-04-28 15:19:39 +02:00
twinaphex
df31ba6255 (Win32) Buildfix 2017-04-28 15:05:12 +02:00