Loading libs/binder/rust/src/binder.rs +2 −2 Original line number Original line Diff line number Diff line Loading @@ -1086,7 +1086,7 @@ macro_rules! declare_binder_enum { { { $( #[$attr:meta] )* $( #[$attr:meta] )* $enum:ident : [$backing:ty; $size:expr] { $enum:ident : [$backing:ty; $size:expr] { $( $name:ident = $value:expr, )* $( $( #[$value_attr:meta] )* $name:ident = $value:expr, )* } } } => { } => { $( #[$attr] )* $( #[$attr] )* Loading @@ -1094,7 +1094,7 @@ macro_rules! declare_binder_enum { #[allow(missing_docs)] #[allow(missing_docs)] pub struct $enum(pub $backing); pub struct $enum(pub $backing); impl $enum { impl $enum { $( #[allow(missing_docs)] pub const $name: Self = Self($value); )* $( $( #[$value_attr] )* #[allow(missing_docs)] pub const $name: Self = Self($value); )* #[inline(always)] #[inline(always)] #[allow(missing_docs)] #[allow(missing_docs)] Loading libs/gui/SurfaceComposerClient.cpp +4 −5 Original line number Original line Diff line number Diff line Loading @@ -1421,7 +1421,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer( SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer( const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer, const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer, const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& frameNumber, const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& optFrameNumber, ReleaseBufferCallback callback) { ReleaseBufferCallback callback) { layer_state_t* s = getLayerState(sc); layer_state_t* s = getLayerState(sc); if (!s) { if (!s) { Loading @@ -1433,10 +1433,9 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe std::shared_ptr<BufferData> bufferData = std::make_shared<BufferData>(); std::shared_ptr<BufferData> bufferData = std::make_shared<BufferData>(); bufferData->buffer = buffer; bufferData->buffer = buffer; if (frameNumber) { uint64_t frameNumber = sc->resolveFrameNumber(optFrameNumber); bufferData->frameNumber = *frameNumber; bufferData->frameNumber = frameNumber; bufferData->flags |= BufferData::BufferDataChange::frameNumberChanged; bufferData->flags |= BufferData::BufferDataChange::frameNumberChanged; } if (fence) { if (fence) { bufferData->acquireFence = *fence; bufferData->acquireFence = *fence; bufferData->flags |= BufferData::BufferDataChange::fenceChanged; bufferData->flags |= BufferData::BufferDataChange::fenceChanged; Loading libs/gui/SurfaceControl.cpp +13 −0 Original line number Original line Diff line number Diff line Loading @@ -280,5 +280,18 @@ sp<SurfaceControl> SurfaceControl::getParentingLayer() { return this; return this; } } uint64_t SurfaceControl::resolveFrameNumber(const std::optional<uint64_t>& frameNumber) { if (frameNumber.has_value()) { auto ret = frameNumber.value(); // Set the fallback to something far enough ahead that in the unlikely event of mixed // "real" frame numbers and fallback frame numbers, we still won't collide in any // meaningful capacity mFallbackFrameNumber = ret + 100; return ret; } else { return mFallbackFrameNumber++; } } // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- }; // namespace android }; // namespace android libs/gui/include/gui/SurfaceControl.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <stdint.h> #include <stdint.h> #include <sys/types.h> #include <sys/types.h> #include <optional> #include <utils/RefBase.h> #include <utils/RefBase.h> #include <utils/threads.h> #include <utils/threads.h> Loading Loading @@ -98,6 +99,8 @@ public: sp<SurfaceControl> getParentingLayer(); sp<SurfaceControl> getParentingLayer(); uint64_t resolveFrameNumber(const std::optional<uint64_t>& frameNumber); private: private: // can't be copied // can't be copied SurfaceControl& operator = (SurfaceControl& rhs); SurfaceControl& operator = (SurfaceControl& rhs); Loading @@ -124,6 +127,7 @@ private: uint32_t mHeight; uint32_t mHeight; PixelFormat mFormat; PixelFormat mFormat; uint32_t mCreateFlags; uint32_t mCreateFlags; uint64_t mFallbackFrameNumber = 100; }; }; }; // namespace android }; // namespace android Loading libs/renderengine/skia/SkiaGLRenderEngine.cpp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -654,10 +654,14 @@ sk_sp<SkShader> SkiaGLRenderEngine::createRuntimeEffectShader( colorTransform *= colorTransform *= mat4::scale(vec4(parameters.layerDimmingRatio, parameters.layerDimmingRatio, mat4::scale(vec4(parameters.layerDimmingRatio, parameters.layerDimmingRatio, parameters.layerDimmingRatio, 1.f)); parameters.layerDimmingRatio, 1.f)); const auto targetBuffer = parameters.layer.source.buffer.buffer; const auto graphicBuffer = targetBuffer ? targetBuffer->getBuffer() : nullptr; const auto hardwareBuffer = graphicBuffer ? graphicBuffer->toAHardwareBuffer() : nullptr; return createLinearEffectShader(parameters.shader, effect, runtimeEffect, colorTransform, return createLinearEffectShader(parameters.shader, effect, runtimeEffect, colorTransform, parameters.display.maxLuminance, parameters.display.maxLuminance, parameters.display.currentLuminanceNits, parameters.display.currentLuminanceNits, parameters.layer.source.buffer.maxLuminanceNits); parameters.layer.source.buffer.maxLuminanceNits, hardwareBuffer); } } return parameters.shader; return parameters.shader; } } Loading Loading
libs/binder/rust/src/binder.rs +2 −2 Original line number Original line Diff line number Diff line Loading @@ -1086,7 +1086,7 @@ macro_rules! declare_binder_enum { { { $( #[$attr:meta] )* $( #[$attr:meta] )* $enum:ident : [$backing:ty; $size:expr] { $enum:ident : [$backing:ty; $size:expr] { $( $name:ident = $value:expr, )* $( $( #[$value_attr:meta] )* $name:ident = $value:expr, )* } } } => { } => { $( #[$attr] )* $( #[$attr] )* Loading @@ -1094,7 +1094,7 @@ macro_rules! declare_binder_enum { #[allow(missing_docs)] #[allow(missing_docs)] pub struct $enum(pub $backing); pub struct $enum(pub $backing); impl $enum { impl $enum { $( #[allow(missing_docs)] pub const $name: Self = Self($value); )* $( $( #[$value_attr] )* #[allow(missing_docs)] pub const $name: Self = Self($value); )* #[inline(always)] #[inline(always)] #[allow(missing_docs)] #[allow(missing_docs)] Loading
libs/gui/SurfaceComposerClient.cpp +4 −5 Original line number Original line Diff line number Diff line Loading @@ -1421,7 +1421,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer( SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer( const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer, const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer, const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& frameNumber, const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& optFrameNumber, ReleaseBufferCallback callback) { ReleaseBufferCallback callback) { layer_state_t* s = getLayerState(sc); layer_state_t* s = getLayerState(sc); if (!s) { if (!s) { Loading @@ -1433,10 +1433,9 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe std::shared_ptr<BufferData> bufferData = std::make_shared<BufferData>(); std::shared_ptr<BufferData> bufferData = std::make_shared<BufferData>(); bufferData->buffer = buffer; bufferData->buffer = buffer; if (frameNumber) { uint64_t frameNumber = sc->resolveFrameNumber(optFrameNumber); bufferData->frameNumber = *frameNumber; bufferData->frameNumber = frameNumber; bufferData->flags |= BufferData::BufferDataChange::frameNumberChanged; bufferData->flags |= BufferData::BufferDataChange::frameNumberChanged; } if (fence) { if (fence) { bufferData->acquireFence = *fence; bufferData->acquireFence = *fence; bufferData->flags |= BufferData::BufferDataChange::fenceChanged; bufferData->flags |= BufferData::BufferDataChange::fenceChanged; Loading
libs/gui/SurfaceControl.cpp +13 −0 Original line number Original line Diff line number Diff line Loading @@ -280,5 +280,18 @@ sp<SurfaceControl> SurfaceControl::getParentingLayer() { return this; return this; } } uint64_t SurfaceControl::resolveFrameNumber(const std::optional<uint64_t>& frameNumber) { if (frameNumber.has_value()) { auto ret = frameNumber.value(); // Set the fallback to something far enough ahead that in the unlikely event of mixed // "real" frame numbers and fallback frame numbers, we still won't collide in any // meaningful capacity mFallbackFrameNumber = ret + 100; return ret; } else { return mFallbackFrameNumber++; } } // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- }; // namespace android }; // namespace android
libs/gui/include/gui/SurfaceControl.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <stdint.h> #include <stdint.h> #include <sys/types.h> #include <sys/types.h> #include <optional> #include <utils/RefBase.h> #include <utils/RefBase.h> #include <utils/threads.h> #include <utils/threads.h> Loading Loading @@ -98,6 +99,8 @@ public: sp<SurfaceControl> getParentingLayer(); sp<SurfaceControl> getParentingLayer(); uint64_t resolveFrameNumber(const std::optional<uint64_t>& frameNumber); private: private: // can't be copied // can't be copied SurfaceControl& operator = (SurfaceControl& rhs); SurfaceControl& operator = (SurfaceControl& rhs); Loading @@ -124,6 +127,7 @@ private: uint32_t mHeight; uint32_t mHeight; PixelFormat mFormat; PixelFormat mFormat; uint32_t mCreateFlags; uint32_t mCreateFlags; uint64_t mFallbackFrameNumber = 100; }; }; }; // namespace android }; // namespace android Loading
libs/renderengine/skia/SkiaGLRenderEngine.cpp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -654,10 +654,14 @@ sk_sp<SkShader> SkiaGLRenderEngine::createRuntimeEffectShader( colorTransform *= colorTransform *= mat4::scale(vec4(parameters.layerDimmingRatio, parameters.layerDimmingRatio, mat4::scale(vec4(parameters.layerDimmingRatio, parameters.layerDimmingRatio, parameters.layerDimmingRatio, 1.f)); parameters.layerDimmingRatio, 1.f)); const auto targetBuffer = parameters.layer.source.buffer.buffer; const auto graphicBuffer = targetBuffer ? targetBuffer->getBuffer() : nullptr; const auto hardwareBuffer = graphicBuffer ? graphicBuffer->toAHardwareBuffer() : nullptr; return createLinearEffectShader(parameters.shader, effect, runtimeEffect, colorTransform, return createLinearEffectShader(parameters.shader, effect, runtimeEffect, colorTransform, parameters.display.maxLuminance, parameters.display.maxLuminance, parameters.display.currentLuminanceNits, parameters.display.currentLuminanceNits, parameters.layer.source.buffer.maxLuminanceNits); parameters.layer.source.buffer.maxLuminanceNits, hardwareBuffer); } } return parameters.shader; return parameters.shader; } } Loading