Apple: Support output to EDR (HDR) displays #106814
Draft
+2,060
−149
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add support for EDR displays to Apple platforms.
Depends on
Implements godotengine/godot-proposals#10817 for Apple platforms
Testing/Sample project: https://github.com/DarkKilauea/godot-hdr-output
Note
Apple's HDR Content page is also useful.
In particular, Understanding EDR Values:
Issues:
The issue is the changes to the
RenderCompositorRD
(_ensure_blit_pipelines
specifically) assume the blit pipelines are the same for all windows by using theMAIN_WINDOW_ID
as the reference. This is not the case (at least on macOS) if the main window is HDR (RGBA 16-bit float) and the popup window is SDR (RGBA8 UNORM). This happens for both the Metal and Vulkan renderers.