Merge "hwc: Fix request flag reset and Present() bailout"

This commit is contained in:
Linux Build Service Account
2018-01-31 00:53:16 -08:00
committed by Gerrit - the friendly Code Review server
2 changed files with 7 additions and 13 deletions

View File

@@ -1214,10 +1214,6 @@ HWC2::Error HWCDisplay::GetHdrCapabilities(uint32_t *out_num_types, int32_t *out
HWC2::Error HWCDisplay::CommitLayerStack(void) {
if (shutdown_pending_ || layer_set_.empty()) {
return HWC2::Error::None;
}
if (skip_validate_ && !CanSkipValidate()) {
validated_ = false;
}
@@ -1227,6 +1223,10 @@ HWC2::Error HWCDisplay::CommitLayerStack(void) {
return HWC2::Error::NotValidated;
}
if (shutdown_pending_ || layer_set_.empty()) {
return HWC2::Error::None;
}
DumpInputBuffers();
if (!flush_) {
@@ -1316,8 +1316,11 @@ HWC2::Error HWCDisplay::PostCommitLayerStack(int32_t *out_retire_fence) {
close(layer_buffer->acquire_fence_fd);
layer_buffer->acquire_fence_fd = -1;
}
layer->request.flags = {};
}
client_target_->GetSDMLayer()->request.flags = {};
*out_retire_fence = -1;
if (!flush_) {
// if swapinterval property is set to 0 then close and reset the list retire fence
@@ -1337,8 +1340,6 @@ HWC2::Error HWCDisplay::PostCommitLayerStack(int32_t *out_retire_fence) {
geometry_changes_ = GeometryChanges::kNone;
flush_ = false;
ClearRequestFlags();
return status;
}
@@ -2016,12 +2017,6 @@ DisplayClass HWCDisplay::GetDisplayClass() {
return display_class_;
}
void HWCDisplay::ClearRequestFlags() {
for (Layer *layer : layer_stack_.layers) {
layer->request.flags = {};
}
}
std::string HWCDisplay::Dump() {
std::ostringstream os;
os << "\n------------HWC----------------\n";

View File

@@ -249,7 +249,6 @@ class HWCDisplay : public DisplayEventHandler {
bool IsSurfaceUpdated(const std::vector<LayerRect> &dirty_regions);
bool IsLayerUpdating(const Layer *layer);
uint32_t SanitizeRefreshRate(uint32_t req_refresh_rate);
virtual void ClearRequestFlags();
virtual void GetUnderScanConfig() { }
enum {