RenderEngine, SF: gate HDR priming behind property
This should make it so that devices which do not see any benefit from
priming those shaders can avoid computing them at boot time.
Bug: b/295257834
Test: manual - delta of -37 shaders generated before/after this patch
Test: atest librenderengine_test
Change-Id: I01962b690d636def86c1ebed40187eaf74ab0246
diff --git a/libs/renderengine/skia/Cache.cpp b/libs/renderengine/skia/Cache.cpp
index 25296f0..abe0d9b 100644
--- a/libs/renderengine/skia/Cache.cpp
+++ b/libs/renderengine/skia/Cache.cpp
@@ -17,6 +17,7 @@
#include "AutoBackendTexture.h"
#include "SkiaRenderEngine.h"
#include "android-base/unique_fd.h"
+#include "cutils/properties.h"
#include "renderengine/DisplaySettings.h"
#include "renderengine/LayerSettings.h"
#include "renderengine/impl/ExternalTexture.h"
@@ -629,7 +630,7 @@
// kFlushAfterEveryLayer = true
// in external/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
// gPrintSKSL = true
-void Cache::primeShaderCache(SkiaRenderEngine* renderengine) {
+void Cache::primeShaderCache(SkiaRenderEngine* renderengine, bool shouldPrimeUltraHDR) {
const int previousCount = renderengine->reportShadersCompiled();
if (previousCount) {
ALOGD("%d Shaders already compiled before Cache::primeShaderCache ran\n", previousCount);
@@ -755,16 +756,19 @@
externalTexture);
drawClippedDimmedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
- drawBT2020ClippedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
- drawBT2020ImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
- drawBT2020ImageLayers(renderengine, p3Display, dstTexture, externalTexture);
+ if (shouldPrimeUltraHDR) {
+ drawBT2020ClippedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
- drawExtendedHDRImageLayers(renderengine, display, dstTexture, externalTexture);
- drawExtendedHDRImageLayers(renderengine, p3Display, dstTexture, externalTexture);
- drawExtendedHDRImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);
+ drawBT2020ImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
+ drawBT2020ImageLayers(renderengine, p3Display, dstTexture, externalTexture);
- drawP3ImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);
+ drawExtendedHDRImageLayers(renderengine, display, dstTexture, externalTexture);
+ drawExtendedHDRImageLayers(renderengine, p3Display, dstTexture, externalTexture);
+ drawExtendedHDRImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);
+
+ drawP3ImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);
+ }
// draw one final layer synchronously to force GL submit
LayerSettings layer{