godot icon indicating copy to clipboard operation
godot copied to clipboard

Android Editor ( Mali-G52): Editor crashes when inspecting a mesh's material in mobile renderer

Open shahriarlabib000 opened this issue 2 months ago • 27 comments

Tested versions

  • Reproducible in Godot v4.6.dev (55f88ccf6) , 4.6.dev3, 4.6.dev6
  • Not reproducible in 4.6.dev1, Godot v4.6.dev (8ff841805)

System information

Godot v4.6.dev (55f88ccf6) - Android 11 (SDK 30 build V12.5.20.0.RKUMIXM) - Single-window, 1 monitor - Vulkan (Mobile) - integrated Mali-G52 - (8 threads)

Issue description

https://github.com/user-attachments/assets/101443ca-5fe7-4ac7-ae33-3b206e9c64b5

Steps to reproduce

  1. Add a MeshInstance3D
  2. Give it a Mesh and a StandardMaterial in material override.
  3. Try to expand the material options in inspector.

Minimal reproduction project (MRP)

N/A

shahriarlabib000 avatar Nov 08 '25 04:11 shahriarlabib000

Could you also test a few earlier versions, such as v4.5.1 and v4.4, to confirm if this is not a regression?

rsubtil avatar Nov 08 '25 15:11 rsubtil

I think it's a regression. Not Reproducible in 4.6.dev1 Reproducible in 4.6.dev3

shahriarlabib000 avatar Nov 08 '25 16:11 shahriarlabib000

This issue probably needs the crash label

shahriarlabib000 avatar Nov 08 '25 16:11 shahriarlabib000

Reproducible in: Godot v4.6.dev (fb0711aba)

shahriarlabib000 avatar Nov 08 '25 20:11 shahriarlabib000

https://github.com/godotengine/godot/pull/110077 might be the cause

shahriarlabib000 avatar Nov 08 '25 21:11 shahriarlabib000

#110077 might be the cause

@clayjohn

shahriarlabib000 avatar Nov 10 '25 12:11 shahriarlabib000

I don't see why #110077 would be related. We don't use glow in the material preview.

Can you upload a stack trace so we can see where the crash is coming from? I dont have a Mali G52 device to test with

clayjohn avatar Nov 11 '25 19:11 clayjohn

Can you upload a stack trace

Sorry I don't know how to do that. Can I do that without a pc? I don't have a pc.

shahriarlabib000 avatar Nov 11 '25 19:11 shahriarlabib000

I'd like to add that it was not reproducible in Godot v4.6.dev (37ae2a70b). So I thought #110077 might be the cause

shahriarlabib000 avatar Nov 11 '25 20:11 shahriarlabib000

Can you upload a stack trace

Sorry I don't know how to do that. Can I do that without a pc? I don't have a pc.

I don't know.

@Alex2782 do you know if you can access crash logs without a PC?

clayjohn avatar Nov 11 '25 20:11 clayjohn

@Alex2782 do you know if you can access crash logs without a PC?

I don't know of any other way. I've heard it might be possible if the devices are rooted. (This makes the devices unsafe, not recommended.)


