feat: updated godot version

This commit is contained in:
Sara Gerretsen 2026-04-04 19:38:56 +02:00
parent 0c508b0831
commit 42b028dbb5
4694 changed files with 236470 additions and 401376 deletions

View file

@ -30,6 +30,7 @@
#include "lightmapper_rd.h"
#include "core/string/print_string.h"
#include "lm_blendseams.glsl.gen.h"
#include "lm_compute.glsl.gen.h"
#include "lm_raster.glsl.gen.h"
@ -37,14 +38,9 @@
#include "core/config/project_settings.h"
#include "core/io/dir_access.h"
#include "core/math/geometry_2d.h"
#include "core/math/geometry_3d.h"
#include "core/os/os.h"
#include "core/string/print_string.h"
#include "editor/file_system/editor_paths.h"
#include "editor/settings/editor_settings.h"
#include "servers/rendering/rendering_device.h"
#include "servers/rendering/rendering_device_binds.h"
#include "servers/rendering/rendering_server.h"
#include "servers/rendering/rendering_server_globals.h"
#if defined(VULKAN_ENABLED)
@ -229,7 +225,7 @@ void LightmapperRD::_sort_triangle_clusters(uint32_t p_cluster_size, uint32_t p_
break;
}
uint32_t left_cluster_count = Math::next_power_of_2(p_count / 2);
uint32_t left_cluster_count = next_power_of_2(p_count / 2);
left_cluster_count = MAX(left_cluster_count, p_cluster_size);
left_cluster_count = MIN(left_cluster_count, p_count);
_sort_triangle_clusters(p_cluster_size, p_cluster_index, p_index_start, left_cluster_count, p_triangle_sort, p_cluster_aabb);
@ -260,8 +256,8 @@ Lightmapper::BakeError LightmapperRD::_blit_meshes_into_atlas(int p_max_texture_
atlas_size = atlas_size.max(s + Size2i(2, 2).maxi(p_denoiser_range) * p_supersampling_factor);
}
int max = Math::nearest_power_of_2_templated(atlas_size.width);
max = MAX(max, Math::nearest_power_of_2_templated(atlas_size.height));
int max = nearest_power_of_2_templated(atlas_size.width);
max = MAX(max, nearest_power_of_2_templated(atlas_size.height));
if (max > p_max_texture_size) {
return BAKE_ERROR_TEXTURE_EXCEEDS_MAX_SIZE;
@ -499,7 +495,7 @@ void LightmapperRD::_create_acceleration_structures(RenderingDevice *rd, Size2i
t.max_bounds[1] = taabb.position.y + MAX(taabb.size.y, 0.0001);
t.max_bounds[2] = taabb.position.z + MAX(taabb.size.z, 0.0001);
t.cull_mode = RSE::CULL_MODE_BACK;
t.cull_mode = RS::CULL_MODE_BACK;
RID material = mi.data.material[i];
if (material.is_valid()) {
@ -1019,7 +1015,7 @@ LightmapperRD::BakeError LightmapperRD::_denoise(RenderingDevice *p_rd, Ref<RDSh
// We denoise in fixed size regions and synchronize execution to avoid GPU timeouts.
// We use a region with 1/4 the amount of pixels if we're denoising SH lightmaps, as
// all four of them are denoised in the shader in one dispatch.
const int user_region_size = Math::nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
const int user_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
const int max_region_size = p_bake_sh ? user_region_size / 2 : user_region_size;
int x_regions = Math::division_round_up(p_atlas_size.width, max_region_size);
int y_regions = Math::division_round_up(p_atlas_size.height, max_region_size);
@ -1172,19 +1168,19 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
RID shadowmask_tex;
RID shadowmask_tex2;
#define FREE_TEXTURES \
rd->free_rid(albedo_array_tex); \
rd->free_rid(emission_array_tex); \
rd->free_rid(normal_tex); \
rd->free_rid(position_tex); \
rd->free_rid(unocclude_tex); \
rd->free_rid(light_source_tex); \
rd->free_rid(light_accum_tex2); \
rd->free_rid(light_accum_tex); \
#define FREE_TEXTURES \
rd->free_rid(albedo_array_tex); \
rd->free_rid(emission_array_tex); \
rd->free_rid(normal_tex); \
rd->free_rid(position_tex); \
rd->free_rid(unocclude_tex); \
rd->free_rid(light_source_tex); \
rd->free_rid(light_accum_tex2); \
rd->free_rid(light_accum_tex); \
rd->free_rid(light_environment_tex); \
if (p_bake_shadowmask) { \
rd->free_rid(shadowmask_tex); \
rd->free_rid(shadowmask_tex2); \
if (p_bake_shadowmask) { \
rd->free_rid(shadowmask_tex); \
rd->free_rid(shadowmask_tex2); \
}
{ // create all textures
@ -1289,16 +1285,16 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
Vector<int> slice_seam_count;
#define FREE_BUFFERS \
rd->free_rid(bake_parameters_buffer); \
rd->free_rid(vertex_buffer); \
rd->free_rid(triangle_buffer); \
rd->free_rid(lights_buffer); \
#define FREE_BUFFERS \
rd->free_rid(bake_parameters_buffer); \
rd->free_rid(vertex_buffer); \
rd->free_rid(triangle_buffer); \
rd->free_rid(lights_buffer); \
rd->free_rid(triangle_indices_buffer); \
rd->free_rid(cluster_indices_buffer); \
rd->free_rid(cluster_aabbs_buffer); \
rd->free_rid(grid_texture); \
rd->free_rid(seams_buffer); \
rd->free_rid(cluster_indices_buffer); \
rd->free_rid(cluster_aabbs_buffer); \
rd->free_rid(grid_texture); \
rd->free_rid(seams_buffer); \
rd->free_rid(probe_positions_buffer);
const uint32_t cluster_size = 16;
@ -1540,9 +1536,9 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
}
#endif
#define FREE_RASTER_RESOURCES \
#define FREE_RASTER_RESOURCES \
rd->free_rid(rasterize_shader); \
rd->free_rid(sampler); \
rd->free_rid(sampler); \
rd->free_rid(raster_depth_buffer);
/* Plot direct light */
@ -1601,9 +1597,9 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
RID compute_base_uniform_set = rd->uniform_set_create(base_uniforms, compute_shader_primary, 0);
#define FREE_COMPUTE_RESOURCES \
#define FREE_COMPUTE_RESOURCES \
rd->free_rid(compute_shader_unocclude); \
rd->free_rid(compute_shader_primary); \
rd->free_rid(compute_shader_primary); \
rd->free_rid(compute_shader_secondary); \
rd->free_rid(compute_shader_light_probes);
@ -1686,7 +1682,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
}
}
const int max_region_size = Math::nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
const int max_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
const int x_regions = Math::division_round_up(atlas_size.width, max_region_size);
const int y_regions = Math::division_round_up(atlas_size.height, max_region_size);
@ -2182,7 +2178,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
ERR_FAIL_COND_V(blendseams_triangle_raster_shader.is_null(), BAKE_ERROR_LIGHTMAP_CANT_PRE_BAKE_MESHES);
#define FREE_BLENDSEAMS_RESOURCES \
#define FREE_BLENDSEAMS_RESOURCES \
rd->free_rid(blendseams_line_raster_shader); \
rd->free_rid(blendseams_triangle_raster_shader);