Add more information on renderBundle<->pass attachment state mismatch

Bug: dawn:563
Change-Id: I8f68f27bf0f4864018ec8c58eae6754671031db8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85761
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
This commit is contained in:
Corentin Wallez 2022-04-05 17:19:53 +00:00 committed by Dawn LUCI CQ
parent 3a279a84e7
commit 40b4ece211
2 changed files with 7 additions and 8 deletions

View File

@ -237,8 +237,6 @@ namespace dawn::native {
if (IsValidationEnabled()) { if (IsValidationEnabled()) {
DAWN_TRY(GetDevice()->ValidateObject(pipeline)); DAWN_TRY(GetDevice()->ValidateObject(pipeline));
// TODO(dawn:563): More detail about why the states are incompatible would be
// nice.
DAWN_INVALID_IF(pipeline->GetAttachmentState() != mAttachmentState.Get(), DAWN_INVALID_IF(pipeline->GetAttachmentState() != mAttachmentState.Get(),
"Attachment state of %s is not compatible with %s.\n" "Attachment state of %s is not compatible with %s.\n"
"%s expects an attachment state of %s.\n" "%s expects an attachment state of %s.\n"

View File

@ -281,12 +281,13 @@ namespace dawn::native {
for (uint32_t i = 0; i < count; ++i) { for (uint32_t i = 0; i < count; ++i) {
DAWN_TRY(GetDevice()->ValidateObject(renderBundles[i])); DAWN_TRY(GetDevice()->ValidateObject(renderBundles[i]));
// TODO(dawn:563): Give more detail about why the states are incompatible. DAWN_INVALID_IF(attachmentState != renderBundles[i]->GetAttachmentState(),
DAWN_INVALID_IF( "Attachment state of renderBundles[%i] (%s) is not "
attachmentState != renderBundles[i]->GetAttachmentState(), "compatible with %s.\n"
"Attachment state of renderBundles[%i] (%s) is not compatible with " "%s expects an attachment state of %s.\n"
"attachment state of %s.", "renderBundles[%i] (%s) has an attachment state of %s.",
i, renderBundles[i], this); i, renderBundles[i], this, this, attachmentState, i,
renderBundles[i], renderBundles[i]->GetAttachmentState());
bool depthReadOnlyInBundle = renderBundles[i]->IsDepthReadOnly(); bool depthReadOnlyInBundle = renderBundles[i]->IsDepthReadOnly();
DAWN_INVALID_IF( DAWN_INVALID_IF(