summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux_builds.yml2
-rw-r--r--drivers/gles3/storage/light_storage.cpp6
-rw-r--r--editor/editor_node.cpp2
-rw-r--r--scene/2d/tile_map.cpp14
-rw-r--r--scene/resources/material.cpp2
-rw-r--r--scene/resources/material.h1
-rw-r--r--servers/rendering/renderer_canvas_cull.cpp4
-rw-r--r--servers/rendering/renderer_canvas_cull.h1
-rw-r--r--servers/rendering/rendering_server_default.h1
-rw-r--r--servers/rendering_server.h1
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;