diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-02-01 22:57:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-01 22:57:56 +0100 |
commit | 2d897d12c1fd3c20269cc0606c106a41753c0acc (patch) | |
tree | 7e8267ac2d6c00888b758bea4d2276240f3e54e8 | |
parent | d2e121650476af0a91bc24ea38253428e97f9695 (diff) | |
parent | 0c3febca063ffa35a35fb97525646513918696af (diff) |
Merge pull request #45646 from qarmin/trashy_value
Don't use trashy max_decals value to prevent crashes
-rw-r--r-- | servers/rendering/renderer_rd/renderer_scene_render_rd.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 6764eb7b2b..d5c9ccd956 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -8785,6 +8785,14 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) { default_giprobe_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(GI::GIProbeData) * RenderBuffers::MAX_GIPROBES); } + { //decals + cluster.max_decals = max_cluster_elements; + uint32_t decal_buffer_size = cluster.max_decals * sizeof(Cluster::DecalData); + cluster.decals = memnew_arr(Cluster::DecalData, cluster.max_decals); + cluster.decal_sort = memnew_arr(Cluster::InstanceSort<DecalInstance>, cluster.max_decals); + cluster.decal_buffer = RD::get_singleton()->storage_buffer_create(decal_buffer_size); + } + { //reflections cluster.max_reflections = max_cluster_elements; @@ -8815,14 +8823,6 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) { cluster.directional_light_buffer = RD::get_singleton()->uniform_buffer_create(directional_light_buffer_size); } - { //decals - cluster.max_decals = max_cluster_elements; - uint32_t decal_buffer_size = cluster.max_decals * sizeof(Cluster::DecalData); - cluster.decals = memnew_arr(Cluster::DecalData, cluster.max_decals); - cluster.decal_sort = memnew_arr(Cluster::InstanceSort<DecalInstance>, cluster.max_decals); - cluster.decal_buffer = RD::get_singleton()->storage_buffer_create(decal_buffer_size); - } - if (!low_end) { String defines = "\n#define MAX_DIRECTIONAL_LIGHT_DATA_STRUCTS " + itos(cluster.max_directional_lights) + "\n"; Vector<String> volumetric_fog_modes; |