Improve some error messages (#2446)

* Fix render target mismatch error message

* Reword bind group layout mismatch error
This commit is contained in:
Connor Fitzgerald
2022-02-01 18:51:48 -05:00
committed by GitHub
parent b10f7ed407
commit 63dfd98d68
3 changed files with 9 additions and 7 deletions

View File

@@ -117,7 +117,7 @@ pub struct ComputePassDescriptor<'a> {
pub enum DispatchError {
#[error("compute pipeline must be set")]
MissingPipeline,
#[error("current compute pipeline has a layout which is incompatible with a currently set bind group, first differing at entry index {index}")]
#[error("the pipeline layout, associated with the current compute pipeline, contains a bind group layout at index {index} which is incompatible with the bind group layout associated with the bind group at {index}")]
IncompatibleBindGroup {
index: u32,
//expected: BindGroupLayoutId,

View File

@@ -26,7 +26,7 @@ pub enum DrawError {
MissingVertexBuffer { index: u32 },
#[error("index buffer must be set")]
MissingIndexBuffer,
#[error("current render pipeline has a layout which is incompatible with a currently set bind group, first differing at entry index {index}")]
#[error("the pipeline layout, associated with the current render pipeline, contains a bind group layout at index {index} which is incompatible with the bind group layout associated with the bind group at {index}")]
IncompatibleBindGroup {
index: u32,
//expected: BindGroupLayoutId,

View File

@@ -76,21 +76,23 @@ pub(crate) struct RenderPassContext {
}
#[derive(Clone, Debug, Error)]
pub enum RenderPassCompatibilityError {
#[error("Incompatible color attachment: {0:?} != {1:?}")]
#[error("Incompatible color attachment: the renderpass expected {0:?} but was given {1:?}")]
IncompatibleColorAttachment(
ArrayVec<TextureFormat, { hal::MAX_COLOR_TARGETS }>,
ArrayVec<TextureFormat, { hal::MAX_COLOR_TARGETS }>,
),
#[error("Incompatible depth-stencil attachment: {0:?} != {1:?}")]
#[error(
"Incompatible depth-stencil attachment: the renderpass expected {0:?} but was given {1:?}"
)]
IncompatibleDepthStencilAttachment(Option<TextureFormat>, Option<TextureFormat>),
#[error("Incompatible sample count: {0:?} != {1:?}")]
#[error("Incompatible sample count: the renderpass expected {0:?} but was given {1:?}")]
IncompatibleSampleCount(u32, u32),
#[error("Incompatible multiview: {0:?} != {1:?}")]
#[error("Incompatible multiview: the renderpass expected {0:?} but was given {1:?}")]
IncompatibleMultiview(Option<NonZeroU32>, Option<NonZeroU32>),
}
impl RenderPassContext {
// Assumed the renderpass only contains one subpass
// Assumes the renderpass only contains one subpass
pub(crate) fn check_compatible(
&self,
other: &Self,