You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"compute_list_dispatch: Uniforms were never supplied for set (3) at the time of drawing" Error when rapidly deleting many local to scene particle systems
#82257
Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti (NVIDIA; 31.0.15.3623) - Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (8 Threads)
Issue description
If you instantiate a large number of GPUParticle2D nodes that use a ParticleProcessMaterial rather than a ShaderMaterial, and set the "Local to Scene" variable to true, if those nodes get deleted by calling queue_free() it will cause the error message: compute_list_dispatch: Uniforms were never supplied for set (3) at the time of drawing, which are required by the pipeline
Additionally whenever this error message appears there will also be visual artifacts of particles scaling across the whole screen.
Attempting to replicate this I set up a script that would instantiate a new particle system every frame in _process() and then queue_free() it after some number of seconds, however this does not actually cause the error. The particle systems must (as far as i know) be instantiated in _input() rather than _process().
Steps to reproduce
Create a GPUParticles2D node
Set its ProcessMaterial as a new ParticleProcessMaterial
Set the ProcessMaterial variable "Local to Scene" to true
Add a script to the GPUParticles node that calls queue_free() after some amount of time
Create a node that instantiates a copy of the GPUParticles node every time a keyboard input is received in _input()
Run this scene and mash keyboard buttons to generate a large number of GPUParticle nodes
See that if multiple nodes get deleted in quick succession by queue_free() the particles will artifact and generate error codes
Godot version
4.1.1.stable
System information
Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti (NVIDIA; 31.0.15.3623) - Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (8 Threads)
Issue description
If you instantiate a large number of GPUParticle2D nodes that use a ParticleProcessMaterial rather than a ShaderMaterial, and set the "Local to Scene" variable to true, if those nodes get deleted by calling queue_free() it will cause the error message:
compute_list_dispatch: Uniforms were never supplied for set (3) at the time of drawing, which are required by the pipeline
Additionally whenever this error message appears there will also be visual artifacts of particles scaling across the whole screen.
Attempting to replicate this I set up a script that would instantiate a new particle system every frame in _process() and then queue_free() it after some number of seconds, however this does not actually cause the error. The particle systems must (as far as i know) be instantiated in _input() rather than _process().
Steps to reproduce
Minimal reproduction project
Minimal reproduction project.zip
Run the scene named "spawner.tscn" and mash keyboard inputs to see the error
The text was updated successfully, but these errors were encountered: