Skip to content

Asserts on Android 9 wth vkGetPhysicalDeviceMemoryProperties2KHR #410

@alecazam

Description

@alecazam

Hitting another crash on our 1.1 Android 9 devices. This code seems to just assert on this extension, but we weren't loading the extension nor was that documented for using VMA. Also the KHR extension isn't needed on 1.2+. So this is similar to the failure with the 1.3 asserts, but there the code conditionally test.

Samsung SM-g955f w/Mali-G71 running Android 9, Android 28, Galaxy S8+, Vulkan 1.1?

For now, we'll just remove this assert. I'm assuming this was a Vulkan 1.1 part, and so it should have had the vkGetPhysicalDeviceMemoryProperties2 which the code sets vkGetPhysicalDeviceMemoryProperties2KHR to.

Code that sets up the function ptr.

#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000
    if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0))
    {
        m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2)vkGetPhysicalDeviceMemoryProperties2;
    }
#endif

This is the assert that fails at startup. I'll dig through vulkan.gpuinfo.org, since this is a player device, and not one that I have.

#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000
	// This is also asserting on 1.1, why not make these optional
	// KRH requires the caller to have loaded the extension, but 1.1 should have the function.
        // also should this be check for == instead of >=, there 
    if(m_UseExtMemoryBudget || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0))
    {
        VMA_ASSERT(m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties2KHR != VMA_NULL);
    }
#endif

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions