kvark/blade

is_vulkan_portability incorectly set

daniel-keitel opened this issue · 2 comments

is_vulkan_portability is only dependent on the instance extension (which may be available)

let is_vulkan_portability =
supported_instance_extensions.contains(&vk::KhrPortabilityEnumerationFn::name());

while the device may not support it

if is_vulkan_portability {
device_extensions.push(vk::KhrPortabilitySubsetFn::name());
}

resulting in: thread 'main' panicked at 'called Result::unwrap() on an Err value: ERROR_EXTENSION_NOT_PRESENT', blade-graphics\src\vulkan\init.rs:340:18 on my pc (Windows 10 RTX 4090)

This is instance extension and should be enabled for instance, not for the device.
One can enable only extensions that are present. i.e. instance extensions returned from vkEnumerateInstanceExtensionPropertices and device extensions returned from vkEnumerateDeviceExtensionProperties

kvark commented

Makes sense, thanks for filing!
Should be fixed with d9c76cf