Commit Graph

305 Commits

Author SHA1 Message Date
libretroadmin b0f337e95e Style nits:
* C comments
* Single line blocks don't need brackets
2022-11-27 10:23:12 +01:00
MajorPainTheCactus 7ebd8e190a
Fixes for d3d12 and d3d11 drivers when using shaders with TATE mode arcades etc (#14678)
Added support for break on errors in d3d12 (development aid)
Added support for DRED (device remove extended data) in d3d12 (development aid)
Made d3d12 viewport and scissors to behave more like vulkan drivers (or be more correct)
Fixed validation error on start up due to buffers not being setup correctly for one frame
2022-11-27 10:20:34 +01:00
libretroadmin d5a268a2ac * Fix signed/unsigned mismatches
* Fix missing IPAddr on MSVC2017 UWP - use ULONG instead since this is
just a typedef
2022-11-15 00:24:26 +01:00
LibretroAdmin 7aa8c6bb11 (D3D10) Turn boolean variables into flags 2022-11-02 23:19:41 +01:00
LibretroAdmin 15048027e7 (D3D11) Turn booleans into flags 2022-11-02 08:31:40 +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
GABO1423 df8571b3ca
(UWP) Build Fix (#14489) 2022-10-07 02:56:07 +02:00
LibretroAdmin 951b98fe1b
Bools to flags (#14486)
* (D3D11) Use flags instead of bools

* (RPNG) Use flags

* Simplify rpng_is_valid

* (rpng_is_valid) Prevent potential NULL pointer dereference
(D3D11) Some whitespacing changes/code nits

* (task_pl_thumbnail_download.c) Simplify some code
2022-10-06 19:26:38 +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
sonninnos a0bfdcce3b
(D3D11/12) Make waitable swapchains optional (#14074) 2022-06-19 21:25:37 +02:00
sonninnos ca0b3095e8
(D3D11/12) Make low-latency optional (#14073) 2022-06-19 14:14:34 +02:00
sonninnos 31a43b9390 (D3D11/12) Reduce lag with WaitForVBlank 2022-06-14 16:49:30 +03:00
libretroadmin 8ec1f3294e (D3D10/11/12) Miscellaneous corrections/safety checks 2022-06-07 06:37:23 +02:00
libretroadmin 65ab04e775 (D3D11/D3D12) Prevent Griffin build failure 2022-06-07 04:30:28 +02:00
sonninnos 0bb65fb39c (D3D11/12) Add waitable swapchains and max frame latency option 2022-06-07 00:25:03 +03: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 de4bfa0805 (D3D11) Get rid of some inlined functions 2022-05-17 17:04:43 +02:00
libretroadmin 7896341dfc Revert "Move d3d_input_driver to win32_common and rename it win32_input_driver"
This reverts commit 201eeae7f1.
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 984f857621 (D3D11) Fix overlay not showing up regression 2022-04-29 14:23:36 +02:00
twinaphex d6aa3fdce5 (D3D9) Cleanups - get rid of more inline functions 2022-04-24 15:07:56 +02:00
twinaphex 96d7c31983 (D3D11) Cleanups 2022-04-24 13:40:38 +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
twinaphex 3c6098dff7 (D3D11) Cleanups of unused inline functions 2022-04-24 11:59:20 +02:00
twinaphex 8973f2ae01 (D3D11) Cleanups - use less inlined functions 2022-04-23 16:25:59 +02:00
twinaphex 0888297f31 (D3D11) Cleanups - go through less inlined functions 2022-04-23 11:36:10 +02:00
twinaphex 1887aee7c4 (D3D11) Cleanup some inline functions 2022-04-23 09:07:00 +02:00
twinaphex 5d82b36f9c (D3D11) Use less inlined functions 2022-04-22 22:58:35 +02:00
twinaphex 7f8a0e352f (D3D11) Get rid of some inline functions 2022-04-22 21:12:05 +02:00
Autechre 4c3a4d66df
Cxx buildfixes (#13803)
* CXX_BUILD buildfixes
* (D3D11) Buildfixes for CXX_BUILD
* (Linux/qb) Disable KMS for Linux when building for C89, headers use inline which is not
available for C89
2022-03-30 17:30:20 +02:00
MajorPainTheCactus 3a25e1fbc3 Fixed D3D11 HDR bug just introduced 2022-03-15 05:44:07 +01:00
MajorPainTheCactus 32b8560858 Removed redundant copy of buffer in HDR mode if the shader has already a HDR format i.e R10G10B10A2 2022-03-15 05:44:07 +01:00
twinaphex 460f5e745d Silence some MSVC 2019 code analysis warnings 2022-03-05 14:39:56 +01:00
Tony 49d3a947b8
(D3D10/11) Add vsync swap interval (#13521) 2022-01-21 04:35:22 +01:00
Nikos Chantziaras be650a790c
Add option for showing the overlay behind the menu (#13360)
* Add option for showing the overlay behind the menu

This commit lays the groundwork for this option. Support for this option
in the video drivers themselves is going to be added in later commits.

* gl1: Add overlay behind menu support

* gl2: Add overlay behind menu support

* gl3: Add overlay behind menu support

* vulkan: Add overlay behind menu support

* ctr: Add overlay behind menu support

* d3d9: Add overlay behind menu support

* d3d10: Add overlay behind menu support

* d3d11: Add overlay behind menu support

* d3d12: Add overlay behind menu support

* CHANGES.md: overlay behind menu

Co-authored-by: MrHuu <MrHuu@users.noreply.github.com>
Co-authored-by: Tony <45124675+sonninnos@users.noreply.github.com>
2021-12-26 04:56:44 +01:00
MajorPainTheCactus 9151326b73
Added support for HDR shaders - if we detect a shader that uses SLANG_FORMAT_A2B10G10R10_UNORM_PACK32 or SLANG_FORMAT_R16G16B16A16_SFLOAT as the format for the last render target in the shader chain AND hdr is switched on then this disables the internal HDR shader and allows the shader chain to define an inverse tonemapper and hdr10 shader. The first use of this is for my hdr shader crt\crt-sony-pvm-4k-hdr.slangp - submitted seperately (#13390) 2021-12-22 02:17:17 +01:00
Tony 09880e92d2
Logging cleanups (#13320) 2021-12-04 14:21:12 +01:00
Francisco Javier Trujillo Mata 3bbfcf7b39 Adding to get_video_output_size 2 parameters for additional info 2021-10-04 23:53:55 +02:00
twinaphex 05e4aa8bfb move more code over to gfx/video_driver.c 2021-09-28 00:50:48 +02:00
twinaphex 6f36e0a2dd Rename GL driver files + add some comments to D3D drivers - gl_core
becomes gl3, gl becomes gl2, etc
2021-09-26 14:16:09 +02:00
MajorPainTheCactus 3c6bdfd0d8
Fixed numerous issues with HDR (#12979)
* Fix for warning and fix for incorrect comment

* Fixed contrast to be more correct - now scales from 0-10 linearly and behaves more the way you'd expect it to - changed name to ditch legacy settings users may have
Added ability to skip inverse tonemapper to the shader via the constant buffer using 'inverse_tonemap' - set to 0.0f to skip
Fixed potential bug when swapping between hdr and sdr and the bit depth not being set correctly
Fixed dx11's blend, rasterizer and topology states not being set to the sames when using hdr and leaving the menu - caused issues with PCSX2's Shadow of the Colossus
Added numerous helper functions to help create the correct values to colour the UI - normally the white UI elements should be rendered at paper white not max brightness for various reasons

* Fix stylistic issues - * Don't use camelcase for variables and function names * Use '(void)' for function declarations instead of () in C code * Declare variables at the top of a function or code block * Make sure functions that return a value always have a default return path that is not encapsulated by an else block * Use more unique names for retro_math functions which are less likely to overlap with other libraries' function symbols

Co-authored-by: twinaphex <libretro@gmail.com>
2021-09-13 16:54:50 +02:00
twinaphex f597138827 Cleanups 2021-09-04 21:40:37 +02:00
MajorPainTheCactus 536d18778b
Fixed up HDR for UWP/WinRT builds (#12936)
Fixed D3D11 validation warnings
Fixed up technically incorrect labels

Co-authored-by: Autechre <libretro@gmail.com>
2021-09-04 21:13:24 +02:00
twinaphex 274638b89e (D3D11) Look at D3D11 feature level - if we are 11.0 or above,
we use Shader Model 5.0 instead of the default SM 4.0 - this fixes
FSR on D3D11 which requires SM5.0
2021-09-03 07:51:44 +02:00
twinaphex b900555494 (D3D11) Add logging after device creation so we can see which
feature level it used
2021-09-03 07:15:53 +02:00
Autechre 7b9cbc08d7
Add HDR support for D3D12 (rebased PR from MajorPainTheCactus) (#12917)
* Add HDR support

* Attempt to fix Mingw build and Metal builds

* (D3D12) Fix relative header includes

* Add missing hdr_sm5.hlsl.h

* (d3d12_common.c) Some C89 build fixes

* Fix MSVC build

* - Attempt to fix build on mingw/msys unix with dirty hack
- Fix shader compilation of hdr_sm5.hlsl.h on MSVC/Visual Studio -
the define was seen as an error and was causing the first pipeline
to error out
- Make sure we manually set handle of backBuffer to NULL

* Moving the release of the texture above the freeing of desc.srv_heap
and desc.rtv_heap solves the hard crashes on teardown/setup in RA -
it was crashing hard in d3d12_release_texture before

* Add HAVE_D3D12_HDR ifdef - needs to be disabled for WinRT for now
because of several things that are Windows desktop-specific right now
(GetWindowRect)

* Add dirty GUID hack - should work for both mingw/msys on Windows/Linux
as well as MSVC/Visual Studio (hopefully)

* Change HAVE_D3D12_HDR to HAVE_DXGI_HDR

* Move away from camelcase named variables

* Fix RARCH_ERR logs - they need a newline at the end

* d3d12_check_display_hdr_support - make it return a bool on return
and set d3d12->hdr.support and d3d12->hdr.enable outside of the
function

* (DXGI) Remove D3D12 dependencies from dxgi_check_display_hdr_support and
move it to dxgi_common.c instead

* (DXGI) move d3d12_swapchain_color_space over to dxgi_common.c and
rename it dxgi_swapchain_color_space

* (DXGI) move d3d12_set_hdr_metadata to dxgi_common.c and
rename it dxgi_set_hdr_metadata

* (DXGI) dxgi_check_display_hdr_support - better error handling?

* Fix typo

* Remove video_force_resolution

* (D3D12) Address TODO/FIXME

* (D3D12) Backport
c1b6c0bff2
- Fixed resource transition for present when HDR is off
Fixed cel shader displaying all black as blending was enabled when the hdr shader was being applied - turned off blending during this shader

* Move d3d12_hdr_uniform_t to dxgi_common.h and
rename it dxgi_hdr_uniform_t

* (D3D11) Add HDR support

* Add TODO/FIXME notes

* Cache hdr_enable in video_frame_info_t

* Update comment
2021-09-03 06:15:25 +02:00
twinaphex ffb59e5261 (UWP) Turn this back on again - seems to work fine on Xbox 2021-08-20 10:07:29 +02:00
twinaphex e596bf7925 Buildfix for previous commit 2021-08-02 16:19:26 +02:00
twinaphex 2af9441d35 Create separate wnd_proc functions for winraw 2021-08-02 16:14:58 +02:00
twinaphex b2c7fae912 desc.Flags should also be commented out for now 2021-06-26 05:46:37 +02:00
twinaphex 13e88ebe74 (D3D11) Disable tear control support for UWP for now 2021-06-26 05:40:41 +02:00
twinaphex 55afe18872 Move D3D11Draw call back for now - should make OSK work again and
shaders
2021-06-23 19:34:06 +02:00
Connor McLaughlin 322aeb4e46 (d3d11) Don't pass ALLOW_TEARING to present when unsupported 2021-06-22 14:04:32 +10:00
Connor McLaughlin ed2d6b1730 (d3d11) Don't draw content without a texture bound 2021-06-22 14:04:32 +10:00
Connor McLaughlin 9afa30af5e (d3d11) Disable DXGI's ALT+ENTER handling 2021-06-22 14:04:31 +10:00
twinaphex a30a86a09c (D3D11) Fixes Xbox again, do tear control checks only for non-UWP
- TODO/FIXME still has to be resolved, see comment at line 1362
2021-06-22 00:41:56 +02:00
twinaphex 8b6e58eebd Buildfix for D3D11 - courtesy of Stenzek 2021-06-16 16:07:38 +02:00
Connor McLaughlin 946d87cf89
(gfx/d3d11) Don't use allow tearing flag with blit swap chains (#12529) 2021-06-16 15:19:27 +02:00
Tony 3647bdef0f
(D3D) Logging + dupe code cleanups (#12501) 2021-06-09 06:33:14 +02:00
JustMeDaFaq f1347829c2
Update d3d11.c 2021-06-07 12:03:58 +02:00
sonninnos 04962e1741 (D3D) Add common window title for D3D9+ 2021-06-06 22:24:47 +03:00
sonninnos 8584b122e1 (D3D11+12) Allow fastforward in fullscreen 2021-06-04 04:31:11 +03:00
LazyFunker 4e0f8bf621 Fix typo 2021-05-16 20:44:31 +02:00
LazyFunker 8ff0430370 Disable mipmap generation for UWP 2021-04-20 10:29:17 +02:00
twinaphex 611efea2bf More CXX_BUILD fixes 2021-03-22 15:20:51 +01:00
HyperspaceMadness 0c526b6498 Shaders Load Refactor and Fix Referenced Texture Loading
Partial update to work with shaders directly

More Edits

More changes

more shader fixes

More Fixes Compiling, reference load still wrong

Added Feedback & things are working

Logging Fixes

Log Fix

More Fixes

Added Feedback Logging

Fixes for file pathing in Linux

Fix GLCore and Crash in QT Saving

Code Cleanup

Removed Unused Function filepath.c

Code Cleanup
2020-12-26 21:09:27 -05:00
twinaphex 7d313647ae (D3D11) Add flip model support - fallback to blit model for OSes
where flip model is not supported (windows 7 and earlier). Will add
a menu option later allowing the user to switch inbetween the two
2020-12-17 14:39:58 +01:00
twinaphex 38ce3927ae (D3D10/11/12) Increase sprite capacity, we need this so that
the hardware rendered menu drivers don't glitch out
2020-12-17 08:31:06 +01:00
twinaphex 093dc30ffd Refactor d3d11_init_swapchain some more 2020-12-15 22:56:29 +01:00
twinaphex a1fd1d425c (D3D11) Split init swapchain code up into own function 2020-12-15 08:19:04 +01:00
twinaphex ad2502b645 (D3D11) Change this back 2020-12-15 08:09:48 +01:00
twinaphex 625f0d4fc6 Improve conditional 2020-12-05 04:54:22 +01:00
twinaphex 9688554921 (D3D11) Use SWAP_EFFECT_*_DISCARD from now on fallback PC codepath 2020-12-05 04:48:11 +01:00
aliaspider c6b77f6c62 (D3D11) get the hwrender texture format from the view desc
the format set in the texture desc isn't necessarily the same as the
view format.
2020-11-15 15:07:53 +01:00
aliaspider b3134fc05a (D3D11) fix slang shaders 2020-11-15 13:04:24 +01:00
aliaspider b7d3efc503 (D3D11) rename D3D11SetState to D3D11SetRasterizerState. 2020-11-14 04:29:44 +01:00
twinaphex 44b7234756 Move cheat_manager and state_manager to root folder 2020-10-15 05:29:20 +02:00
twinaphex d1dd0e9d60 Not sure why this printf was there 2020-10-05 16:01:40 +02:00
Connor McLaughlin 696df6e916 (video/d3d11) Skip shader/stock blend when we don't have a texture
This happens if the core calls video_cb with the frame set to null on
the first frame, and was causing black screens/driver resets.

The ffmpeg core seems to do this.
2020-10-01 19:19:13 +10:00
Connor McLaughlin 10bbe119a7 (video/d3d11): Fix shaders with scaled framebuffers
The scissor rectangle was left as whatever the core last used.
2020-10-01 16:53:19 +10:00
Connor McLaughlin 30c6f90c93 (video/d3d11) Use cached view as the slang source texture
Fixes shaders in D3D11 driver.
2020-10-01 00:19:11 +10:00
Connor McLaughlin 12382c057a (video/d3d11) Cache view left bound by hw renderers
Fixes garbage/black screen when menu is active.
2020-10-01 00:19:11 +10:00
twinaphex 4d1cfa9c41 Make the 'raw' versions the generic function for the message loop
callback - this way it's reused for SDL2 input driver too
2020-08-28 02:55:39 +02:00
twinaphex 32279c3a70 Split up wnd_proc_common_internal into two - one for dinput,
one for raw
2020-08-28 02:21:13 +02:00
twinaphex 6b3fcf79f0 (DXGI) Turn these into macros 2020-08-24 00:04:12 +02:00
twinaphex 6b978eb057 (D3D11) Cleanups 2020-08-19 11:26:30 +02:00
twinaphex aeeff7f350 (D3D11) Cleanup 2020-08-16 03:11:00 +02:00
twinaphex 2a9915f80d (D3D) Buildfix 2020-08-08 19:12:01 +02:00
twinaphex ade58fc8b6 (UWP) Buildfix 2020-08-08 18:17:40 +02:00
twinaphex 72afa2f932 Cleanups 2020-08-03 16:33:54 +02:00
twinaphex 332bcc7f9e Remove dxgi_update_title 2020-08-03 15:48:08 +02:00
twinaphex db80281b0f (D3D11) Move static global variables to D3D11 state 2020-08-03 12:36:51 +02:00