975 Commits

Author SHA1 Message Date
Eric Warmenhoven
60ee32b879
apple: display server, including ProMotion support (#16963) 2024-09-04 22:52:59 -07:00
sonninnos
3f8dc5c49d
Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
sonninnos
391b46c3be
Automatic Frame Delay refactor (#16929) 2024-08-27 01:53:10 -07:00
Joe Osborn
439c672c22
Support viewport bias with integer overscale and custom aspect ratios (#16915)
* support integer overscale with bias and xy offsets

* support custom aspect ratios with viewport bias
2024-08-22 12:40:40 -07:00
kwyxz
4016b2524b
Allow building RetroArch with menu disabled (#16881)
* allow building with --disable-menu --disable-cheevos --disable-qt --disable-slang

* allow building with cheevos while disabling menus and qt
2024-08-15 15:26:59 -07:00
Eric Warmenhoven
fdf2faaf59
macOS: Don't include video/input drivers when compiling with SDL2 (#16865) 2024-08-10 17:56:03 -07:00
Joseph C. Osborn
a7bc0ad68f Make custom aspect ratios under integer scaling respect xy offset
This makes them more usable.  I don't understand why it was ever
disallowed, can someone review and let me know?
2024-07-18 08:22:42 -05:00
Joseph C. Osborn
7e26eb37c6 fix custom aspect ratios for non-ydown drivers 2024-07-18 08:22:42 -05:00
Joe Osborn
9489a11ead Use device ratio when determining portrait orientation 2024-06-26 08:45:29 -05:00
Joe Osborn
f1b9df4faf Flip default y positive direction for viewport calc
This should fix metal and maybe some directx resizes
2024-06-26 08:45:29 -05:00
Joseph C. Osborn
00add4bb37 Fix build errors on wiiu, directx 2024-06-25 08:18:39 -05:00
Joseph C. Osborn
2805694378 Refactor viewport handling/aspect ratio scaling.
This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.
2024-06-25 08:18:39 -05:00
zoltanvb
cc92ac7577 Fix exclusive fullscreen condition
Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
2024-06-25 08:18:07 -05:00
zoltanvb
2ca973770f Fullscreen refresh rate improvements
Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.
2024-06-17 13:29:40 -05:00
zoltanvb
926ba5c843 Force fullscreen in case of KMS display
Change GL2, GL3 and Vulkan drivers to behave as fullscreen if context driver
(such as KMS/DRM or KHR) does not support windowed mode at all.
Take it into account also for refresh rate switch.
2024-06-14 15:44:38 -05:00
sonninnos
87a339c3c9
Set compute fps stats logging to debug level (#16460) 2024-04-23 09:53:35 -07:00
libretroadmin
f70dc90729 Add C99/C11 rule - use llabs if C99/C11 is availabl,e otherwise use labs 2024-04-06 18:28:19 +02:00
MajorPainTheCactus
eef34e9461
Added rolling scan line simulation based on the shader subframe feature. This is implemented with a scrolling scissor rect rather than in the shader itself as this is more efficient although may not work for every shader pass - we may need an option to exclude certain passes. The implementation simply divides the screen up by the number of sub frames and then moves the scissor rect down over the screen over the number of sub frames. (#16282) 2024-03-19 08:59:36 -07:00
aerisarn
8b1e4a1ad0
MESA UWP Integration (#16285)
* [WINRT] Enable logging on __WINRT__ and bypass verbosidy in debug

* [UWP] wrong configuration prevents GLES to compile, common functions defines GL symbols

* [UWP] configure project to allow OPENGL on default configuration and copy MESA DLLs into UWP release

* [UWP] add MESA headers

* [UWP] add MESA EGL.lib needed for GLES context. However HAVE_OPENGL is better as GL cores use desktop version, so this is left for reference and to make the solution build with HAVE_OPENGLES

* [UWP] UWP is missing some GDI function definitions, implemented into MESA Gallium

* [UWP] Configure Release project too

* [UWP] Add mesa alpha-2 release dlls

* [UWP] allow griffin and vide_driver to have an OPENGL context

* [UWP] allow wgl context to work with mesa under WINRT

* [UWP] BUG: have to modify height/width getters and align them to MESA because the screen resolution is not right in gl context. Pending further investigation

* [UWP] fix ANGLE build

* [UWP] remove duplicate import code.

* (UWP) Cleanup filters file

* MESA screen destroy fix and Yabasanshiro hack. Align to alpha-2-hack tag

---------

Co-authored-by: Gabriel Morazán <35014183+GABO1423@users.noreply.github.com>
2024-03-02 09:36:17 -08:00
sonninnos
25c15834c3
Clean up and reduce refresh rate logging (#16259) 2024-02-19 11:12:24 -08:00
Ophidon
7b711214a7
Slang Subframe Shaders Feature (#16209)
Adds support for sub-frame shaders to vulkan/glcore/dx10-11-12.

Builds on the concept already present for frame duplication in use for BFI, to present multiple 'sub' frames per real frame to the shaders, so they can run at a higher framerate than the content framerate. Must be enabled via subframe shaders setting under synchronization settings to be active.

Will allow BFI to be implemented inside of the shaders, among any other use for the higher framerate shader authors can devise.

CurrentSubFrame and TotalSubFrames have been available inside the shaders to track what they want to do on an given subframe. TotalSubFrames will always be 1 when the setting is disabled (and when in menu/ff/pause). Framecount will not increment on sub-frames, as it does not for injected bfi frames now. Should not interfere with any existing shaders that do not check for subframes.
2024-02-09 03:12:55 -08:00
Eric Warmenhoven
79e43e2bd4
Fix many warnings (#16180)
Also change iOS/tvOS to use system zlib instead of compiling it in
2024-01-31 09:15:14 -08:00
Ophidon
72c901a90e
Squashed commit of the following: (#16142)
commit 793d41c303206b43932ddcefd44a45836def55eb
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 23:12:31 2024 -0500

    Build Fix 2

    Move declarations of iterators.

commit c0e959b3d3cd773a66a17cfe034f08eaa53d525a
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 22:57:01 2024 -0500

    Build Fix

    Help string was 14 characters too long for c89.

commit fc5506c7906bf82d6f88b7b0d7e4764d58d90622
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 22:40:45 2024 -0500

    BFI Updates

    Significant BFI updates.

    - Adds BFI to dx10/11/12 in general.

    - Updates existing BFI menu option descriptions to be somewhat more clear in how to use correctly.

    - Adds Variable Strobe length via new 'Dark Frames' bfi sub-choice. Only valid at 180hz and above, as it must work with whole frames.

    - Algorithm to auto select 'decent' Dark Frames choice, for any given selected BFI refresh rate. Will also avoid defaults that can cause Image Retention at any Hz higher than 120. (Impossible to avoid at 120 if you have an affected screen... get an OLED :D ) .

    - Some sanity checking on selecting BFI or the other synchronizations options like Swap Interval > 1, that don't play well with BFI.
2024-01-19 23:11:31 -08:00
SunM
c969143efb
Fix for Potential CWE 457 Issue in video_driver.c (#16064)
* Fix audio_statistics_t audio_stats to {0}

CWE-457 Use of Uninitialized Variable

* Fix audio_statistics_t audio_stats to {0}
2024-01-01 17:23:03 -08:00
sonninnos
f091b5a9e9
Move and relocate 'Frame Delay' (#15898) 2023-11-12 11:23:57 -08:00
sonninnos
da59b8c9ac
Add 'Frame Rest' power saving option (#15834) 2023-10-26 04:20:48 -07:00
libretroadmin
bef29c466b Remove unneeded video_driver_set_gpu_device_string/get_gpu_device_string 2023-09-06 03:08:48 +02:00
sonninnos
4d0110b278
Use refresh rate instead of core fps for frameskip timing (#15666) 2023-09-03 09:53:00 -07:00
sonninnos
ab1e5c37ca
Add PAL threshold option for automatic refresh rate switch (#15636) 2023-08-22 14:56:15 -07:00
libretroadmin
c6c7c343df video_frame_info - more flags 2023-08-16 19:47:24 +02:00
libretroadmin
bc41e0fdf4 video_frame_info - start passing flags 2023-08-16 19:17:23 +02:00
libretroadmin
f51b49f213 More explicit typecasts to bools 2023-08-16 03:22:02 +02:00
libretroadmin
797c7ff381 Some more explicit typecasts to bools 2023-08-16 00:33:59 +02:00
libretroadmin
bd7a0f7f0a Explicit typecast to bool for some flag to bool conversions 2023-08-16 00:16:03 +02:00
vailkyte
139d7f3836
MSVC2010 - fix invisible menu display on winxp (#15599)
Explicit typecast to bool
2023-08-15 15:00:13 -07:00
libretroadmin
2d2cb04589 Merge video_coord_array.c into video_driver.c 2023-08-15 16:02:12 +02:00
sonninnos
a821b13b13 Fix window title after video reinit 2023-07-20 14:36:55 +02:00
libretroadmin
c72bcd96e9 Buildfix 2023-07-16 08:12:05 +02:00
libretroadmin
be65a13102 Cut down on update_title code duplication 2023-07-16 08:00:49 +02:00
libretroadmin
9e34f22a29 Silence Xcode code warnings + general cleanups 2023-07-14 18:05:54 +02:00
nfore
8a81d39437 Overlay Caching
Adds overlay_cache_ptr to keep a disabled overlay in memory when it's expected to be shown again.

Most input_overlay_deinit calls are replaced with input_overlay_unload, which caches the overlay unless initing/deiniting core or disabling overlays.

Loading a cached overlay is done as a swap, intended for osk_toggle.

Related updates:
- Fewer parameters for the overlay loading task. Use current settings when enabling an overlay
- Add input_overlay_check_mouse_cursor() to preserve show/hide mouse behavior
- Don't apply input_overlay_show_mouse_cursor in windowed mode (controlled by mouse grab only)
- Remove some dead code
2023-07-09 04:42:49 +02:00
libretroadmin
57906892d8 Revert "On mobile in portrait mode, don't override custom viewport"
This reverts commit 6a1320bcfb6cf7d0335c816ee045a4b4df58eb35.
2023-06-21 08:37:19 +02:00
libretroadmin
8515fbf652 Reduce strlcat calls in crucial video_driver_frame function 2023-06-20 13:38:20 +02:00
libretroadmin
0bf3d21538 Reduce some char arrays which are too big 2023-06-19 17:31:50 +02:00
libretroadmin
0f374ea69d Don't call video_state_get_ptr inside gfx/video_driver.c 2023-06-19 07:50:26 +02:00
libretroadmin
61ce614251 Do video_driver_get_ident check last in boolean equation 2023-06-18 21:27:34 +02:00
sonninnos
57e1b849f9 (Vulkan) Ignore Fast-Forward Frameskip option 2023-06-18 21:24:30 +02:00
LibretroAdmin
244c86f661 Revert "Frame limiting improvements"
This reverts commit c723710c90f15147dae62ae2237f4c7ccc87db45.
2023-06-18 19:36:59 +02:00
sonninnos
c723710c90 Frame limiting improvements 2023-06-18 18:58:37 +02:00
libretroadmin
631301b3f7 * Cut down on strlcat calls when possible and replace them with clever
usage of strlcpy (when position/offset of previous strlcpy/snprintf call
is known. strlcat implementation in libretro-common makes implicit strlen
call, using strlcpy avoids this
* Reduce a bunch of local char variables by use of said clever usage,
should save up on local stack size usage
2023-06-18 12:06:12 +02:00