diff options
author | mightygoat <alpha5and5official@gmail.com> | 2022-05-05 06:59:47 +0530 |
---|---|---|
committer | mightygoat <alpha5and5official@gmail.com> | 2022-05-05 06:59:47 +0530 |
commit | 10209e31eb65c6bdf08edf47ff7c197b42f352d8 (patch) | |
tree | 86a1f6a1786d0b9d1b3cc8f06f55f8984b1cb2a1 | |
parent | c11482347133ac093899d39e5cb2d3221e9a4486 (diff) |
Fix the uniform set creation of multimesh with a invalidated buffer
-rw-r--r-- | servers/rendering/renderer_rd/storage_rd/mesh_storage.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h index e8da8ad563..023d38406c 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h @@ -615,6 +615,9 @@ public: _FORCE_INLINE_ RID multimesh_get_3d_uniform_set(RID p_multimesh, RID p_shader, uint32_t p_set) const { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); if (!multimesh->uniform_set_3d.is_valid()) { + if (!multimesh->buffer.is_valid()) { + return RID(); + } Vector<RD::Uniform> uniforms; RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER; @@ -630,6 +633,9 @@ public: _FORCE_INLINE_ RID multimesh_get_2d_uniform_set(RID p_multimesh, RID p_shader, uint32_t p_set) const { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); if (!multimesh->uniform_set_2d.is_valid()) { + if (!multimesh->buffer.is_valid()) { + return RID(); + } Vector<RD::Uniform> uniforms; RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER; |