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 ###
###################################
# 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).
# Only affects the d3d12 and vulkan backends.
device_lost_panic = []

View File

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