-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
disable gpu preprocessing on android with Adreno 6xx GPU #13323
disable gpu preprocessing on android with Adreno 6xx GPU #13323
Conversation
…ARRAY_NON_UNIFORM_INDEXING
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where are binding arrays used? The PR this fixes didn't use any as far as I can tell.
I printed limits and features on a working device and on a crashing device, this one looked the most closely related
working:
@JMS55 do you have a suggestion on what else I could limit? |
Probably try checking if storage buffers are supported. |
They should be, at least the limits says so |
Looking at the two logs you posted, I really can't see anything else that would cause it. But I can't find any usage of binding array's in bevy's source code, except for env map lights / irradiance volumes. |
I think we could:
I would like to avoid 3 because starting to list specific GPUs is without end, I would be ok with 1 or 2 or a combination of them. |
I think I'd prefer a mix of 1 and 2 personally, but 1 would be good enough |
I limited the check to Android, and added a comment 👍 |
I'm not sure that using an unrelated feature as a proxy for Adreno 6xx series is better than just checking for Adreno 6xx series to begin with. Other GPU manufacturers might not support binding arrays but might be just fine with GPU preprocessing, and likewise they might have binding arrays but also have bugs that prevent use of GPU preprocessing. Checking for Adreno 6xx directly would make things clearer, and doesn't seem any more fragile in practice. (I suppose you could also, as an alternative, check for driver date and denylist everything prior to 2022, though that also seems like a crude proxy and I don't like it...) |
@pcwalton switched to disabling for Adreno 6xx on Android 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bizarre that it happens, but oh well. Such is Android graphics drivers.
# Objective The Android example on Adreno 642L currently crashes on startup. Previous PRs #14176 and #13323 have adressed this specific crash occurring on some Adreno GPUs, that fix works as it should but isn't applied when to the GPU name contains a suffix like in the case of `642L`. ## Solution - Amending the logic to filter out any parts of the GPU name not containing digits thus enabling the fix on `642L`. ## Testing - Ran the Android example on a Nothing Phone 1. Before this change it crashed, after it works as intended. --------- Co-authored-by: Sam Pettersson <[email protected]>
Objective
MeshUniforms
generation on the GPU #13038Solution
SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING
is not availableTesting