Commit Graph

157 Commits

Author SHA1 Message Date
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
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 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 35543ecd91 Move defines files over to libretro-common 2021-05-18 22:15:04 +02:00
Ophidon 05c5bdf587 C89 Compliance
For loop iterators updated for C89 compliance.
2020-09-19 13:28:21 -04:00
Ophidon 2f36c94f3f Variable BFI
BFI support added for 180hz / 240hz / etc. Solves issue with image retention from voltage issues at 120hz BFI. Also disabled BFI while in menu, as if set to an incorrect value for the current refresh rate, could cause severe flickering and difficulty reverting to the correct value.
2020-09-18 11:57:32 -04: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 72afa2f932 Cleanups 2020-08-03 16:33:54 +02:00
twinaphex 3e41cbc381 Revert "Add get_metrics to poke interface"
This reverts commit 119689c940.
2020-08-02 23:44:28 +02:00
twinaphex 119689c940 Add get_metrics to poke interface 2020-08-02 19:25:45 +02:00
twinaphex 60f3265017 Cleanups 2020-07-27 13:16:14 +02:00
twinaphex 3d893b7602 Add extra parameter to unload_texture 2020-07-27 10:15:28 +02:00
twinaphex 7c66f0adbc Simplify win32_check_window 2020-07-18 17:09:07 +02:00
twinaphex 9ace693ec0 Refactor menu_driver_frame 2020-05-19 16:20:43 +02:00
twinaphex f4c5036c3c Get rid of video_frame_info dep for fonts 2020-03-10 03:24:59 +01:00
twinaphex b7da58b40b (Gfx) Video driver cleanups 2020-03-09 16:15:53 +01:00
twinaphex c32cb51755 Cleanups 2020-03-08 01:45:29 +01:00
twinaphex 3e35fb8672 (D3D8/D3D9) Move static global to struct 2020-03-07 17:04:06 +01:00
twinaphex 68664fdf1d update_title - we don't need video_info 2020-03-06 22:11:44 +01:00
twinaphex 80991a00f0 Settings cleanups 2020-03-02 20:24:00 +01:00
twinaphex 3a94c52426 (gfx drivers) Start reducing settings pointer usage 2020-02-18 14:51:40 +01:00
twinaphex ec302bc4fc video_set_nonblock_state - remove settings dependency 2020-02-16 22:26:07 +01:00
twinaphex 47af95469a (font_driver.c) Remove configuration.h dependency 2020-02-16 21:59:03 +01:00
twinaphex f0e889b552 Change prototype of video_driver_set_size 2020-01-31 15:06:50 +01:00
twinaphex f92a507a9b Change function signature of font_driver_render_msg 2020-01-04 16:24:14 +01:00
twinaphex 91baea201a Change function signature of win32_show_cursor 2020-01-04 15:40:02 +01:00
twinaphex 302e2fdc53 Move show memory details outside of the video context driver and
into retroarch.c - avoid lots of code duplication
2019-09-21 07:49:33 +02:00
twinaphex a45c9b6eb4 Duplicate aspect ratio code that was being ran twice 2019-08-12 12:52:40 +02:00
twinaphex 65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00
twinaphex ee3208ac39 Integrate video_driver.c into retroarch.c 2019-06-17 15:10:22 +02:00
twinaphex 6aed230930 Reimplement 'Take Screenshot' - if GPU-accelerated viewport screenshots
are not available, resort to raw screenshots instead
2019-05-22 07:08:11 +02:00
Huw Pascoe 2c56011f84 video_layout interface 2019-05-11 09:58:48 +01:00
twinaphex 360f8189e0 (D3D8/D3D9) Screenshots don't seem to work, disabling 2019-05-05 14:25:16 +02:00
twinaphex 3b110c0e3b (D3D8) Add 'Screenshots supported' 2019-05-05 13:55:12 +02:00
twinaphex 04d062b3d4 (MSVC2003) Enable HAVE_OPENGL1; make HAVE_OPENGL1 independent from
HAVE_OPENGL
2019-04-22 22:48:23 +02:00
twinaphex f67bfa24ef Get rid of video_poke_interface set_mvp 2019-03-18 15:19:11 +01:00
twinaphex fe1255094f Get rid of now unused set_coords in video_driver_poke_interface 2019-03-18 05:04:23 +01:00
Brad Parker 5e177c75a5 add memory stats to more context drivers, use correct default variables for fps/stats/framecount/memory_show 2019-02-15 15:59:00 -05:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
M4xw 7d186f7d2c Revert PR #8043 2019-01-20 20:06:57 +01:00
Nano c017271d8a Fix #6747 Black bug 2019-01-19 10:26:06 +01:00
Twinaphex 01397f008a
Revert "Fix issue #6747 black bug" 2019-01-10 22:52:13 +01:00
Nano f1ba335cb3 Fix issue #2791 black bug 2019-01-09 22:52:45 +01:00
orbea bfc366decc Squeeze extra blank lines with cat(1).
Example:

find . -type f -iname '*.c' | while read -r i; do
  cat -s "$i" > "$i.new"
  mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
twinaphex 1cb9f7c1bf Fix D3D10/11/12 drivers for Win32 build 2018-12-30 05:08:57 +01:00
krzys-h b201d669b5 First iteration of UWP support
Enough to kind of run

Working drivers: xinput, d3d11
Still missing: input driver with keyboard support, audio driver
2018-12-28 22:09:22 +01:00
twinaphex 374384128c Revert "(D3D8/D3D9) Buildfixes"
This reverts commit 992d221af9.
2018-12-24 03:34:58 +01:00
twinaphex 992d221af9 (D3D8/D3D9) Buildfixes 2018-12-24 03:31:01 +01:00
twinaphex 4738ef545c Change interval type to signed int 2018-09-12 00:08:13 +02:00
twinaphex 6a64e27e3d (D3D8) Add HAVE_MENU ifdefs 2018-08-14 11:41:43 +02:00
twinaphex 94955eb3b5 (D3D8) Do less casting 2018-05-14 05:14:26 +02:00
twinaphex cbe4c78979 (D3D8/D3D9) Cleanups 2018-05-14 04:55:33 +02:00
twinaphex 6a9b39da3f Get rid of d3d.h and xdk_defines.h 2018-05-14 03:57:27 +02:00
twinaphex 380fa6fd5e Updates 2018-05-13 18:51:05 +02:00
twinaphex 46f23f9fbd Get rid of d3d_video_viewport 2018-05-13 18:24:19 +02:00
twinaphex 542294900f (WinRT) More compilation fixes 2018-05-12 19:03:39 +02:00
twinaphex 6c09195f5e (D3D8/D3D9) Updates 2018-05-03 22:08:14 +02:00
twinaphex 82ebb9576f Create d3d9_video_t and d3d8_video_t 2018-05-03 22:03:12 +02:00
twinaphex 023e280319 win32_get_refresh_rate not available on Xbox 2018-04-25 14:20:37 +02:00
twinaphex 6b31bd8b48 Only show Menu Linear Filter for RGUI and only show it for
video drivers that implement it
2018-04-24 15:14:06 +02:00
twinaphex c506f489df (D3D8) Hook up Menu Linear Filter 2018-04-24 14:49:58 +02:00
twinaphex e54cb1b121 Only show black frame insertion for the video drivers/context drivers
that support it
2018-04-23 14:15:21 +02:00
twinaphex c4c8699ee3 Only show max swapchain images if supported by video driver and/or
context driver
2018-04-23 13:34:30 +02:00
twinaphex 2a655116a6 Set #define CINTERFACE in these files 2018-04-22 14:27:39 +02:00
twinaphex 16df2ceb4e Fix Xbox OG 2018-04-17 11:39:59 +02:00
Brandon Wright e049605359 Add refresh rate polling to Win32 >= Windows 7. 2018-04-15 19:33:38 -05:00
Brandon Wright 7a00534378 Add poke interface for get_refresh_rate. 2018-04-15 17:56:11 -05:00
twinaphex 9b8713aebd Fix Coverity defects 2018-03-24 11:59:01 +01:00
twinaphex 4d1b4f905f Start adding OSD statistics - doesn't work yet for SDL2/SDL 2018-03-23 17:43:49 +01:00
twinaphex 63823b339a Buildfix for D3D8 2018-03-03 15:34:21 +01:00
twinaphex b4a743fff4 Split up menu display drivers for D3D8/D3D9 into separate drivers;
split up d3d_common into separate files
2018-03-03 15:28:58 +01:00
twinaphex 0566b056a5 Take out d3d_common function call from d3d_w32_font.c 2018-03-03 05:42:14 +01:00
twinaphex 3f1ae25713 (D3D8) Buildfix 2 2018-03-02 17:44:48 +01:00
twinaphex ed67653086 (D3D8) Buildfix 2018-03-02 17:43:58 +01:00
twinaphex 371b6a604e (Xbox) Buildfix 2018-03-02 17:43:18 +01:00
twinaphex 0ec5ce8cfe Get rid of d3d context drivers 2018-03-02 17:23:43 +01:00
twinaphex 7acd4b1847 (Windows) Buildfixes - use fseek for MSVC 2003 and earlier 2018-02-17 19:11:49 +01:00
twinaphex b31779c588 (D3D8/9) Don't do allocation for this struct 2018-02-10 22:27:38 +01:00
twinaphex b45b1b3e55 (D3D8) Refactor texture loading to no longer be thread-unsafe 2018-02-10 21:36:40 +01:00
twinaphex 08e61230e9 Update video_poke_interface 2018-01-30 22:29:57 +01:00
twinaphex b0f7728606 CXX_BUILD - buildfixes 2018-01-25 15:54:37 +01:00
twinaphex d4367ed993 Cleanups 2018-01-25 15:30:48 +01:00
twinaphex b9e65fc750 (D3D8) Buildfixes 2018-01-25 14:38:24 +01:00
twinaphex 8f4a1b748b (D3D8/D3D9) More dehardcoding 2018-01-25 14:34:20 +01:00
Twinaphex 4315b57791
Update d3d8.c 2018-01-25 12:27:02 +01:00
twinaphex aa66ca8bf4 (D3D8) Buildfix 2018-01-25 11:51:24 +01:00
twinaphex 766f3b33c7 Dehardcode some more opaque types defined by macros 2018-01-25 11:50:07 +01:00
twinaphex 2634a5ea2d (D3D8) Cleanups 2018-01-25 10:12:49 +01:00
twinaphex 684374eec8 Remove D3DVIEWPORT dependency 2018-01-25 10:03:50 +01:00
twinaphex 0588c3c68e Don't rely on LPDIRECT3DTEXTURE 2018-01-25 04:28:50 +01:00
twinaphex 26f9489f89 Replace LPDIRECT3D 2018-01-25 04:12:37 +01:00
twinaphex bc81a9dc88 Dehardcode LPDIRECT3DDEVICE usage 2018-01-25 01:45:03 +01:00
twinaphex 4dc6eb0ae4 (D3D8) Rotation no longer affects RGUI 2018-01-24 22:50:44 +01:00
Twinaphex c30715db10 Revert "Try to prevent rotation on menu"
This reverts commit 042c2e82a0.
2018-01-24 10:28:55 +01:00
twinaphex 042c2e82a0 Try to prevent rotation on menu 2018-01-24 10:16:03 +01:00
twinaphex 9018012c5c (D3D8) Now handles rotation properly (except for RGUI frame
being rotated as well)
2018-01-24 10:08:52 +01:00
twinaphex c6fd61cc86 (D3D8) Buildfix 2018-01-23 07:21:53 +01:00
twinaphex 673a190d84 Merge d3d8_renderchain into d3d8.c 2018-01-23 07:18:46 +01:00