Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upFix FLOAT texture sampling precision problems on some mobile GPUs #1395
+13
−4
Conversation
|
Looks good, thanks! @bors-servo r+ |
|
|
bors-servo
added a commit
that referenced
this pull request
Jun 17, 2017
Fix FLOAT texture sampling precision problems on some mobile GPUs Hi, I'm working on running WebGL/WebVR demos on a Samsung Galaxy S7. I found that WR renders a white screen in all WebGL or CSS demos, even the simple ones. It's weird because it works correctly on other old Android phones such as Nexus 4 (released 5-6 years ago). I thought that it was caused by a GPU driver issue but after heavy debugging I found that texelFetch was getting corrupt values for big float values (e.g. local_clip_rect). They are stored correctly on the texture data but clamped to maximum half_float value (65504.0) when computed in the shaders. Adding highp precision qualifier to the FLOAT sampler2D fixes the issue. Samsung Galaxy S7 has Mali-T880 GPU. The precision qualifier wasn't need on other Android mobiles I have tested (mostly Adreno GPUs). <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/1395) <!-- Reviewable:end -->
|
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
MortimerGoro commentedJun 16, 2017
•
edited
Hi,
I'm working on running WebGL/WebVR demos on a Samsung Galaxy S7. I found that WR renders a white screen in all WebGL or CSS demos, even the simple ones. It's weird because it works correctly on other old Android phones such as Nexus 4 (released 5-6 years ago). I thought that it was caused by a GPU driver issue but after heavy debugging I found that texelFetch was getting corrupt values for big float values (e.g. local_clip_rect). They are stored correctly on the texture data but clamped to maximum half_float value (65504.0) when computed in the shaders.
Adding highp precision qualifier to the FLOAT sampler2D fixes the issue. Samsung Galaxy S7 has Mali-T880 GPU. The precision qualifier wasn't need on other Android mobiles I have tested (mostly Adreno GPUs).
This change is