-
Notifications
You must be signed in to change notification settings - Fork 38
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
Crash at start on Snapdragon X elite #222
Comments
Interesting, thank you for the report! Could you run with validation enabled? I.e. have the validation layers installed and do "validation: true" in the context desc. |
I changed the validation to true then false in bunnymark/main.rs:82 I still get the same output. Note, I'm not a rust developer |
It looks like it fails at
There's no any errors spotted by the validation layer. I guess it's something with quirks in Qualcomm's Vulkan driver on Windows. Didn't have this problem on Linux (mesa/turnip). |
It's really hard to say what part of the shader the Qualcomm's Vulkan driver doesn't like, but it looks like a driver bug to me. |
I'm an experienced Rust dev w/ an X1E80100 and willing to help debug this issue further if you're interested, although I'll need guidance as I've done very little graphics development. |
I'd first change the shader into something trivia, i.e. vertex doing nothing and fragment outputting a constant color. Once we find the construct, we can work with current Naga developers to put a workaround in place in the shading translation. |
After I changed the fragment part in bunnymark, it doesn't crash, and it renders a white box.
|
After a bit of testing it seems like the crash occurs when you try to access vertex properties in fs_main |
I can repro @HgGamer's test: Acessing
|
Also, I tried multiple texture formats because I read somewhere that the GPU doesn't support every format. |
There's a workaround implemented in Blender a couple months ago, which could be related and points to a driver issue with optimized SPIR-V. The workaround for Blender was to disable some optimizations (this is beyond my knowledge, so just a guess). |
Thank you both for the investigation! The Blender thread appears to be very relevant but unfortunately lacking details. It would be useful to read the Qualcomm driver devs take on this. Shaderc optimizations is basically spirv-opt from SPIR-V tools. Blade doesn't use it - we have a pure-Rust shader pipeline, and we aren't running the shader through spirv-opt since we assume the driver already doing this anyway at pipeline creation. There appear to be multiple other threads about Adreno GPU issues with SPIR-V shaders: |
Vulkan sdk is installed, vkcube is working fine.
The text was updated successfully, but these errors were encountered: