godotengine / godotengine/godot
LightmapGI creating a new LightmapGIData results in a wall of errors (Vulcan)
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
- Reproducible in v4.2.2.stable.official
- Reproducible in v4.3.beta1.official
### System information
Godot v4.3.beta1.official - Windows 10 - Vulcan Forward+ / Mobile
### Issue description
# Info
Creating a new LightmapGIData results in a wall of errors. Only on Vulcan!

## Forward+ (Vulcan)
```
Set light_data
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 7) is an array of (8) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 7).
servers/rendering/renderer_rd/uniform_set_cache_rd.h:130 - Condition "rid.is_null()" is true. Returning: rid
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
[...]
```
## Mobile (Vulcan)
```
Set light_data
Texture (binding: 6) is an array of (2) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 1).
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Uniforms were never supplied for set (1) at the time of drawing, which are required by the pipeline.
Texture (binding: 6) is an array of (2) textures, so it should be provided equal number of texture IDs to satisfy it (IDs provided: 1).
servers/rendering/rendering_device.cpp:3633 - Parameter "uniform_set" is null.
Uniforms supplied for set (1):
Set: 1 Binding: 0 Type: UniformBuffer Writable: N Length: 128
Set: 1 Binding: 1 Type: Texture Writable: N Length: 1
are not the same format as required by the pipeline shader. Pipeline shader requires the following bindings:
Set: 0 Binding: 2 Type: Sampler Writable: N Length: 1
Set: 0 Binding: 3 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 4 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 5 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 6 Type: UniformBuffer Writable: N Length: 3712
Set: 0 Binding: 7 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 8 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 9 Type: Texture Writable: N Length: 1
Set: 0 Binding: 10 Type: Texture Writable: N Length: 1
Set: 0 Binding: 11 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 12 Type: StorageBuffer Writable: N Length: 0
Set: 0 Binding: 13 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 0 Type: UniformBuffer Writable: N Length: 5792
Set: 1 Binding: 1 Type: StorageBuffer Writable: N Length: 0
Set: 1 Binding: 2 Type: Texture Writable: N Length: 1
Set: 1 Binding: 3 Type: Texture Writable: N Length: 1
Set: 1 Binding: 4 Type: Texture Writable: N Length: 1
Set: 1 Binding: 5 Type: Texture Writable: N Length: 1
Set: 1 Binding: 6 Type: Texture Writable: N Length: 2
Set: 1 Binding: 9 Type: Texture Writable: N Length: 1
Set: 1 Binding: 10 Type: Texture Writable: N Length: 1
Set: 1 Binding: 11 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 12 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 13 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 14 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 15 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 16 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 17 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 18 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 19 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 20 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 21 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 22 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 23 Type: Sampler Writable: N Length: 1
Set: 1 Binding: 24 Type: Sampler Writable: N Length: 1
Set: 2 Binding: 0 Type: StorageBuffer Writable: N Length: 0
[...]
```
## Compatibility
```
Set light_data
```
(no errors)
### Steps to reproduce
1. new 3d scene (Node3D)
2. add LightmapGI
3. click Data - Light Data - New LightmapGIData
### Minimal reproduction project (MRP)
not needed
Contributor guide
Research direction
Reproduce the LightmapGIData creation steps with Forward+ and Mobile, then compare against Compatibility, which produces no errors. Start by tracing the reported paths in servers/rendering/renderer_rd/uniform_set_cache_rd.h and servers/rendering/rendering_device.cpp; done means creating new LightmapGIData no longer produces the reported uniform and texture-binding errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100