diff --git a/vulkano/src/command_buffer/traits.rs b/vulkano/src/command_buffer/traits.rs index bfa6cb04a8..adea9c757c 100644 --- a/vulkano/src/command_buffer/traits.rs +++ b/vulkano/src/command_buffer/traits.rs @@ -482,22 +482,28 @@ impl Error for CommandBufferExecError { impl Display for CommandBufferExecError { fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), FmtError> { - write!( - f, - "{}", - match self { - CommandBufferExecError::AccessError { .. } => - "access to a resource has been denied", - CommandBufferExecError::OneTimeSubmitAlreadySubmitted => { - "the command buffer or one of the secondary command buffers it executes was \ - created with the \"one time submit\" flag, but has already been submitted in \ - the past" - } - CommandBufferExecError::ExclusiveAlreadyInUse => { - "the command buffer or one of the secondary command buffers it executes is \ - already in use was not created with the \"concurrent\" flag" - } + let value = match self { + CommandBufferExecError::AccessError { + error, + command_name, + command_offset, + command_param, + } => return write!( + f, + "access to a resource has been denied on command {} (offset: {}, param: {}): {}", + command_name, command_offset, command_param, error + ), + CommandBufferExecError::OneTimeSubmitAlreadySubmitted => { + "the command buffer or one of the secondary command buffers it executes was \ + created with the \"one time submit\" flag, but has already been submitted in \ + the past" } - ) + CommandBufferExecError::ExclusiveAlreadyInUse => { + "the command buffer or one of the secondary command buffers it executes is \ + already in use was not created with the \"concurrent\" flag" + } + }; + + write!(f, "{}", value) } } diff --git a/vulkano/src/sync/future/mod.rs b/vulkano/src/sync/future/mod.rs index 64a074220a..b186dfe1cf 100644 --- a/vulkano/src/sync/future/mod.rs +++ b/vulkano/src/sync/future/mod.rs @@ -502,26 +502,28 @@ impl Error for AccessError {} impl Display for AccessError { fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), FmtError> { - write!( - f, - "{}", - match self { - AccessError::AlreadyInUse => { - "the resource is already in use, and there is no tracking of concurrent usages" - } - AccessError::UnexpectedImageLayout { .. } => { - unimplemented!() // TODO: find a description - } - AccessError::ImageNotInitialized { .. } => { - "trying to use an image without transitioning it from the undefined or \ - preinitialized layouts first" - } - AccessError::SwapchainImageNotAcquired => { - "trying to use a swapchain image without depending on a corresponding acquire \ - image future" - } + let value = match self { + AccessError::AlreadyInUse => { + "the resource is already in use, and there is no tracking of concurrent usages" } - ) + AccessError::UnexpectedImageLayout { allowed, requested } => { + return write!( + f, + "unexpected image layout: requested {:?}, allowed {:?}", + allowed, requested + ) + } + AccessError::ImageNotInitialized { .. } => { + "trying to use an image without transitioning it from the undefined or \ + preinitialized layouts first" + } + AccessError::SwapchainImageNotAcquired => { + "trying to use a swapchain image without depending on a corresponding acquire \ + image future" + } + }; + + write!(f, "{}", value,) } } @@ -538,14 +540,12 @@ impl Error for AccessCheckError {} impl Display for AccessCheckError { fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), FmtError> { - write!( - f, - "{}", - match self { - AccessCheckError::Denied(_) => "access to the resource has been denied", - AccessCheckError::Unknown => "the resource is unknown", + match self { + AccessCheckError::Denied(err) => { + write!(f, "access to the resource has been denied: {}", err) } - ) + AccessCheckError::Unknown => write!(f, "the resource is unknown"), + } } }