Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 777ba909 authored by Bruno BELANYI's avatar Bruno BELANYI Committed by Android (Google) Code Review
Browse files

Merge "RenderEngine, SF: gate HDR priming behind property" into main

parents 947407b0 b9b5b706
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ public:
    // This interface, while still in use until a suitable replacement is built,
    // should be considered deprecated, minus some methods which still may be
    // used to support legacy behavior.
    virtual std::future<void> primeCache() = 0;
    virtual std::future<void> primeCache(bool shouldPrimeUltraHDR) = 0;

    // dump the extension strings. always call the base class.
    virtual void dump(std::string& result) = 0;
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ public:
    RenderEngine();
    ~RenderEngine() override;

    MOCK_METHOD0(primeCache, std::future<void>());
    MOCK_METHOD1(primeCache, std::future<void>(bool));
    MOCK_METHOD1(dump, void(std::string&));
    MOCK_CONST_METHOD0(getMaxTextureSize, size_t());
    MOCK_CONST_METHOD0(getMaxViewportDims, size_t());
+12 −8
Original line number Diff line number Diff line
@@ -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 @@ static void drawP3ImageLayers(SkiaRenderEngine* renderengine, const DisplaySetti
//    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,6 +756,8 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) {
                                         externalTexture);

        drawClippedDimmedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);

        if (shouldPrimeUltraHDR) {
            drawBT2020ClippedImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);

            drawBT2020ImageLayers(renderengine, bt2020Display, dstTexture, externalTexture);
@@ -765,6 +768,7 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) {
            drawExtendedHDRImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);

            drawP3ImageLayers(renderengine, p3DisplayEnhance, dstTexture, externalTexture);
        }

        // draw one final layer synchronously to force GL submit
        LayerSettings layer{
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ class SkiaRenderEngine;

class Cache {
public:
    static void primeShaderCache(SkiaRenderEngine*);
    static void primeShaderCache(SkiaRenderEngine*, bool shouldPrimeUltraHDR);

private:
    Cache() = default;
+2 −2
Original line number Diff line number Diff line
@@ -243,8 +243,8 @@ namespace skia {

using base::StringAppendF;

std::future<void> SkiaRenderEngine::primeCache() {
    Cache::primeShaderCache(this);
std::future<void> SkiaRenderEngine::primeCache(bool shouldPrimeUltraHDR) {
    Cache::primeShaderCache(this, shouldPrimeUltraHDR);
    return {};
}

Loading