ImageHelper::generateMipmapsWithBlit() implements glGenerateMipmap using vkCmdBlitImage. For each level it changes layout to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL and issue a blit. In order to keep all mipmap levels' layout consistent, it issues a vkCmdPipelineBarrier call for the the very last mipmap level to change it to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL as well. This creates an unnecessary barrier for the next operation, that now it sees a barrier against transfer stage. This CL changes all levels to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL so that the whole image will have consistent layout. After glGenerateMipmap call, the next reasonable usage is use it in fragment shader, so the barrier is not wasted. Bug: angleproject:5986 Change-Id: I3690ae8417d97bc504fcf036d016f289e6370526 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909757 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by:Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Tim Van Patten <timvp@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| android_system_settings | Loading commit data... | |
| common | Loading commit data... | |
| compiler | Loading commit data... | |
| feature_support_util | Loading commit data... | |
| gpu_info_util | Loading commit data... | |
| image_util | Loading commit data... | |
| libANGLE | Loading commit data... | |
| libEGL | Loading commit data... | |
| libGL | Loading commit data... | |
| libGLESv1_CM | Loading commit data... | |
| libGLESv2 | Loading commit data... | |
| libOpenCL | Loading commit data... | |
| tests | Loading commit data... | |
| third_party | Loading commit data... | |
| commit_id.py | Loading commit data... | |
| compiler.gni | Loading commit data... | |
| copy_compiler_dll.bat | Loading commit data... | |
| libGLESv2.gni | Loading commit data... |