Vulkan UI: Track if debug marker extension is enabled
This commit is contained in:
parent
4ee16fd193
commit
ba8e315a69
|
@ -75,7 +75,7 @@ bool VulkanDevice::Initialize(DeviceInfo device_info) {
|
||||||
// Gather list of enabled extension names.
|
// Gather list of enabled extension names.
|
||||||
auto extensions_result =
|
auto extensions_result =
|
||||||
CheckRequirements(required_extensions_, device_info.extensions);
|
CheckRequirements(required_extensions_, device_info.extensions);
|
||||||
auto& enabled_extensions = extensions_result.second;
|
enabled_extensions_ = extensions_result.second;
|
||||||
|
|
||||||
// We wait until both extensions and layers are checked before failing out so
|
// We wait until both extensions and layers are checked before failing out so
|
||||||
// that the user gets a complete list of what they have/don't.
|
// that the user gets a complete list of what they have/don't.
|
||||||
|
@ -166,8 +166,8 @@ bool VulkanDevice::Initialize(DeviceInfo device_info) {
|
||||||
create_info.enabledLayerCount = static_cast<uint32_t>(enabled_layers.size());
|
create_info.enabledLayerCount = static_cast<uint32_t>(enabled_layers.size());
|
||||||
create_info.ppEnabledLayerNames = enabled_layers.data();
|
create_info.ppEnabledLayerNames = enabled_layers.data();
|
||||||
create_info.enabledExtensionCount =
|
create_info.enabledExtensionCount =
|
||||||
static_cast<uint32_t>(enabled_extensions.size());
|
static_cast<uint32_t>(enabled_extensions_.size());
|
||||||
create_info.ppEnabledExtensionNames = enabled_extensions.data();
|
create_info.ppEnabledExtensionNames = enabled_extensions_.data();
|
||||||
create_info.pEnabledFeatures = &enabled_features;
|
create_info.pEnabledFeatures = &enabled_features;
|
||||||
|
|
||||||
auto err = vkCreateDevice(device_info.handle, &create_info, nullptr, &handle);
|
auto err = vkCreateDevice(device_info.handle, &create_info, nullptr, &handle);
|
||||||
|
@ -192,6 +192,13 @@ bool VulkanDevice::Initialize(DeviceInfo device_info) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set flags so we can track enabled extensions easily.
|
||||||
|
for (auto& ext : enabled_extensions_) {
|
||||||
|
if (!std::strcmp(ext, VK_EXT_DEBUG_MARKER_EXTENSION_NAME)) {
|
||||||
|
debug_marker_ena_ = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
device_info_ = std::move(device_info);
|
device_info_ = std::move(device_info);
|
||||||
queue_family_index_ = ideal_queue_family_index;
|
queue_family_index_ = ideal_queue_family_index;
|
||||||
|
|
||||||
|
@ -239,6 +246,11 @@ void VulkanDevice::DbgSetObjectName(VkDevice device, uint64_t object,
|
||||||
void VulkanDevice::DbgSetObjectName(uint64_t object,
|
void VulkanDevice::DbgSetObjectName(uint64_t object,
|
||||||
VkDebugReportObjectTypeEXT object_type,
|
VkDebugReportObjectTypeEXT object_type,
|
||||||
std::string name) {
|
std::string name) {
|
||||||
|
if (!debug_marker_ena_) {
|
||||||
|
// Extension disabled.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DbgSetObjectName(*this, object, object_type, name);
|
DbgSetObjectName(*this, object, object_type, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -100,6 +100,9 @@ class VulkanDevice {
|
||||||
|
|
||||||
std::vector<Requirement> required_layers_;
|
std::vector<Requirement> required_layers_;
|
||||||
std::vector<Requirement> required_extensions_;
|
std::vector<Requirement> required_extensions_;
|
||||||
|
std::vector<const char*> enabled_extensions_;
|
||||||
|
|
||||||
|
bool debug_marker_ena_ = false;
|
||||||
|
|
||||||
DeviceInfo device_info_;
|
DeviceInfo device_info_;
|
||||||
uint32_t queue_family_index_ = 0;
|
uint32_t queue_family_index_ = 0;
|
||||||
|
|
Loading…
Reference in New Issue