Android: слои Vulkan перестали работать на устройстве

Я разрабатываю приложение с помощью Vulkan, используя Google Pixel. Я успешно звонил vkCreateInstance и выполнял рендеринг. Однако теперь, когда я звоню vkCreateInstance, я получаю VK_ERROR_LAYER_NOT_PRESENT. Я не запрашиваю какие-либо слои, а только пытаюсь загрузить расширения VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_KHR_SURFACE_EXTENSION_NAME, VK_KHR_ANDROID_SURFACE_EXTENSION_NAME (код не изменился по сравнению с тем, что работало).

Если я загружаю другие приложения Vulkan, они сообщают о той же проблеме (например, Hardware CapsViewer для Vulkan). Также при загрузке приложений я получаю следующие сообщения:

02-02 09:14:34.603 28290 28308 D vulkan  : searching for layers in '/data/app/de.saschawillems.vulkancapsviewer-1/lib/arm'
02-02 09:14:34.603 28290 28308 D vulkan  : searching for layers in '/system/fake-libs'
02-02 09:14:34.603 28290 28308 D vulkan  : searching for layers in '/data/app/de.saschawillems.vulkancapsviewer-1/base.apk!/lib/armeabi-v7a'

В какой-то момент мне захотелось получить снимок кадра, чтобы получить более точные данные о проблеме с графикой, с которой я столкнулся в Google Pixel. Я загрузил и Nvidia Tegra Profiler, и Snapdragon Profiler. Я подозреваю, что один из этих инструментов что-то изменил на моем устройстве, заставив его перестать работать.

Существуют ли необходимые уровни Android Vulkan в системе за пределами libvulkan.so (который существует и загружается)?

Когда я запускаю adb shell getprop, эти два совпадают с vulkan:

[debug.vulkan.layer.1]: [sdp]
[debug.vulkan.profiler]: [1]

Возможно ли, что эти (или, возможно, некоторые свойства) могут привести к прекращению загрузки слоев?


person MuertoExcobito    schedule 02.02.2017    source источник


Ответы (1)


Это были свойства. Судя по всему, они добавлены Snapdragon Profiler, который некорректно завершил работу. Если я открою его снова и закрою, он установит эти свойства при выключении, и все снова будет работать.

[debug.vulkan.layer.1]: []
[debug.vulkan.profiler]: [0]
person MuertoExcobito    schedule 02.02.2017
comment
В качестве примечания, поскольку Snapdragon Profiler устанавливает их каждый раз при запуске, и они заставляют приложения Vulkan не запускаться, я не уверен, как вы должны использовать его для профилирования приложений Vulkan :). - person MuertoExcobito; 02.02.2017
comment
Вы можете просто запускать adb shell setprop debug.vulkan.layers '""' вместо того, чтобы каждый раз выключать устройство fyi - person FrickeFresh; 26.08.2018