diff options
-rw-r--r-- | .github/workflows/linux_builds.yml | 2 | ||||
-rw-r--r-- | drivers/gles3/storage/light_storage.cpp | 6 | ||||
-rw-r--r-- | editor/editor_node.cpp | 2 | ||||
-rw-r--r-- | scene/2d/tile_map.cpp | 14 | ||||
-rw-r--r-- | scene/resources/material.cpp | 2 | ||||
-rw-r--r-- | scene/resources/material.h | 1 | ||||
-rw-r--r-- | servers/rendering/renderer_canvas_cull.cpp | 4 | ||||
-rw-r--r-- | servers/rendering/renderer_canvas_cull.h | 1 | ||||
-rw-r--r-- | servers/rendering/rendering_server_default.h | 1 | ||||
-rw-r--r-- | servers/rendering_server.h | 1 |
10 files changed, 31 insertions, 3 deletions
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml index fc0db1fbd6..5dd0805d9a 100644 --- a/.github/workflows/linux_builds.yml +++ b/.github/workflows/linux_builds.yml @@ -92,7 +92,7 @@ jobs: if: ${{ matrix.proj-test }} run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list - sudo add-apt-repository ppa:kisak/kisak-mesa + sudo add-apt-repository ppa:kisak/turtle sudo apt-get install -qq mesa-vulkan-drivers - name: Free disk space on runner diff --git a/drivers/gles3/storage/light_storage.cpp b/drivers/gles3/storage/light_storage.cpp index ff06fbfa41..6d4d23bd10 100644 --- a/drivers/gles3/storage/light_storage.cpp +++ b/drivers/gles3/storage/light_storage.cpp @@ -34,6 +34,7 @@ #include "../rasterizer_gles3.h" #include "../rasterizer_scene_gles3.h" #include "config.h" +#include "core/config/project_settings.h" #include "texture_storage.h" using namespace GLES3; @@ -46,6 +47,11 @@ LightStorage *LightStorage::get_singleton() { LightStorage::LightStorage() { singleton = this; + + directional_shadow.size = GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/size"); + directional_shadow.use_16_bits = GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/16_bits"); + + // lightmap_probe_capture_update_speed = GLOBAL_GET("rendering/lightmapping/probe_capture/update_speed"); } LightStorage::~LightStorage() { diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 5b003ffdc0..665e609cb0 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -790,7 +790,7 @@ void EditorNode::_notification(int p_what) { } void EditorNode::_update_update_spinner() { - update_spinner->set_visible(EDITOR_GET("interface/editor/show_update_spinner")); + update_spinner->set_visible(!RenderingServer::get_singleton()->canvas_item_get_debug_redraw() && EDITOR_GET("interface/editor/show_update_spinner")); const bool update_continuously = EDITOR_GET("interface/editor/update_continuously"); PopupMenu *update_popup = update_spinner->get_popup(); diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 53bfa72626..b1c5677726 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -4518,14 +4518,26 @@ PackedStringArray TileMap::get_configuration_warnings() const { } } - // Check if Y-sort is enabled on a layer but not on the node. if (!is_y_sort_enabled()) { + // Check if Y-sort is enabled on a layer but not on the node. for (const Ref<TileMapLayer> &layer : layers) { if (layer->is_y_sort_enabled()) { warnings.push_back(RTR("A TileMap layer is set as Y-sorted, but Y-sort is not enabled on the TileMap node itself.")); break; } } + } else { + // Check if Y-sort is enabled on the node, but not on any of the layers. + bool need_warning = true; + for (const Ref<TileMapLayer> &layer : layers) { + if (layer->is_y_sort_enabled()) { + need_warning = false; + break; + } + } + if (need_warning) { + warnings.push_back(RTR("The TileMap node is set as Y-sorted, but Y-sort is not enabled on any of the TileMap's layers.\nThis may lead to unwanted behaviors, as a layer that is not Y-sorted will be Y-sorted as a whole.")); + } } // Check if we are in isometric mode without Y-sort enabled. diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 39b3acfe3f..461dbbec2f 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -3079,6 +3079,8 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) : flags[FLAG_ALBEDO_TEXTURE_MSDF] = false; flags[FLAG_USE_TEXTURE_REPEAT] = true; + current_key.invalid_key = 1; + _mark_initialized(callable_mp(this, &BaseMaterial3D::_queue_shader_change)); } diff --git a/scene/resources/material.h b/scene/resources/material.h index 8cd583c709..a631f77598 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -325,6 +325,7 @@ private: uint64_t emission_op : get_num_bits(EMISSION_OP_MAX - 1); uint64_t distance_fade : get_num_bits(DISTANCE_FADE_MAX - 1); // booleans + uint64_t invalid_key : 1; uint64_t deep_parallax : 1; uint64_t grow : 1; uint64_t proximity_fade : 1; diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index 75192132c7..c5206017f7 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -1623,6 +1623,10 @@ void RendererCanvasCull::canvas_item_set_debug_redraw(bool p_enabled) { RSG::canvas_render->set_debug_redraw(p_enabled, debug_redraw_time, debug_redraw_color); } +bool RendererCanvasCull::canvas_item_get_debug_redraw() const { + return debug_redraw; +} + void RendererCanvasCull::canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin, bool p_fit_empty, float p_fit_margin, bool p_blur_mipmaps) { Item *canvas_item = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(canvas_item); diff --git a/servers/rendering/renderer_canvas_cull.h b/servers/rendering/renderer_canvas_cull.h index f81dabc1d2..0f51abbb26 100644 --- a/servers/rendering/renderer_canvas_cull.h +++ b/servers/rendering/renderer_canvas_cull.h @@ -265,6 +265,7 @@ public: void canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false); void canvas_item_set_debug_redraw(bool p_enabled); + bool canvas_item_get_debug_redraw() const; RID canvas_light_allocate(); void canvas_light_initialize(RID p_rid); diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 85d932e598..3d75ced3e3 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -895,6 +895,7 @@ public: FUNC6(canvas_item_set_canvas_group_mode, RID, CanvasGroupMode, float, bool, float, bool) FUNC1(canvas_item_set_debug_redraw, bool) + FUNC0RC(bool, canvas_item_get_debug_redraw) FUNCRIDSPLIT(canvas_light) diff --git a/servers/rendering_server.h b/servers/rendering_server.h index b08f765337..ba8cc3ba80 100644 --- a/servers/rendering_server.h +++ b/servers/rendering_server.h @@ -1413,6 +1413,7 @@ public: virtual void canvas_item_set_canvas_group_mode(RID p_item, CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false) = 0; virtual void canvas_item_set_debug_redraw(bool p_enabled) = 0; + virtual bool canvas_item_get_debug_redraw() const = 0; /* CANVAS LIGHT */ virtual RID canvas_light_create() = 0; |