Hash :
e50351cb
Author :
Date :
2022-06-10T22:28:58
Vulkan: Don't close render pass on framebuffer fetch For applications that use framebuffer fetch in the same RP as non-fetch programs, we can save some extra RenderPasses by always creating our RP objects with input attachments enabled. This works almost identically except for needing to use the images in a "GENERAL" layout instead of "COLOR_ATTACHMENT_OPTIMAL". According to partners it is possible to achieve performance parity even with GENERAL layout. To remove any potential negative impacts of using the GENERAL layout, the context enters this always-framebuffer-fetch mode only and as soon as a framebuffer fetch program is created. Applications that don't use framebuffer fetch are thus unaffected. This eliminates 20 render passes in the Genshin Impact trace (out of about 58). On a Pixel 6 the resulting benchmark score speeds up by ~25%. For Real Racing 3, the speed up is ~30%. Based on change by jmadill@chromium.org Bug: angleproject:7375 Change-Id: Ib6c73e95d06229f8545d502b388ee2a55a582323 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697308 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
{
"include/platform/FeaturesD3D_autogen.h":
"738782aa18b84db736001d1fef1941f1",
"include/platform/FeaturesGL_autogen.h":
"3cc5217f66ff47860987ec558461bd1a",
"include/platform/FeaturesMtl_autogen.h":
"6b6d49c35bc9246361f8dac0a5445a02",
"include/platform/FeaturesVk_autogen.h":
"7c577695e8d45865e75d98e121442a2e",
"include/platform/FrontendFeatures_autogen.h":
"7fba1d81cb14bc0f52755cc78ec560be",
"include/platform/d3d_features.json":
"2b0512a57aa923727c7e69aab7db84a2",
"include/platform/frontend_features.json":
"0deb94e676c24415101d27c18bcb795b",
"include/platform/gen_features.py":
"062989f7a8f3ff3b383f98fc8908dc33",
"include/platform/gl_features.json":
"7647f49795e91ea63f0e16c55c94a7db",
"include/platform/mtl_features.json":
"1fabfe4d5c2eb3683a5b567ab60ad83c",
"include/platform/vk_features.json":
"2f57599ba0dd069646786c8893b2e7fd",
"util/angle_features_autogen.cpp":
"07f6a9def6fea61c3c744bc8c75b25ee",
"util/angle_features_autogen.h":
"eeb1013dc256eadd8bda2e4e6ba752ed"
}