Reproducible in Godot v4.6.dev (https://github.com/godotengine/godot/commit/55f88ccf6d4b0e860d648b358161944fd8000c72) , 4.6.dev3

Closed Test - Alpha, Release: v4.6-dev3 (40600103) was released on November 5th in the Google Play Store.

testing program: https://play.google.com/apps/testing/org.godotengine.editor.v4

@shahriarlabib000 Are you able to download Godot Editor 4.6-dev3 from the Google Play Store? Afterwards, reproduce the crash and let us know so we can try to identify the device. For this, we need more details (model/brand, etc.).

Alex2782 avatar Nov 11 '25 20:11 Alex2782

Approximately 300 people are currently participating in the testing program; there has only been one crash so far for version 4.6-dev3. Identifying your device should therefore not be a problem.


Galaxy Tab S9 - Qualcomm Adreno 740, Android 15 (could be a different issue)

crashlog
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 4313 >>> org.godotengine.editor.v4 <<<

backtrace:
  #00  pc 0x0000000004bc5770  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDeviceDriverVulkan::command_queue_execute_and_present(RenderingDeviceDriver::CommandQueueID, VectorView<RenderingDeviceDriver::SemaphoreID>, VectorView<RenderingDeviceDriver::CommandBufferID>, VectorView<RenderingDeviceDriver::SemaphoreID>, RenderingDeviceDriver::FenceID, VectorView<RenderingDeviceDriver::SwapChainID>)+2913) (BuildId: 2dd109116737f0dd)
  #01  pc 0x000000000761bbb4  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::execute_chained_cmds(bool, RenderingDeviceDriver::FenceID, RenderingDeviceDriver::SemaphoreID)+6502) (BuildId: 2dd109116737f0dd)
  #02  pc 0x0000000007619f48  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::_execute_frame(bool)+6526) (BuildId: 2dd109116737f0dd)
  #03  pc 0x0000000007619b6c  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::swap_buffers(bool)+6260) (BuildId: 2dd109116737f0dd)
  #04  pc 0x00000000077c1e84  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingServerDefault::_draw(bool, double)+97) (BuildId: 2dd109116737f0dd)
  #05  pc 0x0000000003a3a154  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (Main::iteration()+4795) (BuildId: 2dd109116737f0dd)
  #06  pc 0x00000000039cf548  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (OS_Android::main_loop_iterate(bool*)+365) (BuildId: 2dd109116737f0dd)
  #07  pc 0x00000000039e6e1c  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/split_config.arm64_v8a.apk!libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+320) (BuildId: 2dd109116737f0dd)
  #08  pc 0x000000000009aba8  /system/framework/arm64/boot.oat (art_jni_trampoline+104)
  #09  pc 0x0000000000780088  /apex/com.android.art/lib64/libart.so (nterp_helper+152)
  #10  pc 0x000000000019ab48  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/base.apk (org.godotengine.godot.vulkan.VkRenderer.onVkDrawFrame)
  #11  pc 0x0000000000780f44  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #12  pc 0x000000000019b3d6  /data/app/~~ye4nJ9Zthvjtw7QxJ5rFHQ==/org.godotengine.editor.v4-tlb75cUtAKVJvz7V8Tpmmw==/base.apk (org.godotengine.godot.vulkan.VkThread.run+274)
  #13  pc 0x0000000000368774  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612)
  #14  pc 0x0000000000353f24  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+132)
  #15  pc 0x0000000000947968  /apex/com.android.art/lib64/libart.so (art::detail::ShortyTraits<(char)86>::Type art::ArtMethod::InvokeInstance<(char)86>(art::Thread*, art::ObjPtr<art::mirror::Object>, art::detail::ShortyTraits<>::Type...)+60)
  #16  pc 0x0000000000636878  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1344)
  #17  pc 0x0000000000636328  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8)
  #18  pc 0x00000000000a6ff8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+196)
  #19  pc 0x000000000009949c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68)

Alex2782 avatar Nov 11 '25 21:11 Alex2782

Ok, downloaded and reproduced on the google play version. My device is: Redmi 10 2022 Model: 21121119SG

shahriarlabib000 avatar Nov 12 '25 03:11 shahriarlabib000

Radger Redmi 10 Prime - Android 11 (SDK 30) - Version: 40600103 (4.6.0.dev.3)

crashlog

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 15892 >>> org.godotengine.editor.v4 <<<

backtrace:
  #00  pc 0x0000000004bc5770  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDeviceDriverVulkan::command_queue_execute_and_present(RenderingDeviceDriver::CommandQueueID, VectorView<RenderingDeviceDriver::SemaphoreID>, VectorView<RenderingDeviceDriver::CommandBufferID>, VectorView<RenderingDeviceDriver::SemaphoreID>, RenderingDeviceDriver::FenceID, VectorView<RenderingDeviceDriver::SwapChainID>)+2913) (BuildId: 2dd109116737f0dd)
  #01  pc 0x000000000761bbb4  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::execute_chained_cmds(bool, RenderingDeviceDriver::FenceID, RenderingDeviceDriver::SemaphoreID)+6502) (BuildId: 2dd109116737f0dd)
  #02  pc 0x0000000007619f48  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::_execute_frame(bool)+6526) (BuildId: 2dd109116737f0dd)
  #03  pc 0x000000000760cf74  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingDevice::screen_prepare_for_drawing(int)+6638) (BuildId: 2dd109116737f0dd)
  #04  pc 0x00000000078d753c  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RendererCompositorRD::blit_render_targets_to_screen(int, BlitToScreen const*, int)+40) (BuildId: 2dd109116737f0dd)
  #05  pc 0x00000000075c865c  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RendererViewport::draw_viewports(bool)+938) (BuildId: 2dd109116737f0dd)
  #06  pc 0x00000000077c1e58  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (RenderingServerDefault::_draw(bool, double)+94) (BuildId: 2dd109116737f0dd)
  #07  pc 0x0000000003a3a130  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (Main::iteration()+4791) (BuildId: 2dd109116737f0dd)
  #08  pc 0x00000000039cf548  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (OS_Android::main_loop_iterate(bool*)+365) (BuildId: 2dd109116737f0dd)
  #09  pc 0x00000000039e6e1c  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/split_config.arm64_v8a.apk!libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+320) (BuildId: 2dd109116737f0dd)
  #10  pc 0x0000000000037c90  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/oat/arm64/base.odex (art_jni_trampoline+144)
  #11  pc 0x000000000200adc0  /memfd:jit-cache (org.godotengine.godot.vulkan.VkRenderer.onVkDrawFrame+48)
  #12  pc 0x0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #13  pc 0x00000000001a97e8  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #14  pc 0x000000000031d0e0  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
  #15  pc 0x00000000003132c8  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912)
  #16  pc 0x0000000000687a10  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848)
  #17  pc 0x000000000012d814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20)
  #18  pc 0x000000000019b3d6  /data/app/~~7dslfT1EFVwi2d8K0O32GA==/org.godotengine.editor.v4-4X9vyN7G72s4-tGoomWjyw==/base.apk (org.godotengine.godot.vulkan.VkThread.run+274)
  #19  pc 0x000000000030a570  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.10721020062547966384)+264)
  #20  pc 0x0000000000676410  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+776)
  #21  pc 0x000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
  #22  pc 0x0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #23  pc 0x00000000001a97e8  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #24  pc 0x000000000055e6d4  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
  #25  pc 0x00000000005ae554  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
  #26  pc 0x00000000000ec988  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
  #27  pc 0x000000000008c190  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

The crash logs appear to be identical to those of the Galaxy Tab S9 - Qualcomm Adreno 740. https://github.com/godotengine/godot/issues/112530#issuecomment-3518794963

#00 RenderingDeviceDriverVulkan::command_queue_execute_and_present
#01 RenderingDevice::execute_chained_cmds
#02 RenderingDevice::_execute_frame
#03 RenderingDevice::screen_prepare_for_drawing
#04 RendererCompositorRD::blit_render_targets_to_screen
#05 RendererViewport::draw_viewports
#06 RenderingServerDefault::_draw

Alex2782 avatar Nov 12 '25 13:11 Alex2782

I couldn't reproduce it on my device (Samsung Tab S7, Adreno 6xx), master branch.

The preview is visible immediately, not as shown in the video.

Image

@shahriarlabib000 Please also try this version; does it crash as well?

https://github.com/Alex2782/godot/releases/tag/android_editor.v4.6-dev4-2025-11-12

  • 147 MB Download (arm64)
  • Date: Tue Nov 11 16:07:57 2025 -0600`

Alex2782 avatar Nov 12 '25 15:11 Alex2782

Please also try this version; does it crash as well?

Yes, it is reproducible.

shahriarlabib000 avatar Nov 12 '25 15:11 shahriarlabib000

I was also able to reproduce it on my Chromebook with Mali-G52. As soon as I have more time, I'll try using bisecting_regressions.

EDIT:

If I save the project before the crash, the following error appears when loading the project.

Image

Alex2782 avatar Nov 12 '25 16:11 Alex2782

I don't see why #110077 would be related. We don't use glow in the material preview.

Can you upload a stack trace so we can see where the crash is coming from? I dont have a Mali G52 device to test with

It seems this pull request is indeed responsible for this. However, with so many changes(+1512 / - 507), it will be difficult to pinpoint the exact location, and without the devices.

git bisect bad 
2e59cb41f470b313b991d3e8dfd692c03a009164 is the first bad commit
commit 2e59cb41f470b313b991d3e8dfd692c03a009164 (HEAD)
Author: Clay John 
Date:   Mon Sep 1 14:43:37 2025 -0700

    Optimize glow and tonemap gather step in the mobile renderer

22 files changed, 1512 insertions(+), 507 deletions(-)
bisect
  • good 4.6-dev2
  • bad 4.6-dev3
alex@MacM1 godot-github % git bisect start
status: waiting for both good and bad commits
alex@MacM1 godot-github % git bisect good 7864ac801
status: waiting for bad commit, 1 good commit known
alex@MacM1 godot-github % git bisect bad 9d84f3d13

Bisecting: 258 revisions left to test after this (roughly 8 steps)
[3f721d6c8ce630d60252fc847ef1123fa980ef13] Merge pull request #112019 from YeldhamDev/trim_it_just_a_little
alex@MacM1 godot-github % git bisect good         

Bisecting: 129 revisions left to test after this (roughly 7 steps)
[e4c9950f622a3a750f13b21e8757165bc25ad352] Merge pull request #103742 from RoyBerardo/random-pitch-semitones
alex@MacM1 godot-github % git bisect good

Bisecting: 65 revisions left to test after this (roughly 6 steps)
[cd7b57e6c8ca58b8d187f5106d54f4604bf02f96] Merge pull request #112243 from Giganzo/resource-picker-buttons
alex@MacM1 godot-github % git bisect bad 

Bisecting: 31 revisions left to test after this (roughly 5 steps)
[3c1e4792909fbaff63e2437f1c06029bd1aa507f] Merge pull request #110077 from clayjohn/mobile-glow
alex@MacM1 godot-github % git bisect bad

Bisecting: 15 revisions left to test after this (roughly 4 steps)
[fd672dbcfc30baaaac33c0328a7e28ad6f5f062a] Merge pull request #112227 from dsnopek/openxr-composition-layers-viewport-size-changed
alex@MacM1 godot-github % git bisect good

Bisecting: 7 revisions left to test after this (roughly 3 steps)
[72a1b5a2e5632ad352f7f7dffd748a38931d9143] Merge pull request #108607 from beicause/icon-parent-class-by-default
alex@MacM1 godot-github % git bisect good

Bisecting: 3 revisions left to test after this (roughly 2 steps)
[ae9732139a9ec9b1b6b231ea64ff4b3f66610e81] Merge pull request #109433 from KoBeWi/hastension
alex@MacM1 godot-github % git bisect good

Bisecting: 1 revision left to test after this (roughly 1 step)
[c2c7bf6b01906677a681f6042a36cd3e835ecfb6] Merge pull request #112220 from YeldhamDev/that_text_behavior_category_seemed_so_lonely
alex@MacM1 godot-github % git bisect good

Bisecting: 0 revisions left to test after this (roughly 0 steps)
[2e59cb41f470b313b991d3e8dfd692c03a009164] Optimize glow and tonemap gather step in the mobile renderer
alex@MacM1 godot-github % git bisect bad 

2e59cb41f470b313b991d3e8dfd692c03a009164 is the first bad commit
commit 2e59cb41f470b313b991d3e8dfd692c03a009164 (HEAD)
Author: Clay John 
Date:   Mon Sep 1 14:43:37 2025 -0700

    Optimize glow and tonemap gather step in the mobile renderer

Alex2782 avatar Nov 18 '25 22:11 Alex2782

On my Chromebook I also see /vendor/lib64/hw/vulkan.cheets.so in the crash logs, typical for GPU driver problems.

logcat

11-19 00:16:41.700  2831  2831 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-19 00:16:41.700  2831  2831 F DEBUG   : Build fingerprint: 'google/corsola/corsola_cheets:13/R142-16433.41.0/14390219:user/release-keys'
11-19 00:16:41.700  2831  2831 F DEBUG   : Revision: '0'
11-19 00:16:41.700  2831  2831 F DEBUG   : ABI: 'arm64'
11-19 00:16:41.700  2831  2831 F DEBUG   : Timestamp: 2025-11-19 00:16:40.339480501+0100
11-19 00:16:41.700  2831  2831 F DEBUG   : Process uptime: 53s
11-19 00:16:41.700  2831  2831 F DEBUG   : Cmdline: org.godotengine.editor.v4.debug
11-19 00:16:41.700  2831  2831 F DEBUG   : pid: 2744, tid: 2772, name: VkThread  >>> org.godotengine.editor.v4.debug <<<
11-19 00:16:41.700  2831  2831 F DEBUG   : uid: 10082
11-19 00:16:41.701  2831  2831 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
11-19 00:16:41.701  2831  2831 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
11-19 00:16:41.701  2831  2831 F DEBUG   :     x0  0000000000000000  x1  0000000000000ad4  x2  0000000000000006  x3  0000007298d30a50
11-19 00:16:41.701  2831  2831 F DEBUG   :     x4  0000000000000010  x5  0000000000000010  x6  0000000000000010  x7  7f7f7f7f7f7f7f7f
11-19 00:16:41.701  2831  2831 F DEBUG   :     x8  00000000000000f0  x9  00000073b564ca70  x10 0000000000000001  x11 00000073b56c1040
11-19 00:16:41.701  2831  2831 F DEBUG   :     x12 0000007298d2f2e0  x13 000000000000001e  x14 0000007298d305b0  x15 000000004cec4ec5
11-19 00:16:41.701  2831  2831 F DEBUG   :     x16 00000073b5731a48  x17 00000073b570a110  x18 0000007298974000  x19 00000000000000ac
11-19 00:16:41.701  2831  2831 F DEBUG   :     x20 00000000000000b2  x21 0000000000000ab8  x22 0000000000000ad4  x23 00000000ffffffff
11-19 00:16:41.701  2831  2831 F DEBUG   :     x24 0000000000000030  x25 0000000000376ce4  x26 0000007298d31038  x27 0000000000000001
11-19 00:16:41.701  2831  2831 F DEBUG   :     x28 0000000000000030  x29 0000007298d30ad0
11-19 00:16:41.701  2831  2831 F DEBUG   :     lr  00000073b56b1a14  sp  0000007298d30a30  pc  00000073b56b1a44  pst 0000000000001000
11-19 00:16:41.701  2831  2831 F DEBUG   : backtrace:
11-19 00:16:41.701  2831  2831 F DEBUG   :       #00 pc 000000000008ca44  /apex/com.android.runtime/lib64/bionic/libc.so (abort+180) (BuildId: ea7c847a5b363db102820f97a134c93c)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #01 pc 00000000000afa1c  /vendor/lib64/hw/vulkan.cheets.so
11-19 00:16:41.701  2831  2831 F DEBUG   :       #02 pc 00000000000afc24  /vendor/lib64/hw/vulkan.cheets.so
11-19 00:16:41.701  2831  2831 F DEBUG   :       #03 pc 00000000000a4810  /vendor/lib64/hw/vulkan.cheets.so
11-19 00:16:41.701  2831  2831 F DEBUG   :       #04 pc 0000000004ba831c  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #05 pc 00000000075fb9b4  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #06 pc 00000000075fab08  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #07 pc 0000000007698c58  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #08 pc 0000000003a18e68  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #09 pc 00000000039ae318  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #10 pc 00000000039c5bec  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/base.apk!libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+436) (BuildId: ec8dd4931691bb31)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #11 pc 0000000000449554  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #12 pc 0000000000209398  /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #13 pc 0000000000aeaf30  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/oat/arm64/base.vdex (org.godotengine.godot.vulkan.VkRenderer.onVkDrawFrame+0)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #14 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #15 pc 0000000000aeb7be  /data/app/~~BXHl9015s0A7jvf33z5KXA==/org.godotengine.editor.v4.debug-NXIZdEj7vuACn16WBdkdLA==/oat/arm64/base.vdex (org.godotengine.godot.vulkan.VkThread.run+274)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #16 pc 000000000043fb6c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #17 pc 000000000046fedc  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #18 pc 000000000046fbc4  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+388) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #19 pc 0000000000627fe4  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1668) (BuildId: 44ee0868f426f44cfb44eaeba721c457)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #20 pc 00000000000fb540  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: ea7c847a5b363db102820f97a134c93c)
11-19 00:16:41.701  2831  2831 F DEBUG   :       #21 pc 000000000008e270  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: ea7c847a5b363db102820f97a134c93c)

Alex2782 avatar Nov 18 '25 23:11 Alex2782

I'm trying to narrow it down somehow and create an MRP if possible.

Godot Editor also crashes on my Chromebook when I open the Mesh preview. (Even without Material override)

Screenshot - Mesh Preview Image

I was unable to reproduce a crash using a simple 3D scene.

Screenshot - 3D Scene with SubViewport Image

Alex2782 avatar Nov 19 '25 18:11 Alex2782

Crash occurs as soon as MSAA_4X is used. Should we disable/prevent it on GPUs that are causing problems?

I can recall even more issue reports that are at least a year old, related to MSAA.

It is forced here in the editor.

https://github.com/godotengine/godot/blob/7716a4cba0e4d96e170488bd4f332d22395f7bdb/editor/scene/3d/mesh_editor_plugin.cpp#L111

https://github.com/godotengine/godot/blob/7716a4cba0e4d96e170488bd4f332d22395f7bdb/editor/scene/material_editor_plugin.cpp#L288


MRP

test-sub-viewport.zip

In my test project, it is activated after 3 seconds. I'll first run it on the Firebase Test Lab to check if more devices are affected.


func _on_timer_timeout() -> void:
	var v_rid = %SubViewport.get_viewport_rid()
	RenderingServer.viewport_set_msaa_3d(v_rid, RenderingServer.VIEWPORT_MSAA_4X)


EDIT:

Firebase Test Lab doesn't seem to be working properly at the moment. I've started tests on 27 devices, mostly Mali GPUs, but the tests all stopped far too early. On some devices, I only see the Godot logo or the 3D scene for a maximum of one second. The log files don't show any crashes, only that the app pauses or minimizes.

Alex2782 avatar Nov 19 '25 19:11 Alex2782

@Alex2782 Can you try enabling Vulkan Validation Layers and check if you get any errors? I suspect there is a driver bug here. If there aren't any VLL errors, we can ask ARM for help

clayjohn avatar Nov 20 '25 06:11 clayjohn

Vulkan Validation Layers

Tested with 4.5 and master branch, each on a Chromebook (Mali GPU) and Samsung Tab S7 (Adreno GPU), for comparison.

My Samsung Tab S7 is also displaying many ERROR: Vulkan Debug Report messages. The error messages look identical to me in the 4.5 and master versions.


Crash: master branch - Mali-G52

11-20 19:15:16.882  3636  3671 I godot   : Godot Engine v4.6.dev.custom_build.8deb22182 (2025-11-20 17:10:58 UTC) - https://godotengine.org
11-20 19:15:16.990  3636  3671 I godot   : Vulkan Debug Report: object - -5476376603754867712
11-20 19:15:16.990  3636  3671 I godot   : vkCreateInstance(): Khronos Validation Layer Active:
11-20 19:15:16.990  3636  3671 I godot   :     Current Enables: None.
11-20 19:15:16.990  3636  3671 I godot   :     Current Disables: None.
11-20 19:15:16.990  3636  3671 I godot   : 
11-20 19:15:17.014  3636  3671 I godot   : Vulkan Debug Report: object - 0
11-20 19:15:17.014  3636  3671 I godot   : vkCreateDevice(): Cannot open shader validation cache at /tmp/shader_validation_cache-10083.bin for reading (it may not exist yet)
11-20 19:15:17.023  3636  3671 I godot   : Vulkan 1.3.269 - Forward Mobile - Using Device #0: ARM - Virtio-GPU Venus (Mali-G52)
11-20 19:15:19.163  3636  3671 I godot   : 
11-20 19:15:20.278  3636  3671 E godot   : ERROR: Vulkan Debug Report: object - 1234751557993571
11-20 19:15:20.278  3636  3671 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4630000000463) is being signaled by VkQueue 0xb400007e7512d200, but it may still be in use by VkSwapchainKHR 0x4470000000447.
11-20 19:15:20.278  3636  3671 E godot   : Most recently acquired image indices: [0], 1, 2.
11-20 19:15:20.278  3636  3671 E godot   : (Brackets mark the last use of VkSemaphore 0x4630000000463 in a presentation operation.)
11-20 19:15:20.278  3636  3671 E godot   : Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x4630000000463 may still be in use and cannot be safely reused with image index 2.
11-20 19:15:20.278  3636  3671 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 19:15:20.278  3636  3671 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 19:15:20.278  3636  3671 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 19:15:20.278  3636  3671 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member of
11-20 19:15:20.278  3636  3671 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:15:20.332  3636  3671 E godot   : ERROR: Vulkan Debug Report: object - 1238050092876902
11-20 19:15:20.332  3636  3671 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4660000000466) is being signaled by VkQueue 0xb400007e7512d200, but it may still be in use by VkSwapchainKHR 0x4470000000447.
11-20 19:15:20.332  3636  3671 E godot   : Most recently acquired image indices: 0, [1], 2, 3.
11-20 19:15:20.332  3636  3671 E godot   : (Brackets mark the last use of VkSemaphore 0x4660000000466 in a presentation operation.)
11-20 19:15:20.332  3636  3671 E godot   : Swapchain image 1 was presented but was not re-acquired, so VkSemaphore 0x4660000000466 may still be in use and cannot be safely reused with image index 3.
11-20 19:15:20.332  3636  3671 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 19:15:20.332  3636  3671 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 19:15:20.332  3636  3671 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 19:15:20.332  3636  3671 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member
11-20 19:15:20.332  3636  3671 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)

No Crash: master branch - Adreno (TM) 650

11-20 19:03:00.282  8647  8774 I godot   : Godot Engine v4.6.dev.custom_build.8deb22182 (2025-11-20 17:10:58 UTC) - https://godotengine.org
11-20 19:03:00.406  8647  8774 I godot   : Vulkan Debug Report: object - -5476376612494475760
11-20 19:03:00.406  8647  8774 I godot   : vkCreateInstance(): Khronos Validation Layer Active:
11-20 19:03:00.406  8647  8774 I godot   :     Current Enables: None.
11-20 19:03:00.406  8647  8774 I godot   :     Current Disables: None.
11-20 19:03:00.406  8647  8774 I godot   : 
11-20 19:03:00.411  8647  8774 I godot   : Vulkan Debug Report: object - 0
11-20 19:03:00.411  8647  8774 I godot   : vkCreateDevice(): Cannot open shader validation cache at /tmp/shader_validation_cache-10779.bin for reading (it may not exist yet)
11-20 19:03:00.413  8647  8774 I godot   : Vulkan 1.1.128 - Forward Mobile - Using Device #0: Qualcomm - Adreno (TM) 650
11-20 19:03:01.930  8647  8774 I godot   : 
11-20 19:03:02.828  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.828  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5610000000561, Set 1, Binding 4, Index 0] has VkSampler 0x5460000000546 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.828  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.828  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.829  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.829  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5850000000585, Set 1, Binding 4, Index 0] has VkSampler 0x56e000000056e which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.829  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.829  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.832  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684160
11-20 19:03:02.832  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5610000000561, Set 1, Binding 4, Index 0] has VkSampler 0x5460000000546 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.832  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.832  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.832  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684160
11-20 19:03:02.832  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5850000000585, Set 1, Binding 4, Index 0] has VkSampler 0x56e000000056e which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.832  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.832  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.833  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - 1249045209154672
11-20 19:03:02.833  8647  8774 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4700000000470) is being signaled by VkQueue 0xb400007c67d33250, but it may still be in use by VkSwapchainKHR 0x4540000000454.
11-20 19:03:02.833  8647  8774 E godot   : Most recently acquired image indices: [0], 1, 2.
11-20 19:03:02.833  8647  8774 E godot   : (Brackets mark the last use of VkSemaphore 0x4700000000470 in a presentation operation.)
11-20 19:03:02.833  8647  8774 E godot   : Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x4700000000470 may still be in use and cannot be safely reused with image index 2.
11-20 19:03:02.833  8647  8774 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 19:03:02.833  8647  8774 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 19:03:02.833  8647  8774 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 19:03:02.833  8647  8774 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member of
11-20 19:03:02.833  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.851  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.851  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5610000000561, Set 1, Binding 4, Index 0] has VkSampler 0x5460000000546 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.851  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.851  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.851  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.851  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5850000000585, Set 1, Binding 4, Index 0] has VkSampler 0x56e000000056e which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.851  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.851  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.852  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - 1252343744038003
11-20 19:03:02.852  8647  8774 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4730000000473) is being signaled by VkQueue 0xb400007c67d33250, but it may still be in use by VkSwapchainKHR 0x4540000000454.
11-20 19:03:02.852  8647  8774 E godot   : Most recently acquired image indices: 0, [1], 2, 3.
11-20 19:03:02.852  8647  8774 E godot   : (Brackets mark the last use of VkSemaphore 0x4730000000473 in a presentation operation.)
11-20 19:03:02.852  8647  8774 E godot   : Swapchain image 1 was presented but was not re-acquired, so VkSemaphore 0x4730000000473 may still be in use and cannot be safely reused with image index 3.
11-20 19:03:02.852  8647  8774 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 19:03:02.852  8647  8774 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 19:03:02.852  8647  8774 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 19:03:02.852  8647  8774 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member
11-20 19:03:02.852  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.853  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684160
11-20 19:03:02.853  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5610000000561, Set 1, Binding 4, Index 0] has VkSampler 0x5460000000546 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.853  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.853  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.854  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684160
11-20 19:03:02.854  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5850000000585, Set 1, Binding 4, Index 0] has VkSampler 0x56e000000056e which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.854  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.854  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.874  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.874  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5610000000561, Set 1, Binding 4, Index 0] has VkSampler 0x5460000000546 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.874  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 19:03:02.874  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:02.874  8647  8774 E godot   : ERROR: Vulkan Debug Report: object - -5476376612564684112
11-20 19:03:02.874  8647  8774 E godot   : (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it).
11-20 19:03:02.874  8647  8774 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5850000000585, Set 1, Binding 4, Index 0] has VkSampler 0x56e000000056e which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 19:03:02.874  8647  8774 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawInde
11-20 19:03:02.874  8647  8774 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 19:03:43.651  8647  8774 E godot   : ERROR: QueuePresentKHR failed with error: VK_ERROR_SURFACE_LOST_KHR
11-20 19:03:43.651  8647  8774 E godot   :    at: command_queue_execute_and_present (drivers/vulkan/rendering_device_driver_vulkan.cpp:3060)



No Crash: v4.5.2.rc - Mali-G52

--------- beginning of main
11-20 18:33:25.605  3116  3195 I godot   : Godot Engine v4.5.2.rc.custom_build.44c3f6a55 (2025-11-19 11:43:58 UTC) - https://godotengine.org
11-20 18:33:25.739  3116  3195 I godot   : Vulkan Debug Report: object - -5476376603755311360
11-20 18:33:25.739  3116  3195 I godot   : vkCreateInstance(): Khronos Validation Layer Active:
11-20 18:33:25.739  3116  3195 I godot   :     Current Enables: None.
11-20 18:33:25.739  3116  3195 I godot   :     Current Disables: None.
11-20 18:33:25.739  3116  3195 I godot   : 
11-20 18:33:25.763  3116  3195 I godot   : Vulkan Debug Report: object - 0
11-20 18:33:25.763  3116  3195 I godot   : vkCreateDevice(): Cannot open shader validation cache at /tmp/shader_validation_cache-10083.bin for reading (it may not exist yet)
11-20 18:33:25.770  3116  3195 I godot   : Vulkan 1.3.269 - Forward Mobile - Using Device #0: ARM - Virtio-GPU Venus (Mali-G52)
11-20 18:33:28.085  3116  3195 I godot   : 
11-20 18:33:30.544  3116  3195 E godot   : ERROR: Vulkan Debug Report: object - 1238050092876902
11-20 18:33:30.544  3116  3195 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4660000000466) is being signaled by VkQueue 0xb400007e74fcb400, but it may still be in use by VkSwapchainKHR 0x44a000000044a.
11-20 18:33:30.544  3116  3195 E godot   : Most recently acquired image indices: [0], 1, 2.
11-20 18:33:30.544  3116  3195 E godot   : (Brackets mark the last use of VkSemaphore 0x4660000000466 in a presentation operation.)
11-20 18:33:30.544  3116  3195 E godot   : Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x4660000000466 may still be in use and cannot be safely reused with image index 2.
11-20 18:33:30.544  3116  3195 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 18:33:30.544  3116  3195 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 18:33:30.544  3116  3195 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 18:33:30.544  3116  3195 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member of
11-20 18:33:30.544  3116  3195 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:33:30.563  3116  3195 E godot   : ERROR: Vulkan Debug Report: object - 1241348627760233
11-20 18:33:30.563  3116  3195 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4690000000469) is being signaled by VkQueue 0xb400007e74fcb400, but it may still be in use by VkSwapchainKHR 0x44a000000044a.
11-20 18:33:30.563  3116  3195 E godot   : Most recently acquired image indices: 0, [1], 2, 3.
11-20 18:33:30.563  3116  3195 E godot   : (Brackets mark the last use of VkSemaphore 0x4690000000469 in a presentation operation.)
11-20 18:33:30.563  3116  3195 E godot   : Swapchain image 1 was presented but was not re-acquired, so VkSemaphore 0x4690000000469 may still be in use and cannot be safely reused with image index 3.
11-20 18:33:30.563  3116  3195 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 18:33:30.563  3116  3195 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 18:33:30.563  3116  3195 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 18:33:30.563  3116  3195 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member
11-20 18:33:30.563  3116  3195 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:33:45.488  3116  3195 E godot   : ERROR: QueuePresentKHR failed with error: VK_ERROR_SURFACE_LOST_KHR
11-20 18:33:45.488  3116  3195 E godot   :    at: command_queue_execute_and_present (drivers/vulkan/rendering_device_driver_vulkan.cpp:2842)
11-20 18:33:45.787  3116  3195 I godot   : Vulkan Debug Report: object - 0
11-20 18:33:45.787  3116  3195 I godot   : vkDestroyDevice(): Cannot open shader validation cache at /tmp/shader_validation_cache-10083.bin for writing
11-20 18:33:45.802  3116  3195 E godot   : ERROR: Vulkan Debug Report: object - -5476376603755311360
11-20 18:33:45.802  3116  3195 E godot   : vkDestroyInstance(): Object Tracking - For VkInstance 0xb400007e74e78f00, VkSurfaceKHR 0x20000000002 has not been destroyed.
11-20 18:33:45.802  3116  3195 E godot   : The Vulkan spec states: All child objects that were created with instance or with a VkPhysicalDevice retrieved from it, and that can be destroyed or freed, must have been destroyed or freed prior to destroying instance (https://docs.vulkan.org/spec/latest/chapters/initialization.html#VUID-vkDestroyInstance-instance-00629)
11-20 18:33:45.802  3116  3195 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)


No Crash: v4.5.2.rc - Adreno (TM) 650

--------- beginning of main
11-20 18:08:05.186 31584 31672 I godot   : Godot Engine v4.5.2.rc.custom_build.44c3f6a55 (2025-11-19 11:43:58 UTC) - https://godotengine.org
11-20 18:08:05.462 31584 31672 I godot   : Vulkan Debug Report: object - -5476376610155983040
11-20 18:08:05.462 31584 31672 I godot   : vkCreateInstance(): Khronos Validation Layer Active:
11-20 18:08:05.462 31584 31672 I godot   :     Current Enables: None.
11-20 18:08:05.462 31584 31672 I godot   :     Current Disables: None.
11-20 18:08:05.462 31584 31672 I godot   : 
11-20 18:08:05.485 31584 31672 I godot   : Vulkan Debug Report: object - 0
11-20 18:08:05.485 31584 31672 I godot   : vkCreateDevice(): Cannot open shader validation cache at /tmp/shader_validation_cache-10779.bin for reading (it may not exist yet)
11-20 18:08:05.492 31584 31672 I godot   : Vulkan 1.1.128 - Forward Mobile - Using Device #0: Qualcomm - Adreno (TM) 650
11-20 18:08:07.461 31584 31672 I godot   : 
11-20 18:08:08.530 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.530 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5650000000565, Set 1, Binding 4, Index 0] has VkSampler 0x54b000000054b which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.530 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.530 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.530 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.530 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5870000000587, Set 1, Binding 4, Index 0] has VkSampler 0x5730000000573 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.530 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.530 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.534 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376610155983536
11-20 18:08:08.534 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5650000000565, Set 1, Binding 4, Index 0] has VkSampler 0x54b000000054b which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.534 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.534 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.534 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376610155983536
11-20 18:08:08.534 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5870000000587, Set 1, Binding 4, Index 0] has VkSampler 0x5730000000573 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.534 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.534 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.535 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - 1254542767293557
11-20 18:08:08.535 31584 31672 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4750000000475) is being signaled by VkQueue 0xb400007d128a3c20, but it may still be in use by VkSwapchainKHR 0x4590000000459.
11-20 18:08:08.535 31584 31672 E godot   : Most recently acquired image indices: [0], 1, 2.
11-20 18:08:08.535 31584 31672 E godot   : (Brackets mark the last use of VkSemaphore 0x4750000000475 in a presentation operation.)
11-20 18:08:08.535 31584 31672 E godot   : Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x4750000000475 may still be in use and cannot be safely reused with image index 2.
11-20 18:08:08.535 31584 31672 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 18:08:08.535 31584 31672 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 18:08:08.535 31584 31672 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 18:08:08.535 31584 31672 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member of
11-20 18:08:08.535 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.562 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.562 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5650000000565, Set 1, Binding 4, Index 0] has VkSampler 0x54b000000054b which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.562 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.562 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.562 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.562 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5870000000587, Set 1, Binding 4, Index 0] has VkSampler 0x5730000000573 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.562 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.562 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.563 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - 1257841302176888
11-20 18:08:08.563 31584 31672 E godot   : vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x4780000000478) is being signaled by VkQueue 0xb400007d128a3c20, but it may still be in use by VkSwapchainKHR 0x4590000000459.
11-20 18:08:08.563 31584 31672 E godot   : Most recently acquired image indices: 0, [1], 2, 3.
11-20 18:08:08.563 31584 31672 E godot   : (Brackets mark the last use of VkSemaphore 0x4780000000478 in a presentation operation.)
11-20 18:08:08.563 31584 31672 E godot   : Swapchain image 1 was presented but was not re-acquired, so VkSemaphore 0x4780000000478 may still be in use and cannot be safely reused with image index 3.
11-20 18:08:08.563 31584 31672 E godot   : Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches:
11-20 18:08:08.563 31584 31672 E godot   :    a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
11-20 18:08:08.563 31584 31672 E godot   :    b) Consider the VK_KHR_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
11-20 18:08:08.563 31584 31672 E godot   : The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member
11-20 18:08:08.563 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.579 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376610155983536
11-20 18:08:08.579 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5650000000565, Set 1, Binding 4, Index 0] has VkSampler 0x54b000000054b which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.579 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.579 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.579 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376610155983536
11-20 18:08:08.579 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5870000000587, Set 1, Binding 4, Index 0] has VkSampler 0x5730000000573 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.579 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.579 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.589 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.589 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5650000000565, Set 1, Binding 4, Index 0] has VkSampler 0x54b000000054b which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.589 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-magFilter-04553)
11-20 18:08:08.589 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:08.590 31584 31672 E godot   : ERROR: Vulkan Debug Report: object - -5476376612226548480
11-20 18:08:08.590 31584 31672 E godot   : (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it).
11-20 18:08:08.590 31584 31672 E godot   : vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x5870000000587, Set 1, Binding 4, Index 0] has VkSampler 0x5730000000573 which is set to use VK_FILTER_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0x380000000038) format (VK_FORMAT_D16_UNORM) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features.
11-20 18:08:08.590 31584 31672 E godot   : The Vulkan spec states: If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawInde
11-20 18:08:08.590 31584 31672 E godot   :    at: _debug_report_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:665)
11-20 18:08:19.639 31584 31672 E godot   : ERROR: QueuePresentKHR failed with error: VK_ERROR_SURFACE_LOST_KHR
11-20 18:08:19.639 31584 31672 E godot   :    at: command_queue_execute_and_present (drivers/vulkan/rendering_device_driver_vulkan.cpp:2842)



I checked the logs without the -s godot filter, and the Vulkan Debug Report error messages are only displayed on my Chromebook at startup. For 3 seconds I see nothing suspicious, then MSAA_4X is activated (via a Timer) and the app crashes.

crash details

--------- beginning of crash
11-20 19:15:23.622  3636  3671 F libc    : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 3671 (VkThread), pid 3636 (testsubviewport)
11-20 19:15:23.700  3700  3700 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
11-20 19:15:23.707   246   246 I tombstoned: received crash request for pid 3671
11-20 19:15:23.711  3700  3700 I crash_dump64: performing dump of process 3636 (target tid = 3671)
11-20 19:15:24.682  3700  3700 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-20 19:15:24.682  3700  3700 F DEBUG   : Build fingerprint: 'google/corsola/corsola_cheets:13/R142-16433.41.0/14390219:user/release-keys'
11-20 19:15:24.682  3700  3700 F DEBUG   : Revision: '0'
11-20 19:15:24.682  3700  3700 F DEBUG   : ABI: 'arm64'
11-20 19:15:24.682  3700  3700 F DEBUG   : Timestamp: 2025-11-20 19:15:23.718893389+0100
11-20 19:15:24.682  3700  3700 F DEBUG   : Process uptime: 10s
11-20 19:15:24.682  3700  3700 F DEBUG   : Cmdline: com.example.testsubviewport
11-20 19:15:24.682  3700  3700 F DEBUG   : pid: 3636, tid: 3671, name: VkThread  >>> com.example.testsubviewport <<<
11-20 19:15:24.683  3700  3700 F DEBUG   : uid: 10083
11-20 19:15:24.683  3700  3700 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
11-20 19:15:24.683  3700  3700 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
11-20 19:15:24.683  3700  3700 F DEBUG   :     x0  0000000000000000  x1  0000000000000e57  x2  0000000000000006  x3  0000007e733fa2c0
11-20 19:15:24.683  3700  3700 F DEBUG   :     x4  0000000000000010  x5  0000000000000010  x6  0000000000000010  x7  7f7f7f7f7f7f7f7f
11-20 19:15:24.683  3700  3700 F DEBUG   :     x8  00000000000000f0  x9  0000007f8dc76a70  x10 0000000000000001  x11 0000007f8dceb040
11-20 19:15:24.683  3700  3700 F DEBUG   :     x12 0000007e733f8b50  x13 000000000000001e  x14 0000007e733f9e20  x15 000000004cec4ec5
11-20 19:15:24.683  3700  3700 F DEBUG   :     x16 0000007f8dd5ba48  x17 0000007f8dd34110  x18 0000007e731d4000  x19 00000000000000ac
11-20 19:15:24.683  3700  3700 F DEBUG   :     x20 00000000000000b2  x21 0000000000000e34  x22 0000000000000e57  x23 00000000ffffffff
11-20 19:15:24.683  3700  3700 F DEBUG   :     x24 0000000000000070  x25 00000000001a78a8  x26 0000007e733faa80  x27 0000000000000001
11-20 19:15:24.683  3700  3700 F DEBUG   :     x28 0000000000000070  x29 0000007e733fa340
11-20 19:15:24.683  3700  3700 F DEBUG   :     lr  0000007f8dcdba14  sp  0000007e733fa2a0  pc  0000007f8dcdba44  pst 0000000000001000
11-20 19:15:24.683  3700  3700 F DEBUG   : backtrace:
11-20 19:15:24.683  3700  3700 F DEBUG   :       #00 pc 000000000008ca44  /apex/com.android.runtime/lib64/bionic/libc.so (abort+180) (BuildId: ea7c847a5b363db102820f97a134c93c)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #01 pc 00000000000afa1c  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #02 pc 00000000000afc24  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #03 pc 00000000000a7810  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #04 pc 00000000000a2cb0  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #05 pc 00000000000a1818  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #06 pc 00000000000e0954  /vendor/lib64/hw/vulkan.cheets.so
11-20 19:15:24.683  3700  3700 F DEBUG   :       #07 pc 0000000000027044  /system/lib64/libvulkan.so (vulkan::driver::QueuePresentKHR(VkQueue_T*, VkPresentInfoKHR const*)+404) (BuildId: 2acc69c2738001649f1304215d8fe9f6)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #08 pc 00000000009cd1d4  /data/app/~~mFZSSvsuShrQt2NVP7uu4Q==/com.example.testsubviewport-dkmAFa8T8Ww8tlCA7Cr3hw==/lib/arm64/libVkLayer_khronos_validation.so (BuildId: 12f4f633ba11445871babee107eab72a6e881a5a)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #09 pc 00000000009c1ff4  /data/app/~~mFZSSvsuShrQt2NVP7uu4Q==/com.example.testsubviewport-dkmAFa8T8Ww8tlCA7Cr3hw==/lib/arm64/libVkLayer_khronos_validation.so (BuildId: 12f4f633ba11445871babee107eab72a6e881a5a)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #10 pc 0000000004582418  /data/app/~~mFZSSvsuShrQt2NVP7uu4Q==/com.example.testsubviewport-dkmAFa8T8Ww8tlCA7Cr3hw==/lib/arm64/libgodot_android.so (swappy::SwappyVkFallback::doQueuePresent(VkQueue_T*, unsigned int, VkPresentInfoKHR const*)+304) (BuildId: 800926570add5975)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #11 pc 0000000004575418  /data/app/~~mFZSSvsuShrQt2NVP7uu4Q==/com.example.testsubviewport-dkmAFa8T8Ww8tlCA7Cr3hw==/lib/arm64/libgodot_android.so (SwappyVk_queuePresent+144) (BuildId: 800926570add5975)
11-20 19:15:24.683  3700  3700 F DEBUG   :       #12 pc 000000000204be54  /data/app/~~mFZSSvsuShrQt2NVP7uu4Q==/com.example.testsubviewport-dkmAFa8T8Ww8tlCA7Cr3hw==/lib/arm64/libgodot_android.so (BuildId: 800926570add5975)

I also see libVkLayer_khronos_validation.so in the crash logs; it looks to me like nothing was detected.

Alex2782 avatar Nov 20 '25 18:11 Alex2782

A few days ago, I was able to test on Firebase Test Lab on an Android 13 Mali-G52 device without any crashes. It's possible this driver bug only exists up to Android 11. My Chromebook also runs Android 13, but probably has older drivers.


If there aren't any VLL errors, we can ask ARM for help

I was able to narrow it down further now: vec4 color = subpassLoad(input_color);, in the file tonemap_mobile.glsl. When I switch to SAMPLER_FORMAT, everything seems to be OK again, even when MSAA is activated.

Should I try to find a workaround that avoids UNIFORM_TYPE_INPUT_ATTACHMENT on devices where it is broken?

EDIT: Simply setting this variable to false also works: bool using_subpass_post_process = false; src We can link workaround stuff to that.

details / code

#ifdef SUBPASS
//layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput input_color;
layout(set = 0, binding = 0) uniform SAMPLER_FORMAT input_color;
#else

.....

void main() {
#ifdef SUBPASS
	// SUBPASS and USE_MULTIVIEW can be combined but in that case we're already reading from the correct layer
#ifdef USE_MULTIVIEW
	// In order to ensure the `SpvCapabilityMultiView` is included in the SPIR-V capabilities, gl_ViewIndex must
	// be read in the shader. Without this, transpilation to Metal fails to include the multi-view variant.
	uint vi = ViewIndex;
#endif
	//vec4 color = subpassLoad(input_color);
	//vec4 color = vec4(1.0f, 0.5f, 0.5f, 0.5f);
	vec4 color = textureLod(input_color, uv_interp, 0.0f);

CPP File

	//RD::Uniform u_source_color;
	//u_source_color.uniform_type = RD::UNIFORM_TYPE_INPUT_ATTACHMENT;
	//u_source_color.binding = 0;
	//u_source_color.append_id(p_source_color);

	RD::Uniform u_source_color(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector<RID>({ default_sampler, p_source_color }));

Alex2782 avatar Nov 25 '25 23:11 Alex2782

Its possible that https://github.com/godotengine/godot/pull/113467 might fix this issue.

Can you both test with dev 6?

clayjohn avatar Dec 06 '25 03:12 clayjohn

Reproducible in Godot v4.6.dev6

shahriarlabib000 avatar Dec 06 '25 04:12 shahriarlabib000

Reproducible in Godot v4.6.dev6

Thank you for checking!

I was able to narrow it down further now: vec4 color = subpassLoad(input_color);, in the file tonemap_mobile.glsl. When I switch to SAMPLER_FORMAT, everything seems to be OK again, even when MSAA is activated.

@Alex2782 What makes this so strange is that this part of the code is the same before and after https://github.com/godotengine/godot/pull/110077. I suspect we are triggering a driver bug that has to do with timing. The only change that https://github.com/godotengine/godot/pull/110077 made was to conditionally compile out code after doing the subpass load based on spec constants. But the path on the CPU is the same (i.e. how the framebuffer is set up, how the textures get bound, etc.). The only difference is that there is now less code running after the subpass load than there was before. But it is possible that something about the old code led the Mali-G52 to fallback to the non subpass path which is apparently less error prone than the subpass path.

Mali GPUs are very sensitive and many factors can lead to them falling back to a non-subpass path.

clayjohn avatar Dec 08 '25 15:12 clayjohn

What's the driver version reported for the device that's crashing?

Also, if you have the Chromebook device in developer mode do you get anything in dmesg indicating a GPU fault?

solidpixel avatar Dec 08 '25 23:12 solidpixel

What's the driver version reported for the device that's crashing?

Cc @Alex2782

clayjohn avatar Dec 08 '25 23:12 clayjohn

@shahriarlabib000 https://github.com/Alex2782/godot/releases/tag/android_editor.v4.6-dev6-2025-12-10

Please test the android_editor-android-debug.apk from there. Start a project; from the output window, we need the deviceID and driverVersion (see screenshot).


What's the driver version reported for the device that's crashing?

In my PR (draft) I have only this so far:

	// Workaround for the ARM Mali-G52 family of devices. (GH-112530)
	r_device.workarounds.avoid_subpass_post_process =
			r_device.vendor == Vendor::VENDOR_ARM &&
			p_device_properties.deviceID == 0x74021000 && // Virtio-GPU Venus (Mali-G52)
			p_device_properties.driverVersion == VK_MAKE_API_VERSION(0, 24, 2, 8);

EDIT: I have removed driverVersion for now; it seems every version is affected.


Also, if you have the Chromebook device in developer mode do you get anything in dmesg indicating a GPU fault?

[    0.137820] mtk-socinfo mtk-socinfo.0.auto: MediaTek Kompanio 520 (MT8186) SoC detected.
[  742.459297] mali 13040000.mali: error detected from slot 0, job status 0x00000058 (DATA_INVALID_FAULT)
[  742.459432] mali 13040000.mali: t6xx: GPU fault 0x58 from job slot 0

Alex2782 avatar Dec 09 '25 23:12 Alex2782