Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions src/cdl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,8 @@ static void DecodeExtensionString(DeviceExtensionsPresent& extensions, const cha
extensions.ext_device_address_binding_report = true;
} else if (!strcmp(name, VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME)) {
extensions.nv_device_diagnostic_checkpoints = true;
} else if (!strcmp(name, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME)) {
extensions.khr_dynamic_rendering = true;
} else if (!strcmp(name, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME)) {
extensions.khr_timeline_semaphore = true;
}
Expand Down Expand Up @@ -509,14 +511,14 @@ const VkDeviceCreateInfo* Context::GetModifiedDeviceCreateInfo(VkPhysicalDevice
}
}
} else {
Log().Warning("No VK_AMD_device_coherent_memory extension, results may not be as accurate as possible.");
Log().Warning("No device support for VK_AMD_device_coherent_memory extension, results may not be as accurate as possible.");
}
} else {
Log().Warning("No VK_AMD_buffer_marker extension, semaphore tracking will be disabled.");
Log().Warning("No device support for VK_AMD_buffer_marker extension, semaphore tracking will be disabled.");
}
if (!extensions_present.nv_device_diagnostic_checkpoints && !extensions_present.amd_buffer_marker) {
Log().Warning(
"No VK_NV_device_diagnostic_checkpoints or VK_AMD_buffer_marker extension, progression tracking will be "
"No device support for VK_NV_device_diagnostic_checkpoints or VK_AMD_buffer_marker extension, progression tracking will be "
"disabled.");
}
if (extensions_present.ext_device_fault) {
Expand All @@ -537,7 +539,7 @@ const VkDeviceCreateInfo* Context::GetModifiedDeviceCreateInfo(VkPhysicalDevice
}
}
} else {
Log().Warning("No VK_EXT_device_fault extension, vendor-specific crash dumps will not be available.");
Log().Warning("No device support for VK_EXT_device_fault extension, vendor-specific crash dumps will not be available.");
}
if (extensions_present.ext_device_address_binding_report) {
auto ext_dbar = vku::InitStruct<VkPhysicalDeviceAddressBindingReportFeaturesEXT>(nullptr);
Expand All @@ -555,8 +557,27 @@ const VkDeviceCreateInfo* Context::GetModifiedDeviceCreateInfo(VkPhysicalDevice
}
} else {
Log().Warning(
"No VK_EXT_device_address_binding_report extension, DeviceAddress information will not be available.");
"No device support for VK_EXT_device_address_binding_report extension, DeviceAddress information will not be available.");
}

bool device_has_dynamic_rendering = true;

if (extensions_present.khr_dynamic_rendering) {
auto khr_dynamic_rendering = vku::InitStruct<VkPhysicalDeviceDynamicRenderingFeaturesKHR>(nullptr);
QueryFeature(physicalDevice, &khr_dynamic_rendering);

if (!khr_dynamic_rendering.dynamicRendering) {
device_has_dynamic_rendering = false;
}
} else {
device_has_dynamic_rendering = false;
}

if (!device_has_dynamic_rendering) {
Log().Error(
"No device support for VK_KHR_dynamic_rendering extension, Vulkan 1.3 or VK_KHR_dynamic_rendering are required by the Crash Diagnostic layer.");
}

if (extensions_present.khr_timeline_semaphore) {
auto khr_timeline_semaphore = vku::InitStruct<VkPhysicalDeviceTimelineSemaphoreFeaturesKHR>(nullptr);
QueryFeature(physicalDevice, &khr_timeline_semaphore);
Expand All @@ -577,7 +598,7 @@ const VkDeviceCreateInfo* Context::GetModifiedDeviceCreateInfo(VkPhysicalDevice
}
} else {
Log().Error(
"No VK_KHR_timeline_semaphore extension, Vulkan 1.2 or VK_KHR_timeline_semaphore are quired to track queue "
"No device support for VK_KHR_timeline_semaphore extension, Vulkan 1.2 or VK_KHR_timeline_semaphore are required to track queue "
"progress, enabling early device lost detection.");
}

Expand Down
1 change: 1 addition & 0 deletions src/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ struct DeviceExtensionsPresent {
bool ext_device_fault{false};
bool ext_device_address_binding_report{false};
bool nv_device_diagnostic_checkpoints{false};
bool khr_dynamic_rendering{false};
bool khr_timeline_semaphore{false};
};

Expand Down
Loading