Avoid branch in half2float in gl_compatibility renderer #73332
Merged
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.
Fixes: #73320
This is a regression from #72914.
For some reason the radeon drivers really don't like the
h_e == uint(0x0000)
comparison. Replacing it with(h_e >> uint(10)) == uint(0)
works though.Also, when running it through Radeon GPUAnalyzer I noticed that this was actually generating a branch. So I made the code branchless. Logically this code does almost exactly the same thing as the old code (it can now return -0 but couldn't before) but it works on more hardware, so oh well.
CC @JonqsGames you may be interested in this