summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Mikrut <mikrutrafal@protonmail.com>2021-07-31 08:52:50 +0200
committerRafał Mikrut <mikrutrafal@protonmail.com>2021-07-31 15:30:31 +0200
commite8877806eceb7d4f5ddbe6fef4bef2f58ec3781a (patch)
treec067f3264fe3410b862a4c8025853f1fe9e57ab4
parentf2efa6f4f38895a4adf8efc1e4f358a8dc5779cb (diff)
Fix 'Attempted to remove invalid ID' errors
-rw-r--r--.github/workflows/linux_builds.yml18
-rwxr-xr-xmisc/scripts/check_ci_log.py12
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.cpp2
-rw-r--r--servers/rendering/renderer_rd/shader_rd.cpp4
4 files changed, 18 insertions, 18 deletions
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 1b68f66956..679362d749 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -70,12 +70,12 @@ jobs:
run: |
./bin/godot.linuxbsd.opt.tools.64 --test
- # Download, unzip and setup SwiftShader library [d4550ab8d3f]
+ # Download, unzip and setup SwiftShader library [4466040]
- name: Download SwiftShader
run: |
- wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader.zip
- unzip swiftshader.zip
- rm swiftshader.zip
+ wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
+ unzip swiftshader2.zip
+ rm swiftshader2.zip
curr="$(pwd)/libvk_swiftshader.so"
sed -i "s|PATH_TO_CHANGE|$curr|" vk_swiftshader_icd.json
@@ -144,12 +144,10 @@ jobs:
scons --version
# We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
- # [Workaround] SwiftShader doesn't support tessellation, so we skip Godot check about it
- name: Compilation
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- sed -i "s|ERR_FAIL_COND_V(p_rasterization_state.patch_control_points|//ERR_FAIL_COND_V(p_rasterization_state.patch_control_points|" drivers/vulkan/rendering_device_vulkan.cpp
scons tools=yes tests=yes target=debug debug_symbols=no use_asan=yes use_ubsan=yes
ls -l bin/
@@ -158,12 +156,12 @@ jobs:
run: |
./bin/godot.linuxbsd.tools.64s --test
- # Download, unzip and setup SwiftShader library [d4550ab8d3f]
+ # Download, unzip and setup SwiftShader library [4466040]
- name: Download SwiftShader
run: |
- wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader.zip
- unzip swiftshader.zip
- rm swiftshader.zip
+ wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
+ unzip swiftshader2.zip
+ rm swiftshader2.zip
curr="$(pwd)/libvk_swiftshader.so"
sed -i "s|PATH_TO_CHANGE|$curr|" vk_swiftshader_icd.json
diff --git a/misc/scripts/check_ci_log.py b/misc/scripts/check_ci_log.py
index 56c32b154c..2c75b83bd7 100755
--- a/misc/scripts/check_ci_log.py
+++ b/misc/scripts/check_ci_log.py
@@ -5,7 +5,7 @@ import sys
if len(sys.argv) < 2:
print("ERROR: You must run program with file name as argument.")
- sys.exit(1)
+ sys.exit(50)
fname = sys.argv[1]
@@ -17,7 +17,7 @@ file_contents = fileread.read()
if file_contents.find("ERROR: AddressSanitizer:") != -1:
print("FATAL ERROR: An incorrectly used memory was found.")
- sys.exit(1)
+ sys.exit(51)
# There is also possible, that program crashed with or without backtrace.
@@ -27,7 +27,7 @@ if (
or file_contents.find("Segmentation fault (core dumped)") != -1
):
print("FATAL ERROR: Godot has been crashed.")
- sys.exit(1)
+ sys.exit(52)
# Finding memory leaks in Godot is quite difficult, because we need to take into
# account leaks also in external libraries. They are usually provided without
@@ -38,7 +38,7 @@ if (
if file_contents.find("ERROR: LeakSanitizer:") != -1:
if file_contents.find("#4 0x") != -1:
print("ERROR: Memory leak was found")
- sys.exit(1)
+ sys.exit(53)
# It may happen that Godot detects leaking nodes/resources and removes them, so
# this possibility should also be handled as a potential error, even if
@@ -46,7 +46,7 @@ if file_contents.find("ERROR: LeakSanitizer:") != -1:
if file_contents.find("ObjectDB instances leaked at exit") != -1:
print("ERROR: Memory leak was found")
- sys.exit(1)
+ sys.exit(54)
# In test project may be put several assert functions which will control if
# project is executed with right parameters etc. which normally will not stop
@@ -54,7 +54,7 @@ if file_contents.find("ObjectDB instances leaked at exit") != -1:
if file_contents.find("Assertion failed") != -1:
print("ERROR: Assertion failed in project, check execution log for more info")
- sys.exit(1)
+ sys.exit(55)
# For now Godot leaks a lot of rendering stuff so for now we just show info
# about it and this needs to be re-enabled after fixing this memory leaks.
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
index a7ee0dd141..02d548bf13 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
@@ -222,7 +222,7 @@ void RendererCompositorRD::set_boot_image(const Ref<Image> &p_image, const Color
RD::get_singleton()->swap_buffers();
- RD::get_singleton()->free(texture);
+ storage->free(texture);
}
RendererCompositorRD *RendererCompositorRD::singleton = nullptr;
diff --git a/servers/rendering/renderer_rd/shader_rd.cpp b/servers/rendering/renderer_rd/shader_rd.cpp
index 1b9f54d1c8..5bb12fc168 100644
--- a/servers/rendering/renderer_rd/shader_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_rd.cpp
@@ -146,7 +146,9 @@ void ShaderRD::_clear_version(Version *p_version) {
//clear versions if they exist
if (p_version->variants) {
for (int i = 0; i < variant_defines.size(); i++) {
- RD::get_singleton()->free(p_version->variants[i]);
+ if (variants_enabled[i]) {
+ RD::get_singleton()->free(p_version->variants[i]);
+ }
}
memdelete_arr(p_version->variants);