Loading libs/renderengine/gl/GLESRenderEngine.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -248,7 +248,8 @@ std::unique_ptr<GLESRenderEngine> GLESRenderEngine::create(int hwcFormat, uint32 bool useContextPriority = extensions.hasContextPriority() && (featureFlags & RenderEngine::USE_HIGH_PRIORITY_CONTEXT); EGLContext protectedContext = EGL_NO_CONTEXT; if (extensions.hasProtectedContent()) { if ((featureFlags & RenderEngine::ENABLE_PROTECTED_CONTEXT) && extensions.hasProtectedContent()) { protectedContext = createEglContext(display, config, nullptr, useContextPriority, Protection::PROTECTED); ALOGE_IF(protectedContext == EGL_NO_CONTEXT, "Can't create protected context"); Loading libs/renderengine/include/renderengine/RenderEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,9 @@ public: enum FeatureFlag { USE_COLOR_MANAGEMENT = 1 << 0, // Device manages color USE_HIGH_PRIORITY_CONTEXT = 1 << 1, // Use high priority context // Create a protected context when if possible ENABLE_PROTECTED_CONTEXT = 1 << 2, }; static std::unique_ptr<impl::RenderEngine> create(int hwcFormat, uint32_t featureFlags, Loading services/surfaceflinger/SurfaceFlinger.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -636,6 +636,9 @@ void SurfaceFlinger::init() { renderengine::RenderEngine::USE_COLOR_MANAGEMENT : 0); renderEngineFeature |= (useContextPriority ? renderengine::RenderEngine::USE_HIGH_PRIORITY_CONTEXT : 0); renderEngineFeature |= (enable_protected_contents(false) ? renderengine::RenderEngine::ENABLE_PROTECTED_CONTEXT : 0); // TODO(b/77156734): We need to stop casting and use HAL types when possible. // Sending maxFrameBufferAcquiredBuffers as the cache size is tightly tuned to single-display. Loading services/surfaceflinger/SurfaceFlingerProperties.cpp +23 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h> Loading Loading @@ -223,6 +238,14 @@ bool use_smart_90_for_video(bool defaultValue) { return defaultValue; } bool enable_protected_contents(bool defaultValue) { auto temp = SurfaceFlingerProperties::enable_protected_contents(); if (temp.has_value()) { return *temp; } return defaultValue; } #define DISPLAY_PRIMARY_SIZE 3 constexpr float kSrgbRedX = 0.4123f; Loading services/surfaceflinger/SurfaceFlingerProperties.h +17 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef SURFACEFLINGERPROPERTIES_H_ #define SURFACEFLINGERPROPERTIES_H_ Loading Loading @@ -59,6 +74,8 @@ int32_t set_idle_timer_ms(int32_t defaultValue); bool use_smart_90_for_video(bool defaultValue); bool enable_protected_contents(bool defaultValue); android::ui::DisplayPrimaries getDisplayNativePrimaries(); } // namespace sysprop } // namespace android Loading Loading
libs/renderengine/gl/GLESRenderEngine.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -248,7 +248,8 @@ std::unique_ptr<GLESRenderEngine> GLESRenderEngine::create(int hwcFormat, uint32 bool useContextPriority = extensions.hasContextPriority() && (featureFlags & RenderEngine::USE_HIGH_PRIORITY_CONTEXT); EGLContext protectedContext = EGL_NO_CONTEXT; if (extensions.hasProtectedContent()) { if ((featureFlags & RenderEngine::ENABLE_PROTECTED_CONTEXT) && extensions.hasProtectedContent()) { protectedContext = createEglContext(display, config, nullptr, useContextPriority, Protection::PROTECTED); ALOGE_IF(protectedContext == EGL_NO_CONTEXT, "Can't create protected context"); Loading
libs/renderengine/include/renderengine/RenderEngine.h +3 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,9 @@ public: enum FeatureFlag { USE_COLOR_MANAGEMENT = 1 << 0, // Device manages color USE_HIGH_PRIORITY_CONTEXT = 1 << 1, // Use high priority context // Create a protected context when if possible ENABLE_PROTECTED_CONTEXT = 1 << 2, }; static std::unique_ptr<impl::RenderEngine> create(int hwcFormat, uint32_t featureFlags, Loading
services/surfaceflinger/SurfaceFlinger.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -636,6 +636,9 @@ void SurfaceFlinger::init() { renderengine::RenderEngine::USE_COLOR_MANAGEMENT : 0); renderEngineFeature |= (useContextPriority ? renderengine::RenderEngine::USE_HIGH_PRIORITY_CONTEXT : 0); renderEngineFeature |= (enable_protected_contents(false) ? renderengine::RenderEngine::ENABLE_PROTECTED_CONTEXT : 0); // TODO(b/77156734): We need to stop casting and use HAL types when possible. // Sending maxFrameBufferAcquiredBuffers as the cache size is tightly tuned to single-display. Loading
services/surfaceflinger/SurfaceFlingerProperties.cpp +23 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h> Loading Loading @@ -223,6 +238,14 @@ bool use_smart_90_for_video(bool defaultValue) { return defaultValue; } bool enable_protected_contents(bool defaultValue) { auto temp = SurfaceFlingerProperties::enable_protected_contents(); if (temp.has_value()) { return *temp; } return defaultValue; } #define DISPLAY_PRIMARY_SIZE 3 constexpr float kSrgbRedX = 0.4123f; Loading
services/surfaceflinger/SurfaceFlingerProperties.h +17 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef SURFACEFLINGERPROPERTIES_H_ #define SURFACEFLINGERPROPERTIES_H_ Loading Loading @@ -59,6 +74,8 @@ int32_t set_idle_timer_ms(int32_t defaultValue); bool use_smart_90_for_video(bool defaultValue); bool enable_protected_contents(bool defaultValue); android::ui::DisplayPrimaries getDisplayNativePrimaries(); } // namespace sysprop } // namespace android Loading