177 Commits

Author SHA1 Message Date
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
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
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
libretroadmin
bef29c466b Remove unneeded video_driver_set_gpu_device_string/get_gpu_device_string 2023-09-06 03:08:48 +02:00
libretroadmin
bc41e0fdf4 video_frame_info - start passing flags 2023-08-16 19:17:23 +02:00
libretroadmin
0a96f9595c Explicit typecasts to bools for flags 2023-08-16 04:18:55 +02:00
sonninnos
f1c144ea50
(XMB) Color + background adjustments (#15556)
* (XMB) Color + background adjustments

* (XMB) Improve font selector
2023-08-06 09:17:38 +02:00
libretroadmin
770b9920f5 Cleanups:
* No implicit memsets for texture_image
* Replace some calls with concatenated strlcpys
* Some style nits
2023-07-18 16:46:54 +02:00
libretroadmin
be65a13102 Cut down on update_title code duplication 2023-07-16 08:00:49 +02:00
libretroadmin
5e2bfcbe09 x11_show_mouse and win32_get_video_output_size - get rid of duplicate
code
2023-06-20 11:46:00 +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
libretroadmin
246cceeb27 Silence more signedness warnings 2023-06-14 19:51:31 +02:00
Grisly Glee
6f0c48b4c4
Clean up gfx driver interface structs (#15379) 2023-06-14 04:42:34 +02:00
libretroadmin
2fa9e5cbb1 (D3D10) Cleanups for render_line and style nits 2023-06-04 02:00:40 +02:00
libretroadmin
eb509b8d8e get_line_metrics always implemented for font rendering backend, take
out code parts for hypotheticla font rendering backends that don't implement
it
2023-06-03 18:34:47 +02:00
libretroadmin
51a8150e45 Do away with some NULL checks for font rendering backend 2023-06-03 17:21:19 +02:00
libretroadmin
c1166ee823 Cleanups 2023-06-01 21:34:34 +02:00
libretroadmin
0ee2f93ca4 Combine gfx_display files into video drivers 2023-05-31 23:58:06 +02:00
libretroadmin
4f6010bea7 COmbine font raster files and video driver files 2023-05-31 19:03:45 +02:00
libretroadmin
696dae6e70 Refactor away some video driver functions 2023-05-31 01:09:38 +02:00
libretroadmin
ced83c41e6 (Font) Less casting 2023-05-07 21:13:44 +02:00
libretroadmin
5ac380ec39 (D3D10) Fix RGUI 2023-05-07 03:50:18 +02:00
libretroadmin
d48bd7244a Libretro API update - add new context hardware render enums - enables
autodetection of DX12 for PS2 core
2023-04-11 00:54:02 +02:00
barbudreadmon
1fb9853a93
(Shaders) pass rotation index to shaders (#15136) 2023-03-26 21:20:27 +01:00
libretroadmin
51d238875e Get rid of obsolete HAVE_VIDEO_LAYOUT - obsolete spec, was only
ever implemented for OpenGL2 driver, lots of code debt, best to
instead just keep improving the overlay system instead which is
already available for most video drivers
2023-02-23 21:03:41 +01:00
libretroadmin
6624126885 (MSVC) silence warnings 2023-02-18 17:04:23 +01:00
libretroadmin
6b184a1857 (D3D10) Cleanups - get rid of some inline functions 2023-01-24 03:36:18 +01:00
libretroadmin
e10361ed52 Header include cleanups for driver.h 2023-01-09 15:28:15 +01:00
libretroadmin
af9f946019 (gfx/drivers) Cleanups 2023-01-08 19:22:48 +01:00
libretroadmin
8a3686df58 Revert "Header cleanups - don't include retroarch.h everywhere"
This reverts commit 0e3b478f8c00b015aec9a78d13e73277500e5449.
2023-01-08 09:05:46 +01:00
libretroadmin
0e3b478f8c Header cleanups - don't include retroarch.h everywhere 2023-01-08 08:56:57 +01:00
LibretroAdmin
f836328c56
Append Preset (#14737) (#14757)
WIP version of Append and Prepend preset, Includes UI for Standard Retroarch, but not the QT UI companion

Co-authored-by: HyperspaceMadness <remimcgill@hotmail.com>
2022-12-22 21:36:32 +01:00
LibretroAdmin
7aa8c6bb11 (D3D10) Turn boolean variables into flags 2022-11-02 23:19:41 +01:00
LibretroAdmin
174b01f7d9 Remove unnecessary video_driver_is_cache_context 2022-10-28 19:36:56 +02:00
LibretroAdmin
d0b3c1742d (Video) use flags for FBO passes, GL2 renderchain, etc 2022-10-26 21:21:21 +02:00
LibretroAdmin
75757d7d02 Remove unused DXGI inline functions 2022-09-11 23:15:25 +02:00
LibretroAdmin
a9157f975e
String cleanups (#14304)
(retroarch.c) retroarch_get_capabilities - get rid of strlcat
party in RARCH_CAPABILITIES_CPU, do simple manual assignment for
concatenation instead and NULL terminate at the end
(menu_displaylist.c) Do something about some of the unnecessarily huge
local strings of PATH_MAX_LENGTH size (can be as large as 8192)
(menu_displaylist.c) Replace some trivial strlcats / snprintfs
(D3D10/D3D11/D3D12) Strings don't need to be initialized -
strlcpy already null-terminates - get rid of some constants
2022-08-08 19:11:15 +02:00
libretroadmin
9dd1fb895b - Turn rotation arrows static where possible
- Don't call matrix_4x4_rotate_z - inline the code instead
2022-07-04 15:28:54 +02:00
libretroadmin
8ec1f3294e (D3D10/11/12) Miscellaneous corrections/safety checks 2022-06-07 06:37:23 +02:00
libretroadmin
8b5b1ce96d (D3D) Get rid of unnecesary inline functions 2022-06-04 23:14:15 +02:00
libretroadmin
85ca66bfad (D3D) Move d3d{}_release_texture out of d3d{}_init_texture 2022-06-04 21:31:43 +02:00
libretroadmin
4dc08fad5c (D3D) Miscellaneous cleanups 2022-06-04 19:16:14 +02:00
libretroadmin
5a5c65d9b9 (D3D10) Remove inline functions 2022-05-17 23:13:33 +02:00
libretroadmin
255522f9a0 (D3D10) Get rid of lots of inline functions 2022-05-17 18:39:22 +02:00
libretroadmin
7896341dfc Revert "Move d3d_input_driver to win32_common and rename it win32_input_driver"
This reverts commit 201eeae7f1cba8e29c1f14c6c7fec8d330db1d9e.
2022-05-17 12:34:12 +02:00
libretroadmin
3115338849 (D3D10/D3D11/Vulkan) Cleanups 2022-05-16 22:26:46 +02:00
libretroadmin
bfa627737e (D3D/Vulkan) Try to prevent implicit memsets 2022-05-16 21:37:02 +02:00
libretroadmin
201eeae7f1 Move d3d_input_driver to win32_common and rename it win32_input_driver 2022-05-16 08:03:13 +02:00
twinaphex
fc2b3f1ed9 (D3D) Cleanups 2022-04-24 12:59:23 +02:00
twinaphex
6a537a656d (D3D10/D3D11/D3D12) Get rid of save_hlsl codepath when loading
shaders (and they fail), or debug mode
2022-04-24 12:01:36 +02:00