remove oom_panic feature

This commit is contained in:
teoxoy 2025-04-11 17:04:35 +02:00 committed by Teodor Tanasoaia
parent 71cce67665
commit e78bc98d1b
3 changed files with 29 additions and 42 deletions

View File

@ -166,10 +166,6 @@ portable-atomic = ["dep:portable-atomic"]
### Internal Debugging Features ### ### Internal Debugging Features ###
################################### ###################################
# Panic when running into an out-of-memory error (for debugging purposes).
#
# Only affects the d3d12 and vulkan backends.
oom_panic = []
# Panic when running into a device lost error (for debugging purposes). # Panic when running into a device lost error (for debugging purposes).
# Only affects the d3d12 and vulkan backends. # Only affects the d3d12 and vulkan backends.
device_lost_panic = [] device_lost_panic = []

View File

@ -1,32 +1,28 @@
use windows::Win32::{Foundation, Graphics::Dxgi}; use windows::Win32::{Foundation, Graphics::Dxgi};
pub(crate) trait HResult<O> { pub(crate) trait HResult<O> {
fn into_device_result(self, description: &str) -> Result<O, crate::DeviceError>; fn into_device_result(self, description: &str) -> Result<O, crate::DeviceError>;
} }
impl<T> HResult<T> for windows::core::Result<T> { impl<T> HResult<T> for windows::core::Result<T> {
fn into_device_result(self, description: &str) -> Result<T, crate::DeviceError> { fn into_device_result(self, description: &str) -> Result<T, crate::DeviceError> {
#![allow(unreachable_code)] #![allow(unreachable_code)]
self.map_err(|err| { self.map_err(|err| {
log::error!("{} failed: {}", description, err); log::error!("{} failed: {}", description, err);
match err.code() { match err.code() {
Foundation::E_OUTOFMEMORY => { Foundation::E_OUTOFMEMORY => crate::DeviceError::OutOfMemory,
#[cfg(feature = "oom_panic")] Dxgi::DXGI_ERROR_DEVICE_RESET | Dxgi::DXGI_ERROR_DEVICE_REMOVED => {
panic!("{description} failed: Out of memory"); #[cfg(feature = "device_lost_panic")]
crate::DeviceError::OutOfMemory panic!("{description} failed: Device lost ({err})");
} crate::DeviceError::Lost
Dxgi::DXGI_ERROR_DEVICE_RESET | Dxgi::DXGI_ERROR_DEVICE_REMOVED => { }
#[cfg(feature = "device_lost_panic")] _ => {
panic!("{description} failed: Device lost ({err})"); #[cfg(feature = "internal_error_panic")]
crate::DeviceError::Lost panic!("{description} failed: {err}");
} crate::DeviceError::Unexpected
_ => { }
#[cfg(feature = "internal_error_panic")] }
panic!("{description} failed: {err}"); })
crate::DeviceError::Unexpected }
} }
}
})
}
}

View File

@ -1470,13 +1470,8 @@ fn get_unexpected_err(_err: vk::Result) -> crate::DeviceError {
crate::DeviceError::Unexpected crate::DeviceError::Unexpected
} }
/// Returns [`crate::DeviceError::OutOfMemory`] or panics if the `oom_panic` /// Returns [`crate::DeviceError::OutOfMemory`].
/// feature flag is enabled.
fn get_oom_err(_err: vk::Result) -> crate::DeviceError { fn get_oom_err(_err: vk::Result) -> crate::DeviceError {
#[cfg(feature = "oom_panic")]
panic!("Out of memory ({_err:?})");
#[allow(unreachable_code)]
crate::DeviceError::OutOfMemory crate::DeviceError::OutOfMemory
} }