Bit hacks to improve performance for 1.13 environmental lighting #4042
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.
Identify the Bug or Feature request
Addresses #4031
Description of the Change
The
LightingComposite.Blender
implementations have been rewritten to avoid some expensive operations, and to make them more appealing to auto-vectorization on JDK 17.0.1. This also involved removingMAX_DARKNESS_BOOST_PER_128
as it ended up being 128 anyways and was just extra cruft.Once the JVM optimizes, the same scenario as in the #4031 has these timings:
So mainly the improvement is coming from an improved
ScreenBlender
, while theConstrainedBrightenBlender
(represented inrenderLightOverlay:drawBuffer
) is just a little more consistent rather than seeing an large average improvement.Possible Drawbacks
The code is less obvious now, which does make maintenace / browsing more difficult.
Performance is hardware dependent. While these changes shouldn't given a performance regression anywhere, it's hard to say for sure.
Documentation Notes
N/A
Release Notes
This change is