diff --git a/src/libANGLE/renderer/vulkan/TextureVk.cpp b/src/libANGLE/renderer/vulkan/TextureVk.cpp index 130abe1f6f..4b13553ed4 100644 --- a/src/libANGLE/renderer/vulkan/TextureVk.cpp +++ b/src/libANGLE/renderer/vulkan/TextureVk.cpp @@ -3921,6 +3921,15 @@ angle::Result TextureVk::initializeContents(const gl::Context *context, GLenum binding, const gl::ImageIndex &imageIndex) { + // POC INSTRUMENTATION: log every robust-resource-init clear so we can show + // it is NOT invoked for the dropped cube faces. + if (mState.getType() == gl::TextureType::CubeMap) + { + fprintf(stderr, + "[POC-ROBUST] robust-init clear for CubeMap level=%d layer=%d\n", + imageIndex.getLevelIndex(), + imageIndex.hasLayer() ? imageIndex.getLayerIndex() : -1); + } ContextVk *contextVk = vk::GetImpl(context); const gl::ImageDesc &desc = mState.getImageDesc(imageIndex); const vk::Format &format = diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/src/libANGLE/renderer/vulkan/vk_helpers.cpp index 1429619383..8c4d3f164d 100644 --- a/src/libANGLE/renderer/vulkan/vk_helpers.cpp +++ b/src/libANGLE/renderer/vulkan/vk_helpers.cpp @@ -9820,6 +9820,24 @@ void ImageHelper::stageSelfAsSubresourceUpdates( if ((~skipLevelsAllFaces & levelsMask).none()) { + // POC INSTRUMENTATION: log when the OR-aggregated early return fires + // for a cube map while at least one face per level is NOT redefined. + if (textureType == gl::TextureType::CubeMap) + { + for (uint32_t face = 0; face < gl::kCubeFaceCount; ++face) + { + if ((~skipLevels[face] & levelsMask).any()) + { + fprintf(stderr, + "[POC-HIT] stageSelfAsSubresourceUpdates early-return DROPS " + "cube face %u (levelsMask=0x%x skipLevels[face]=0x%x " + "OR-aggregated=0x%x)\n", + face, static_cast(levelsMask.bits()), + static_cast(skipLevels[face].bits()), + static_cast(skipLevelsAllFaces.bits())); + } + } + } return; }