-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
Vulkan: GPUParticles3D crash when duplicating 128 at once #70607
Comments
Could this be related? #61516 Seems like it's the same error messages, but with some further clues and now a linked PR |
@lostminds I'm not sure if they are the same issue. #61516 is an issue with the Material attached to the GPUParticles' Mesh, while this Issue is related to a property of the GPUParticles itself. |
Ok, well, I hope this issue can be resolved. As far as I can tell the billboarding still works as intended in this case, but I'd rather not use something that generates this kind of error each time an effect scene is loaded. I would try with CPUParticles3D instead, but it seems there is no billboarding option there anymore in 4.0beta14 |
The first bug in this issue (the two error prints when changing scenes) is fixed by #71925 I debugged the second bug here and, as it turns out, the crash is caused by adding 128 GPUParticles to the scene at once rather than having 256 in the scene. I could reproduce the crash by doubling the the number of particles in the scene with ctrl+d (crashed when copying 128 particles and duplicating), but I could not reproduce the crash when duplicating only 64 at a time. I easily was able to have over 300 in the scene. Updating PR title and milestone accordingly |
We're ran into this issue for our project, instantiating particles using "Z-Billboard" would spam the logs and randomly crash the game. We have a system that instantiates a collection of various particles to be used globally, like a splash or puff of smoke, but we don't spawn 128 of any of them. |
@1029chris It sounds like you may have a different issue. This issue is pretty specific, it results in a hard crash when duplicating 128 particles or more at once. It doesn't spam the logs, it just crashes without printing anything. You should open a new bug report and include all the requested info as well as a minimal reproduction project so others can try to reproduce and solve the issue that you face |
@clayjohn Perhaps, but the logs shown here for the freezing is very similar to what we got as well. The frame would hitch and inputs would be eaten. I have a hunch whatever fixes this issue will also fix ours. We ended up removing "Z-Billboard" from all our particles, and we're not crashing or getting log spam anymore. (I'm very thankful for this issue existing, I'm not sure we would have found the source of the crashes without it!) |
Hello, I dont find the "Z-Billboard", where can i find it ? Thx a lot |
I think they're referring to the billboard mode property set to Y-Billboard. |
Thank you ... unfortunatly i have already tried all the billboard setting. |
I had this issue when running one big GPUParticles3D emitting 1000 particles alongside 100 smaller GPUParticles3D each emitting 3 particles. I had Billboard enabled in the ParticleProcess Material, and crashed with the "compute_list" errors. |
|
@IvanIG3 @zicman666 If you aren't duplicating a lot of nodes, these are likely unrelated issues. Please open a separate issue with a minimal reproduction project attached, and describe what you were trying to achieve there. |
I'd like to make a minimal reproduction project with this bug, but I don't know why is this happening and where the error comes from. I don't even know what the error message means, so I have no clue what I need to replicate the bug in a minimal reproduction project. Could someone bring some light? so I can understand what's going on and I'll try to isolate the bug from my project into a minimal reproduction project. |
I have the same problem to find the origin on the errors ... |
Sometimes, when Godot crashes and throws all the COMPUTE_LIST errors to the console, at the end of it there are two more errors that seems related to #71929. |
I've found a reliable way of triggering this bug in Godot 4.1.1 with only 4 GPUParticles3D. The thing is to fill a scene with a lot of Sprite3D (~1400 in my case), and configure the particles with View Depth. I don't know what's going on, but maybe the View Depth is forcing the particles to z-test with each object in the scene, and that makes the Godot crash. I attach a MRP. To trigger the bug, just run the project and click the button. What the button does is to change the Particles draw_order to View Depth. The console will fill with hundreds of errors until it freezes/crash. |
To confirm, the workaround is to set particle draw order from DRAW_ORDER_VIEW_DEPTH to DRAW_ORDER_INDEX (or any other setting). Not ideal but it is a workaround. |
Does not work for me. I have thousands of errors in output when scene opened. Particles are set to DRAW_ORDER_INDEX. Transform Align: Z-Billboard Only one draw/compute list can be active at the same time.
drivers/vulkan/rendering_device_vulkan.cpp:7748 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7966 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8046 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8194 - Condition "!compute_list" is true.
Only one draw/compute list can be active at the same time.
drivers/vulkan/rendering_device_vulkan.cpp:7748 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7966 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8046 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8194 - Condition "!compute_list" is true.
Only one draw/compute list can be active at the same time.
drivers/vulkan/rendering_device_vulkan.cpp:7748 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7812 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:7966 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8046 - Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
drivers/vulkan/rendering_device_vulkan.cpp:8194 - Condition "!compute_list" is true. This workaround from @Trahv98 works! Thanks!
|
Godot version
4.0 Beta 10
System information
Linux Mint 21, Vulkan, Intel Iris Xe (Intel i5-1135G7)
Issue description
Godot throws this pair of errors two times when "Z-Billboard" or "View Depth" flags are checked in GPUParticle3D properties, and when you switch to a scene that contains them:
Also, whenever there's a big enough amount of such particle system nodes in the scene (in reproduction project it's between 128 and 256), Godot freezes, console showing errors:
Could be related to #63315 as I'm also using Linux on an integrated Intel GPU.
Steps to reproduce
Minimal reproduction project
testdebug.zip
The text was updated successfully, but these errors were encountered: