Skip to content

Commit 46c5619

Browse files
committed
removed unused lines and changed device fault check
1 parent a420515 commit 46c5619

1 file changed

Lines changed: 22 additions & 22 deletions

File tree

samples/extensions/device_fault/device_fault.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ DeviceFault::~DeviceFault()
5757
}
5858
vkDestroyBuffer(vk_device, pointer_buffer.buffer, nullptr);
5959
vkFreeMemory(vk_device, pointer_buffer.memory, nullptr);
60+
vkDestroyDebugUtilsMessengerEXT(get_instance().get_handle(), debug_utils_messenger, nullptr);
6061
}
6162
}
6263

@@ -171,15 +172,16 @@ bool DeviceFault::prepare(const vkb::ApplicationOptions &options)
171172

172173
// Set up debug utils messenger with proper user data pointer
173174
VkDebugUtilsMessengerCreateInfoEXT debug_utils_create_info{VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT};
174-
debug_utils_create_info.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT |
175-
VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT |
176-
VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT;
175+
//debug_utils_create_info.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT |
176+
// VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT |
177+
// VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT;
178+
//debug_utils_create_info.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
179+
// VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT |
180+
// VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT;
177181

182+
debug_utils_create_info.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT;
183+
debug_utils_create_info.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT;
178184

179-
180-
debug_utils_create_info.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
181-
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT |
182-
VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT;
183185
debug_utils_create_info.pfnUserCallback = debug_callback;
184186
debug_utils_create_info.pUserData = this; // Pass 'this' pointer to access instance methods
185187

@@ -242,7 +244,6 @@ void DeviceFault::create_compute_pipeline()
242244
{
243245
pipelines.compute_pipeline_layout = create_pipeline_layout(false);
244246
VkComputePipelineCreateInfo info = vkb::initializers::compute_pipeline_create_info(pipelines.compute_pipeline_layout);
245-
// info.stage = load_shader("device_fault/update_vbo.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT);
246247
info.stage = load_shader("device_fault", "update_vbo.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT);
247248
VK_CHECK(vkCreateComputePipelines(get_device().get_handle(), VK_NULL_HANDLE, 1, &info, nullptr, &pipelines.compute_update_pipeline));
248249
}
@@ -581,8 +582,19 @@ void DeviceFault::render(float delta_time)
581582
// A bit of a hack. This is usually seated in ApiVulkanSample::submit_frame(), but that throws immediately if the device enters an error state.
582583
// So we incorrectly call wait_idle here, so we can get the GPU in error state, and we can query it for device_fault before an exception is thrown.
583584
VkResult error = get_device().get_queue_by_present(0).wait_idle();
584-
check_device_fault(error);
585-
ApiVulkanSample::submit_frame();
585+
586+
try
587+
{
588+
ApiVulkanSample::submit_frame();
589+
}
590+
catch (std::exception const &e)
591+
{
592+
vk::DeviceLostError const *device_lost_error = reinterpret_cast<vk::DeviceLostError const *>(&e);
593+
if (device_lost_error)
594+
{
595+
check_device_fault(VK_ERROR_DEVICE_LOST);
596+
}
597+
}
586598

587599
}
588600

@@ -603,18 +615,6 @@ void DeviceFault::request_gpu_features(vkb::core::PhysicalDeviceC &gpu)
603615
REQUEST_OPTIONAL_FEATURE(gpu,
604616
VkPhysicalDeviceAddressBindingReportFeaturesEXT,
605617
reportAddressBinding);
606-
607-
// Add explicit debug utils feature request
608-
auto &features = gpu.get_mutable_requested_features();
609-
610-
VkValidationFeaturesEXT validation_features = {};
611-
validation_features.sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
612-
validation_features.enabledValidationFeatureCount = 1;
613-
614-
VkValidationFeatureEnableEXT enabled_features[] = {
615-
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
616-
};
617-
validation_features.pEnabledValidationFeatures = enabled_features;
618618
}
619619

620620
std::unique_ptr<ApiVulkanSample> create_device_fault()

0 commit comments

Comments
 (0)