twinaphex
08e61230e9
Update video_poke_interface
2018-01-30 22:29:57 +01:00
twinaphex
cf3a010ead
Remove some HAVE_MENU ifdefs
2017-12-31 17:42:07 +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
683c437941
Updates
2017-11-14 21:34:03 +01:00
twinaphex
d4756f83e5
Stop calling video_driver_context_has_windowed from within video
...
drivers
2017-05-13 19:11:32 +02:00
twinaphex
f928e57064
Combine video_context_driver.c and video_driver.c
2017-05-09 01:25:59 +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
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
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
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
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
vanfanel
0b75671c21
DISPMANX: Disable triple buffering for now, for stability reasons.
2017-02-12 19:27:59 +01:00
twinaphex
93812f58ba
We don't need the settings variable here
2017-01-24 14:02:09 +01:00
vanfanel
ae3cdaccb9
DISPMANX: Add missing include and remove redundant one.
2017-01-24 13:58:55 +01:00
The Last Cabra
0e542037d8
Merge branch 'master' into master
2017-01-23 15:16:19 +01:00
twinaphex
2f504b4057
(gfx/drivers) Get rid of remaining runloop.h / runloop_ctl
...
references inside gfx/drivers
2017-01-22 18:17:48 +01:00
twinaphex
96c8ca5a09
Header update #1
2017-01-22 13:40:32 +01:00
vanfanel
7ae7e2eaee
DISPMANX: now waiting for free pages after issuing flip, instead of before, to avoid input lag.
2017-01-20 14:59:14 +01:00
twinaphex
fe84312340
Add some header includes
2017-01-19 17:20:42 +01:00
twinaphex
0d33888a24
(dispmanx_gfx.c) Cleanups
2017-01-19 16:50:09 +01:00
twinaphex
d010a852e4
Call menu_driver_frame once per video_frame call
2017-01-18 22:20:47 +01:00
twinaphex
a6a4808e94
Refactor frame monitor code
2017-01-18 17:41:27 +01:00
vanfanel
5a1e8d55fb
DISPMANX: Put guard back in to avoid potential lockups!
2017-01-15 13:47:30 +01:00
vanfanel
869a050a18
DISPMANX: implement pitch alignment for better videocore blitting performance
2017-01-14 23:01:05 +01:00
vanfanel
8640522073
DISPMANX: remove commented line
2017-01-14 15:56:54 +01:00
vanfanel
da640aaa28
DISPMANX: Honor swapchain setting properly
2017-01-14 15:54:20 +01:00
vanfanel
f0c2826994
DISPMANX: Fix refreshrate calculation by updating menu surface asynchronously
2017-01-14 14:38:18 +01:00
Matthew Wolff
f6284721d8
Fix forgotten parameter of video_monitor_get_fps
2017-01-12 23:40:58 -06:00
twinaphex
76ae7ac4a0
Cleanup some of the video drivers - add some members to
...
video_info_t to reduce the need for accessing the settings
struct
2017-01-10 18:16:22 +01:00
twinaphex
be2f921ee2
Don't use settings pointer inside video_frame function
2017-01-09 14:25:59 +01:00
vanfanel
7ba3ff9c12
DISPMANX: Fix hang when null frame is passed (TyrQuake core)
2017-01-05 23:47:33 +01:00
Mikael Brunnhede
2cb9c912f4
Implement support for video_max_swapchain_images setting.
2016-10-17 11:23:34 +02:00
twinaphex
202e3e796e
Get rid of more general.h includes
2016-09-11 14:46:53 +02:00
twinaphex
acd4dd527b
Header include cleanups
2016-09-05 18:31:32 +02:00
vanfanel
c097eed755
VIDEO/DISPMANX: Make the HW Bilinear Filtering setting work.
2016-06-16 11:37:02 +02:00
vanfanel
03dd7d4b51
VIDEO/DISPMANX: Fixed segfault when loading new core and content from RGUI
2016-06-15 14:28:13 +02:00
twinaphex
aa488dda25
Create video driver poke load_texture / unload_texture
2015-12-20 20:52:23 +01:00
twinaphex
df1c6344be
Merge font_renderer_driver.c and font_driver.c
2015-12-05 12:07:22 +01:00
twinaphex
200b41bb58
(dispmanx_gfx.c) Nit
2015-11-28 17:07:52 +01:00
twinaphex
70850c8ca3
(dispmanx_gfx.c) Cleanups
2015-11-28 17:00:44 +01:00
twinaphex
85dbeeb8f9
No more video_monitor.h
2015-11-22 13:32:46 +01:00
twinaphex
806c124eae
Merge video_viewport.c and video_driver.c
2015-11-21 13:01:23 +01:00
twinaphex
4ca5d31f9b
Some more static code analysis nits when ran with enable=all
2015-09-28 18:12:02 +02:00
twinaphex
0c023dcb68
Reimplement frame count
2015-08-03 23:01:07 +02:00
vanfanel
ba69eda47e
DISPMANX: Rewrote surface management functions: fixed dispmanx-related errors when changing core or loading new content.
2015-06-27 19:14:30 +00:00
vanfanel
bb7d9436c2
DISPMANX correction: the pointer to the page currently on screen must be a member of each surface.
2015-06-20 14:56:25 +00:00
vanfanel
430f7854d9
Removed unused variable. Changed a function type.
2015-06-18 16:16:26 +00:00
vanfanel
98e6522f3f
Fixed a memory allocation error and simplified surface resource freeing functions.
2015-06-18 12:31:42 +00:00