-
-
Notifications
You must be signed in to change notification settings - Fork 319
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix puck rendering behavior Android #2957
Conversation
… drawable VAO state
… drawable VAO state
Bloaty Results (iOS) 🐋Compared to main
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results-ios/pr-2957-compared-to-main.txt |
Bloaty Results 🐋Compared to main
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results/pr-2957-compared-to-main.txtCompared to d387090 (legacy)
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results/pr-2957-compared-to-legacy.txt |
Benchmark Results ⚡
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/benchmark-results/pr-2957-compared-to-main.txt |
Curious, I don't think that should be necessary. Doesn't it mean that either those commands shouldn't be happening at all, or that they are happening with the wrong bindings? |
Android render test timing out is just because we were running benchmarks, should restart... |
@TimSylvester I haven't really debug this. I only noticed in renderdoc that the buffers bound to the VAO change when the glitch happens. This means that while the puck VAO is bound (It's the last drawable in the frame), and before the next frame's drawable, there are calls that bind buffers such as |
@TimSylvester Since we have multiple people that report this is an issue, do you think this is an acceptable work-around? |
I haven't been able to reproduce the glitch, but from what @alasram described a single |
This is a legit fix. |
Sorry, I was out since 10/30. Something must be making GL calls without binding its own buffer first but if it's not leading to an observed bug, I guess it's not a big deal. |
The puck is typically rendered last and while its VAO is bound command that change the VAO are executed causing glitches. I didn't debug what commands are affecting the VAO but as a workaround the VAO is unbound after drawing which ensures the state of a Drawable object remains clean without adding overhead. This works around #2879