Skip to content

Commit 7ad24b9

Browse files
Treehugger RobotAndroid (Google) Code Review
authored andcommitted
Merge "Trace each config option in RenderEngine's shader priming" into main
2 parents ca3bbac + 6faad80 commit 7ad24b9

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

libs/renderengine/skia/Cache.cpp

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
* limitations under the License.
1515
*/
1616
#include "Cache.h"
17+
18+
#define ATRACE_TAG ATRACE_TAG_GRAPHICS
19+
1720
#include "AutoBackendTexture.h"
1821
#include "SkiaRenderEngine.h"
1922
#include "android-base/unique_fd.h"
@@ -28,6 +31,7 @@
2831
#include "utils/Timers.h"
2932

3033
#include <com_android_graphics_libgui_flags.h>
34+
#include <common/trace.h>
3135

3236
namespace android::renderengine::skia {
3337

@@ -659,6 +663,7 @@ static void drawEdgeExtensionLayers(SkiaRenderEngine* renderengine, const Displa
659663
// in external/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
660664
// gPrintSKSL = true
661665
void Cache::primeShaderCache(SkiaRenderEngine* renderengine, PrimeCacheConfig config) {
666+
SFTRACE_CALL();
662667
const int previousCount = renderengine->reportShadersCompiled();
663668
if (previousCount) {
664669
ALOGD("%d Shaders already compiled before Cache::primeShaderCache ran\n", previousCount);
@@ -724,24 +729,29 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine, PrimeCacheConfig co
724729
impl::ExternalTexture::Usage::WRITEABLE);
725730

726731
if (config.cacheHolePunchLayer) {
732+
SFTRACE_NAME("cacheHolePunchLayer");
727733
drawHolePunchLayer(renderengine, display, dstTexture);
728734
}
729735

730736
if (config.cacheSolidLayers) {
737+
SFTRACE_NAME("cacheSolidLayers");
731738
drawSolidLayers(renderengine, display, dstTexture);
732739
drawSolidLayers(renderengine, p3Display, dstTexture);
733740
}
734741

735742
if (config.cacheSolidDimmedLayers) {
743+
SFTRACE_NAME("cacheSolidDimmedLayers");
736744
drawSolidDimmedLayers(renderengine, display, dstTexture);
737745
}
738746

739747
if (config.cacheShadowLayers) {
748+
SFTRACE_NAME("cacheShadowLayers");
740749
drawShadowLayers(renderengine, display, srcTexture);
741750
drawShadowLayers(renderengine, p3Display, srcTexture);
742751
}
743752

744753
if (renderengine->supportsBackgroundBlur()) {
754+
SFTRACE_NAME("supportsBackgroundBlur");
745755
drawBlurLayers(renderengine, display, dstTexture);
746756
}
747757

@@ -776,32 +786,38 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine, PrimeCacheConfig co
776786

777787
for (auto texture : textures) {
778788
if (config.cacheImageLayers) {
789+
SFTRACE_NAME("cacheImageLayers");
779790
drawImageLayers(renderengine, display, dstTexture, texture);
780791
}
781792

782793
if (config.cacheImageDimmedLayers) {
794+
SFTRACE_NAME("cacheImageDimmedLayers");
783795
drawImageDimmedLayers(renderengine, display, dstTexture, texture);
784796
drawImageDimmedLayers(renderengine, p3Display, dstTexture, texture);
785797
drawImageDimmedLayers(renderengine, bt2020Display, dstTexture, texture);
786798
}
787799

788800
if (config.cacheClippedLayers) {
801+
SFTRACE_NAME("cacheClippedLayers");
789802
// Draw layers for b/185569240.
790803
drawClippedLayers(renderengine, display, dstTexture, texture);
791804
}
792805

793806
if (com::android::graphics::libgui::flags::edge_extension_shader() &&
794807
config.cacheEdgeExtension) {
808+
SFTRACE_NAME("cacheEdgeExtension");
795809
drawEdgeExtensionLayers(renderengine, display, dstTexture, texture);
796810
drawEdgeExtensionLayers(renderengine, p3Display, dstTexture, texture);
797811
}
798812
}
799813

800814
if (config.cachePIPImageLayers) {
815+
SFTRACE_NAME("cachePIPImageLayers");
801816
drawPIPImageLayer(renderengine, display, dstTexture, externalTexture);
802817
}
803818

804819
if (config.cacheTransparentImageDimmedLayers) {
820+
SFTRACE_NAME("cacheTransparentImageDimmedLayers");
805821
drawTransparentImageDimmedLayers(renderengine, bt2020Display, dstTexture,
806822
externalTexture);
807823
drawTransparentImageDimmedLayers(renderengine, display, dstTexture, externalTexture);
@@ -811,10 +827,12 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine, PrimeCacheConfig co
811827
}
812828

813829
if (config.cacheClippedDimmedImageLayers) {
830+
SFTRACE_NAME("cacheClippedDimmedImageLayers");
814831
drawClippedDimmedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
815832
}
816833

817834
if (config.cacheUltraHDR) {
835+
SFTRACE_NAME("cacheUltraHDR");
818836
drawBT2020ClippedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
819837

820838
drawBT2020ImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
@@ -833,7 +851,10 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine, PrimeCacheConfig co
833851
};
834852
auto layers = std::vector<LayerSettings>{layer};
835853
// call get() to make it synchronous
836-
renderengine->drawLayers(display, layers, dstTexture, base::unique_fd()).get();
854+
{
855+
SFTRACE_NAME("finalLayer");
856+
renderengine->drawLayers(display, layers, dstTexture, base::unique_fd()).get();
857+
}
837858

838859
const nsecs_t timeAfter = systemTime();
839860
const float compileTimeMs = static_cast<float>(timeAfter - timeBefore) / 1.0E6;

0 commit comments

Comments
 (0)