Adreno incompatibility with "new debuggable scratch layer"
Split off from #373 (closed).
Summary:
- The comp_renderer changes in 03c8a1a1 cause a crash on every Adreno GPU we have tested, when either running a multi-layer app (like the CTS) or forcing the use of the renderer/layer-squasher by setting
disable_fast_path
in the code totrue
.- We have tested on a fully updated Pixel 3 (Adreno 630), as well as an XR2-based device (Adreno 650), both exhibit the problem
- A Pixel 7 (Mali GPU, not adreno) works fine, as does NVIDIA, AMD, and Intel on Linux desktop.
- Just the comp_renderer changes are the problem, see #373 (comment 2414573)
- Running with validation produces some unrelated-looking validation errors about semaphores for a swapchain
- Searching for info on the messages shown brings up folks hitting a problem like this for a long time, with the only workaround being "stop using a UBO" - which is not really practical here, as I understand.
- "Compute" compositor (compute shader based layer squash and distortion) works fine.
- Workaround for release will be always use compute compositor on Android which is not ideal.
Output from the Pixel 3, since it's easier for me to get this data:
Symbolized crash dump:
********** Crash dump: **********
Build fingerprint: 'google/blueline/blueline:12/SP1A.210812.016.C2/8618562:user/release-keys'
#00 0x0000000000119d64 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (render_gfx_begin_target+124) (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
render_gfx_begin_target
/home/rylie/src/monado-android/src/xrt/compositor/render/render_gfx.c:1054:40
#01 0x000000000010bb54 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
do_layers
/home/rylie/src/monado-android/src/xrt/compositor/util/comp_render_gfx.c:606:3
#02 0x000000000010b13c /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (comp_render_gfx_dispatch+596) (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
comp_render_gfx_dispatch
/home/rylie/src/monado-android/src/xrt/compositor/util/comp_render_gfx.c:865:3
#03 0x00000000000d0cc8 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
dispatch_graphics
/home/rylie/src/monado-android/src/xrt/compositor/main/comp_renderer.c:947:2
#04 0x00000000000cfc58 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (comp_renderer_draw+728) (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
comp_renderer_draw
/home/rylie/src/monado-android/src/xrt/compositor/main/comp_renderer.c:1146:9
#05 0x00000000000cd7fc /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
compositor_layer_commit
/home/rylie/src/monado-android/src/xrt/compositor/main/comp_compositor.c:307:22
#06 0x000000000014f13c /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
xrt_comp_layer_commit
/home/rylie/src/monado-android/src/xrt/include/xrt/xrt_compositor.h:1824:9
#07 0x000000000014e470 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
multi_main_loop
/home/rylie/src/monado-android/src/xrt/compositor/multi/comp_multi_system.c:520:3
#08 0x000000000014df18 /data/app/~~5OKaycMkCZPlpceH-jHRyw==/org.freedesktop.monado.openxr_runtime.out_of_process-vkm3X87KOn-hXhokmsfbxA==/lib/arm64/libmonado-service.so (BuildId: 314ff7fe52a0898648e973be6d215859fe096704)
thread_func
/home/rylie/src/monado-android/src/xrt/compositor/multi/comp_multi_system.c:547:27
#09 0x00000000000b1910 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: ba489d4985c0cf173209da67405662f9)
#10 0x00000000000513f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: ba489d4985c0cf173209da67405662f9)
Crash dump is completed
GPU driver details:
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: ===== BEGIN DUMP OF OVERRIDDEN SETTINGS =====
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: ===== END DUMP OF OVERRIDDEN SETTINGS =====
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: QUALCOMM build : 781e7d0, I46ff5fc46f
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Build Date : 12/01/20
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Shader Compiler Version : EV031.31.04.01
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Local Branch : QPR1
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Remote Branch :
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Remote Branch :
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Reconstruct Branch :
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Build Config : C P 11.0.1 AArch64
06-05 11:17:12.558 22886 22903 I AdrenoVK-0: Driver Path : /vendor/lib64/hw/vulkan.adreno.so
06-05 11:17:12.561 22886 22903 I vk_print_device_info: INFO [vk_print_device_info] Device info:
06-05 11:17:12.561 22886 22903 I vk_print_device_info: name: Adreno (TM) 630
06-05 11:17:12.561 22886 22903 I vk_print_device_info: vendor: 0x5143
06-05 11:17:12.561 22886 22903 I vk_print_device_info: product: 0x6030001
06-05 11:17:12.561 22886 22903 I vk_print_device_info: deviceType: VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
06-05 11:17:12.561 22886 22903 I vk_print_device_info: apiVersion: 1.1.128
06-05 11:17:12.561 22886 22903 I vk_print_device_info: driverVersion: 0x801ea000
Full logcat (though without validation layer): adreno.txt
Edited by Rylie Pavlik