Skip to main content
New Participant
July 27, 2026
Question

Vulkan renderdoc crash, vkBindBufferMemory

  • July 27, 2026
  • 1 reply
  • 77 views

Hello,

I am working on a vulkan app.

I tried taking capture on an oculus quest pro using the latest v68.16 version.

I am using raw vulkan code and I think the issue is on the libVkLayer_GLES_RenderDoc.so side.

I am using vulkan memory allocator for all my allocations:

tried multiple scenarios, this is one example of callstack:

Essentially what happens, is either vkBindBufferMemory or vkBindBufferMemory2 is intercepted by the renderdoc validation layer. The validation layer tried to inspect my buffer pointer for replayability I suppose. It ends up calling CreateAddressRange which is a nullptr.

 

I think everything boils down to VK_KHR_buffer_device_address, it does not appear to be supported by either my quest pro or quest3. But even if not supported, it looks like renderdoc is using some of its feature such as vkGetBufferDeviceAddress or vkGetBufferOpaqueCaptureAddress and fails to do so.

Is there any way of avoiding renderdoc to use this extension?

 

I ran a similar app on Quest3 and ends up with another callstack/

Looks like renderdoc is intercepting my swap chain creation and force

1000257000 -> VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS

VK_KHR_buffer_device_address once more which produce VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS

Any idea?

1 reply

New Participant
July 28, 2026

Here are the callstack:

Callstack number1:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000

Cause: null pointer dereference

com.oculus.renderdoccmd.arm64-lzpo3NqqFi04d5vGvBgS9g==/lib/arm64/libVkLayer_GLES_RenderDoc.so (WrappedVulkan::CreateAddressRange(VkDevice_T*, VkBuffer_T*)+368) (BuildId: 18676e23aba7e4bd)

com.oculus.renderdoccmd.arm64-lzpo3NqqFi04d5vGvBgS9g==/lib/arm64/libVkLayer_GLES_RenderDoc.so (WrappedVulkan::TrackBufferAddress(VkDevice_T*, VkBuffer_T*)+36) (BuildId: 18676e23aba7e4bd) 

com.oculus.renderdoccmd.arm64-lzpo3NqqFi04d5vGvBgS9g==/lib/arm64/libVkLayer_GLES_RenderDoc.so (WrappedVulkan::vkBindBufferMemory(VkDevice_T*, VkBuffer_T*, VkDeviceMemory_T*, unsigned long)+660) (BuildId: 18676e23aba7e4bd)

base.apk!libForgeGame.so (offset 0xfd000) (VmaAllocator_T::BindVulkanBuffer(VkDeviceMemory_T*, unsigned long, VkBuffer_T*, void const*)+248) (BuildId: 6810dd17005e516aca0fe4a2e2708f27)

base.apk!libForgeGame.so (offset 0xfd000) (VmaAllocator_T::BindBufferMemory(VmaAllocation_T*, unsigned long, VkBuffer_T*, void const*)+136) (BuildId: 6810dd17005e516aca0fe4a2e2708f27)

base.apk!libForgeGame.so (offset 0xfd000) (vmaBindBufferMemory2+148) (BuildId: 6810dd17005e516aca0fe4a2e2708f27)

base.apk!libForgeGame.so (offset 0xfd000) (addBuffer+2076) (BuildId: 6810dd17005e516aca0fe4a2e2708f27)

and

Callstack number2:

 #00 pc 00000000017b4b28  /data/app/~~vpcmYYIOHXuqX7kAgHgAag==/com.oculus.renderdoccmd.arm64-1pzIX00m9n0bYFSGpBVhlA==/lib/arm64/libVkLayer_GLES_RenderDoc.so (Atomic::Inc32(int*)+0) (BuildId: ae192b612184ec6d) --> nullptr crash

 #01 pc 000000000091bf10  /data/app/~~vpcmYYIOHXuqX7kAgHgAag==/com.oculus.renderdoccmd.arm64-1pzIX00m9n0bYFSGpBVhlA==/lib/arm64/libVkLayer_GLES_RenderDoc.so (ResourceRecord::AddParent(ResourceRecord*)+108) (BuildId: ae192b612184ec6d)

 #02 pc 00000000010d52b4  /data/app/~~vpcmYYIOHXuqX7kAgHgAag==/com.oculus.renderdoccmd.arm64-1pzIX00m9n0bYFSGpBVhlA==/lib/arm64/libVkLayer_GLES_RenderDoc.so (WrappedVulkan::vkBindImageMemory(VkDevice_T*, VkImage_T*, VkDeviceMemory_T*, unsigned long)+1028) (BuildId: ae192b612184ec6d)

 #03 pc 00000000005584ac  /apex/com.meta.xr/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x330000) (BuildId: bd2b3ba09a87f5ee39d78ee3e426b96ed5a76a85)

 #04 pc 0000000000260590  /apex/com.meta.xr/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x330000) (BuildId: bd2b3ba09a87f5ee39d78ee3e426b96ed5a76a85)

 #05 pc 00000000002613b8  /apex/com.meta.xr/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x330000) (BuildId: bd2b3ba09a87f5ee39d78ee3e426b96ed5a76a85)

 #06 pc 000000000036c008  /apex/com.meta.xr/priv-app/VrDriver/VrDriver.apk!libvrapiimpl.so (offset 0x330000) (BuildId: bd2b3ba09a87f5ee39d78ee3e426b96ed5a76a85)

 #07 pc 00000000000d1888  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libopenxr_loader.so (offset 0x9e0000) (xrCreateSwapchain+132) (BuildId: ab3d5a8a02c21ac7acd20bb8270c493dc338ffa3)

 #08 pc 000000000ae9b2d8  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (AddOpenXRSwapchain+336)

 #09 pc 000000000ae821dc  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (OpenXRAddVKSwapchain+216)

 #10 pc 000000000ae81ebc  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (addSwapChain+276)

 #11 pc 0000000009944b88  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (addTFSwapChain()+304)

 #12 pc 0000000009944930  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (loadRenderer(TFReloadType)+36)

 #13 pc 000000000994687c  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (renderInit(android_app*, _JavaVM*, _jobject*)+812)

 #18 pc 000000000abad938  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000) (android_main+2548)

 #19 pc 000000000e2533d4  /data/app/~~oTxbrtrczA7PbwsA==/com.myapp-IWzWAPE4MUPZkBxC-HCxrg==/base.apk!libGame.so (offset 0x25c8000)