Fatal Error - Vulkan API call fail
Quick summary
Receiving the below error when trying to open any game with vulkan renderer
**Fatal Error
Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT)**
Hardware/Software I am using is -
Hades Canyon NUC8i7HVK GPU - AMD Radeon RX Vega M GH AMD Adrenalin Version 23.10.01.46 Vulkan API Version 1.3.250
Details
No game loads. The below prompt is received when trying to load games. RPCS3 then crashes
Vulkan diagnostics log below
Attach a log file
RPCS3 v0.0.32-16659-33851d51 Alpha .zip
Attach capture files for visual issues
No response
System configuration
No response
Other details
No response
Any guidance is greatly appreciated!
here https://github.com/RPCS3/rpcs3/blob/master/BUILDING.md it is reported to use Vulkan API 1.3.268.0
Thank you for the steer @digant73
Apologies for the stupid follow up question, but which files do I need and what do I do with them? I've run the SDK and runtime installers, but no change.
This is an undiagnosed issue that only affects the Vega+Intel IGP combo. I'm fairly certain it's our fault but the diagnostic dump from the emulator doesn't catch anything unusual.
·A 0:00:09.812848 RSX: Found Vulkan-compatible GPU: 'Radeon RX Vega M GH Graphics' running on driver 2.0.270
·W 0:00:09.819321 RSX: Physical device reports a low amount of allowed deferred descriptor updates. Draw call threshold will be lowered accordingly.
·A 0:00:09.819331 RSX: Found Vulkan-compatible GPU: 'Intel(R) HD Graphics 630' running on driver 0.404.636
·W 0:00:09.819355 RSX: Unknown chip with device ID 0x591b
·E 0:00:09.819484 RSX: Your GPU does not support alpha-to-one for multisampling. Graphics may be inaccurate when MSAA is enabled.
·! 0:00:09.819489 RSX: GPU/driver supports float16 data types natively. Using native float16_t variables if possible.
·! 0:00:09.819940 RSX: Dumping requested extensions...
·! 0:00:09.820141 RSX: [Supported] VK_KHR_swapchain
·! 0:00:09.820145 RSX: [Supported] VK_KHR_shader_float16_int8
·! 0:00:09.820147 RSX: [Supported] VK_EXT_conditional_rendering
·! 0:00:09.820149 RSX: [Supported] VK_EXT_depth_range_unrestricted
·! 0:00:09.820150 RSX: [Supported] VK_KHR_external_memory
·! 0:00:09.820152 RSX: [Supported] VK_EXT_external_memory_host
·! 0:00:09.820155 RSX: [Supported] VK_EXT_shader_stencil_export
·! 0:00:09.820157 RSX: [Supported] VK_KHR_sampler_mirror_clamp_to_edge
·! 0:00:09.820158 RSX: [Supported] VK_KHR_maintenance3
·! 0:00:09.820160 RSX: [Supported] VK_EXT_descriptor_indexing
·! 0:00:09.820162 RSX: [Supported] VK_EXT_attachment_feedback_loop_layout
·! 0:00:09.820163 RSX: [Supported] VK_KHR_fragment_shader_barycentric
·! 0:00:09.820165 RSX: [Supported] VK_EXT_custom_border_color
·! 0:00:09.820167 RSX: [Supported] VK_KHR_synchronization2
·! 0:00:09.820168 RSX: Dumping requested features...
·! 0:00:09.820169 RSX: [Supported] robustBufferAccess
·! 0:00:09.820169 RSX: [Supported] fullDrawIndexUint32
·! 0:00:09.820170 RSX: [Supported] independentBlend
·! 0:00:09.820171 RSX: [Supported] sampleRateShading
·! 0:00:09.820171 RSX: [Supported] logicOp
·! 0:00:09.820172 RSX: [Supported] depthClamp
·! 0:00:09.820173 RSX: [Supported] depthBounds
·! 0:00:09.820173 RSX: [Supported] wideLines
·! 0:00:09.820174 RSX: [Supported] largePoints
·! 0:00:09.820175 RSX: [Supported] samplerAnisotropy
·! 0:00:09.820175 RSX: [Supported] textureCompressionBC
·! 0:00:09.820176 RSX: [Supported] occlusionQueryPrecise
·! 0:00:09.820177 RSX: [Supported] shaderStorageImageMultisample
·! 0:00:09.820178 RSX: [Supported] shaderStorageImageWriteWithoutFormat
·! 0:00:09.820178 RSX: [Supported] shaderStorageBufferArrayDynamicIndexing
·! 0:00:09.820179 RSX: [Supported] shaderClipDistance
·! 0:00:09.820180 RSX: [Supported] shaderFloat64
·F 0:00:09.820216 SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT)
(in file D:\a\1\s\rpcs3\Emu\RSX\VK\vkutils\device.cpp:685[:8], in function void __cdecl vk::render_device::create(class vk::physical_device &,unsigned int,unsigned int,unsigned int)) (error=0x7f)
(in file D:\a\1\s\rpcs3\Emu\RSX\VK\vkutils\shared.cpp:110[:24], in function void __cdecl vk::die_with_error(enum VkResult,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::source_location)) (error=0x7f)
·W 0:00:09.831101 SYS: Emulation has been frozen! You can either use debugger tools to inspect current emulation state or terminate it.
@Takamura83 Once you have the SDK installed, enabled debug output. You can do this in the developers "debug tab" if you have it unhidden or by manually finding the "debug output" entry in the configuration file for the game and setting it from false to true. After that, start the game again and attach the log that is generated here.
Came to say I have the same issue on the same CPU/GPU (8809G). Will try the steps installing the sdk and posting debug output log as soon as I can. Using OpenGL as workaround.
I have attached the log. Hopefully it helps. If I gathered the wrong info or additional logs are needed, please let me know.
Thank you.
Also, it looks like shaderFloat16=false for that GPU in Vulcan Configurator's Vulkan Info tool from the SDK under VkPhysicalDeviceVulkan12Features section. But maybe I'm misreading the attached log where it says that it's supported.
The log is correct, but even the official validation layers don't see anything wrong with our code. I however see this:
RSX: Physical device reports a low amount of allowed deferred descriptor updates. Draw call threshold will be lowered accordingly.
That makes me think it's not a feature or extension problem, but one of the extended features that is maybe requesting too much data. I'll compare this GPU stats with a normal AMD card and try to figure out what is happening.
@kd-11 Thank you! If you need me to test any changes or supply additional logs, please let me know.
I have attached the log. Hopefully it helps. If I gathered the wrong info or additional logs are needed, please let me know.
Thank you.
Also, it looks like shaderFloat16=false for that GPU in Vulcan Configurator's Vulkan Info tool from the SDK under VkPhysicalDeviceVulkan12Features section. But maybe I'm misreading the attached log where it says that it's supported.
Checking the extension sheet in gpuinfo shows the same: https://vulkan.gpuinfo.org/displayreport.php?id=29343#features_extensions However, we fetch the data from the GPU driver so I'm a bit confused why the mismatch is happening.
Grab a build from https://github.com/RPCS3/rpcs3/pull/15825 and try again. If fp16 is the issue, that build should work. Attach the log file here either way.
Hey @kd-11 , I'll try to set up something to build it for Windows as soon as I can. Unless there is an exe built already that I missed.
Thank you!
Hey @kd-11 , I'll try to set up something to build it for Windows as soon as I can. Unless there is an exe built already that I missed.
Thank you!
You can use the build from the PR CI: https://artprodsu6weu.artifacts.visualstudio.com/Ad52971ce-2651-462c-a71a-8019f393a0cf/3598951b-4d39-4fad-ad3b-ff2386a649de/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL25la290ZWtpbmEvcHJvamVjdElkLzM1OTg5NTFiLTRkMzktNGZhZC1hZDNiLWZmMjM4NmE2NDlkZS9idWlsZElkLzExNDczL2FydGlmYWN0TmFtZS9SUENTMytmb3IrV2luZG93cw2/content?format=zip
@kd-11 Here is the new log file after running the build provided. It failed with the error:
I'll just disable all extensions for this GPU and let's see if it can boot a core VK1.0 instance.
@kd-11 Same link for exe? Edit: I misread it as "I just disabled" instead of "I'll just disable". I'll wait for your direction.
I realized now that the previous experiment didn't even kick in because your device ID is different from what I expected. It is interesting that there is more than one version of Vega M out there, I figured it was just a one-off product. Anyway, I have modified rpcs3 to boot in pure VK1.0 mode, only using the KHR_swapchain extension required to display things to the screen. Note that with all extensions disabled, performance will be quite bad, likely cut by around half. It's not a real fix, so we still need to figure out which part was tripping things up. The build details will appear in the "artifacts" section of this CI build: https://dev.azure.com/nekotekina/nekotekina/_build/results?buildId=11478&view=results Check for artifacts in about an hour and download the windows executable. If it still crashes attach the log, though the only thing we could do if disabling all extensions doesn't work is:
- Drop all feature requests and initialize a device with no optional features enabled. Pretty much useless for rendering.
- Run in offscreen mode. We support an offscreen swapchain created in the early vulkan days when WSI support was poor.
Apologies, I'm off the pace. Attached is the log post debug enabling RPCS3 Log.zip
@kd-11 Here is the log from CI build RPCS3.log
·! 0:00:06.523724 RSX: Dumping requested extensions...
·! 0:00:06.523943 RSX: [Supported] VK_KHR_swapchain
·! 0:00:06.523947 RSX: [Supported] VK_KHR_shader_float16_int8
It keeps insisting on this float16 extension on your setup for some weird reason even when I have disabled it. I have no idea why it would do that, need to double-check.
There was indeed a bug forcing float16 to enabled on VEGA. Next test build: https://dev.azure.com/nekotekina/nekotekina/_build/results?buildId=11479&view=results
@kd-11 it works! RPCS3.log
Last one: https://dev.azure.com/nekotekina/nekotekina/_build/results?buildId=11480&view=results If this one crashes, then we know that the driver is reporting float16 but doesn't support it. This is a known issue with Vega, since I can see a similar thing was in place to block linux drivers from trying to run float16 on Vega. If it crashes, I'll just disable it for all Vega chips regardless of the driver used.
@kd-11 that one works too! Thank you! RPCS3.log
Thanks for testing. The fix will be mainlined shortly.