diff --git a/src/dawn/native/CommandBufferStateTracker.cpp b/src/dawn/native/CommandBufferStateTracker.cpp index fc6cbc93ea..8f018da541 100644 --- a/src/dawn/native/CommandBufferStateTracker.cpp +++ b/src/dawn/native/CommandBufferStateTracker.cpp @@ -598,33 +598,35 @@ MaybeError CommandBufferStateTracker::CheckMissingAspects(ValidationAspects aspe if (std::holds_alternative(result)) { const auto& a = std::get(result); return DAWN_VALIDATION_ERROR( - "Writable storage buffer binding aliasing found between bind group index %u, " - "binding index " - "%u, and bind group index %u, binding index %u, with overlapping ranges " - "(offset: " - "%u, size: %u) and (offset: %u, size: %u).", - static_cast(a.e0.bindGroupIndex), - static_cast(a.e0.bindingIndex), + "Writable storage buffer binding aliasing found between %s set at bind group index " + "%u, binding index %u, and %s set at bind group index %u, binding index %u, with " + "overlapping ranges (offset: %u, size: %u) and (offset: %u, size: %u) in %s.", + mBindgroups[a.e0.bindGroupIndex], static_cast(a.e0.bindGroupIndex), + static_cast(a.e0.bindingIndex), mBindgroups[a.e1.bindGroupIndex], static_cast(a.e1.bindGroupIndex), static_cast(a.e1.bindingIndex), a.e0.offset, a.e0.size, a.e1.offset, - a.e1.size); + a.e1.size, + mBindgroups[a.e0.bindGroupIndex] + ->GetBindingAsBufferBinding(a.e0.bindingIndex) + .buffer); } else { ASSERT(std::holds_alternative(result)); const auto& a = std::get(result); return DAWN_VALIDATION_ERROR( - "Writable storage texture binding aliasing found between bind group " - "index %u, binding index " - "%u, and bind group index %u, binding index %u, with subresources " - "(base mipmap level: " - "%u, mip level count: %u, base array layer: %u, array layer count: %u) and " - "(base mipmap level: %u, mip level count: " - "%u, base array layer: %u, array layer count: %u).", - static_cast(a.e0.bindGroupIndex), - static_cast(a.e0.bindingIndex), + "Writable storage texture binding aliasing found between %s set at bind group " + "index %u, binding index %u, and %s set at bind group index %u, binding index %u, " + "with subresources (base mipmap level: %u, mip level count: %u, base array layer: " + "%u, array layer count: %u) and (base mipmap level: %u, mip level count: %u, base " + "array layer: %u, array layer count: %u) in %s.", + mBindgroups[a.e0.bindGroupIndex], static_cast(a.e0.bindGroupIndex), + static_cast(a.e0.bindingIndex), mBindgroups[a.e1.bindGroupIndex], static_cast(a.e1.bindGroupIndex), static_cast(a.e1.bindingIndex), a.e0.baseMipLevel, a.e0.mipLevelCount, a.e0.baseArrayLayer, a.e0.arrayLayerCount, a.e1.baseMipLevel, a.e1.mipLevelCount, - a.e1.baseArrayLayer, a.e1.arrayLayerCount); + a.e1.baseArrayLayer, a.e1.arrayLayerCount, + mBindgroups[a.e0.bindGroupIndex] + ->GetBindingAsTextureView(a.e0.bindingIndex) + ->GetTexture()); } // The chunk of code above should be similar to the one in |RecomputeLazyAspects|.