I’m still very new to Vulkan, and only just starting to navigate what’s possible and how.
I’m trying to explore usage of vkAcquireFullScreenExclusiveModeEXT
Outside of what’s necessary to actually use this functionality, it seems the endpoints themselves don’t exist in AMD’s drivers.
Linking against vulkan-1.lib at compile time results in
error LNK2019: unresolved external symbol vkGetPhysicalDeviceSurfacePresentModes2EXT referenced in function "private: struct VulkanWrapper::SwapChainSupportDetails __cdecl VulkanWrapper::querySwapChainSupport(struct VkPhysicalDevice_T *)" (?querySwapChainSupport@VulkanWrapper@@AEAA?AUSwapChainSupportDetails@1@PEAUVkPhysicalDevice_T@@@Z) error LNK2019: unresolved external symbol vkAcquireFullScreenExclusiveModeEXT referenced in function "private: enum VkResult __cdecl VulkanWrapper::createSwapChain(void)" (?createSwapChain@VulkanWrapper@@AEAA?AW4VkResult@@XZ)
Further to that, when I’m linking indirectly via LoadLibrary() - I’m able to obtain a valid proc address for both of these functions using vkGetInstanceProcAddr()
Regardless of seemingly having a valid proc addres…
vkAcquireFullScreenExclusiveModeEXT fails at runtime:
Exception thrown at 0x0000000000000000 in Offworld.exe: 0xC0000005: Access violation executing location 0x0000000000000000.
I can confirm I have a valid device handle and swapchain created, but that fact that I’m unable to link against these functions at compile time is a bit of a red flag.
Note that the Vulkan Configuration Tool reports:
Vulkan Instance Version: 1.2.131 apiVersion = 4202627 (1.2.131) driverVersion = 8388735 (0x80007f) vendorID = 0x1002 deviceID = 0x67df deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU deviceName = Radeon RX 580 Series
Is this an issue with AMD drivers generally or am I doing something ill-advised?