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
..
2020-06-21 19:03:09 +03:00
2020-06-04 12:40:25 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-22 19:35:14 +03:00
2020-06-30 15:20:30 +03:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-19 11:24:08 +02:00
2020-06-12 08:06:30 +02:00
2020-12-05 22:10:29 +01:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2020-11-23 22:54:07 +08:00
2020-06-30 15:20:30 +03:00
2021-05-17 00:09:21 +08:00
2021-03-11 22:15:42 +08:00
2020-07-14 12:03:29 +03:00
2020-08-24 23:13:16 +03:00
2020-07-14 12:03:29 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2021-03-11 22:15:42 +08:00
2020-06-30 15:20:30 +03:00
2021-03-11 22:15:42 +08:00
2020-09-19 16:54:44 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2021-05-17 00:09:21 +08:00
2020-08-24 23:13:16 +03:00
2020-09-19 16:54:44 +03:00
2020-06-22 23:20:29 +03:00
2020-06-30 15:20:30 +03:00

Internationalization Workflow

For Translators

Use Crowdin

  1. Register user account at https://crowdin.com/
  2. Join the project https://crowdin.com/project/retroarch/
  3. Select your language to translate
  4. Click the file name msg_hash_us.json and the editor should open
  5. Select an untranslated (red) string from the list
  6. Type translation and save
  7. Next string...

Links:

Request New Language

You can open a new issue and @guoyunhe to add new language.

For Maintainers

Set Up

Install Java, Python3 and Git

Synchronize

cd intl
python3 crowin_sync.py

Manage Crowdin Project

  1. You need to be project admin. Please contact @guoyunhe or @twinaphex
  2. Go to https://crowdin.com/project/retroarch/settings
  3. You can manage languages, members etc. here

Links:

Message File Format

  1. Must NOT contain #else
  2. Must NOT have multiple-line string syntax
    // bad
    MSG_HASH(
      MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
      "Compete to earn custom-made achievements in classic games.\n"
      "For more information, visit http://retroachievements.org"
      )
    // good
    MSG_HASH(
      MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
      "Compete to earn custom-made achievements in classic games.\nFor more information, visit http://retroachievements.org"
      )
    
  3. Must NOT contain lowercase letters in key name
    // bad (x)
    MSG_HASH(
      MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800x240,
      "2D (High Resolution)"
      )
    // good (X)
    MSG_HASH(
      MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800X240,
      "2D (High Resolution)"
      )
    

Add New Languages

  1. Go to Crowdin and add the language
  2. Run Crowdin script to download new translations
  3. Add new language into menu (see #10787)