diff options
| author | 2018-07-12 13:51:57 -0700 | |
|---|---|---|
| committer | 2018-07-12 13:51:57 -0700 | |
| commit | 34890724dd8ea3fdf09e37e342ae07a84cad4c0c (patch) | |
| tree | 82e0dbf0b83cac0ddb11216d2c66d6e7ba380dc2 | |
| parent | d9a50d724b8b44ef0323d852b200c216ad87dfd6 (diff) | |
| parent | 9885bd4b3faf93a5651f069e52cbb346418e6ca5 (diff) | |
Add current frame and barrier layer info to protobuf.
am: 9885bd4b3f
Change-Id: I97fd95612ed7c84dc97dc50e112d898d9647b7bc
| -rw-r--r-- | services/surfaceflinger/Layer.cpp | 10 | ||||
| -rw-r--r-- | services/surfaceflinger/layerproto/layers.proto | 11 | 
2 files changed, 21 insertions, 0 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 6d5a598e89..9150c3f895 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1987,6 +1987,16 @@ void Layer::writeToProto(LayerProto* layerInfo, LayerVector::StateSet stateSet)      layerInfo->set_refresh_pending(isBufferLatched());      layerInfo->set_window_type(state.type);      layerInfo->set_app_id(state.appId); +    layerInfo->set_curr_frame(mCurrentFrameNumber); + +    for (const auto& pendingState : mPendingStates) { +        auto barrierLayer = pendingState.barrierLayer.promote(); +        if (barrierLayer != nullptr) { +            BarrierLayerProto* barrierLayerProto = layerInfo->add_barrier_layer(); +            barrierLayerProto->set_id(barrierLayer->sequence); +            barrierLayerProto->set_frame_number(pendingState.frameNumber); +        } +    }  }  void Layer::writeToProto(LayerProto* layerInfo, int32_t hwcId) { diff --git a/services/surfaceflinger/layerproto/layers.proto b/services/surfaceflinger/layerproto/layers.proto index 77c6675b7f..edf56abc4a 100644 --- a/services/surfaceflinger/layerproto/layers.proto +++ b/services/surfaceflinger/layerproto/layers.proto @@ -80,6 +80,10 @@ message LayerProto {    optional int32 hwc_composition_type = 35;    // If it's a buffer layer, indicate if the content is protected    optional bool is_protected = 36; +  // Current frame number being rendered. +  optional uint64 curr_frame = 37; +  // A list of barriers that the layer is waiting to update state. +  repeated BarrierLayerProto barrier_layer = 38;  }  message PositionProto { @@ -131,3 +135,10 @@ message ColorProto {    optional float b = 3;    optional float a = 4;  } + +message BarrierLayerProto { +  // layer id the barrier is waiting on. +  optional int32 id = 1; +  // frame number the barrier is waiting on. +  optional uint64 frame_number = 2; +}  |