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
base: main
Are you sure you want to change the base?
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 👍 |
Objective
MeshUniforms
generation on the GPU #13038Solution
SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING
is not availableTesting