summaryrefslogtreecommitdiff
path: root/composer/hwc_display_builtin.h
diff options
context:
space:
mode:
Diffstat (limited to 'composer/hwc_display_builtin.h')
-rw-r--r--composer/hwc_display_builtin.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/composer/hwc_display_builtin.h b/composer/hwc_display_builtin.h
index 5cd09911..6790dda7 100644
--- a/composer/hwc_display_builtin.h
+++ b/composer/hwc_display_builtin.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -40,6 +40,7 @@
#include "cpuhint.h"
#include "hwc_display.h"
#include "hwc_layers.h"
+#include "display_null.h"
#include "gl_layer_stitch.h"
@@ -94,12 +95,13 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
virtual int Perform(uint32_t operation, ...);
virtual int HandleSecureSession(const std::bitset<kSecureMax> &secure_session,
bool *power_on_pending, bool is_active_secure_display);
- virtual void SetIdleTimeoutMs(uint32_t timeout_ms);
+ virtual void SetIdleTimeoutMs(uint32_t timeout_ms, uint32_t inactive_ms);
virtual HWC2::Error SetFrameDumpConfig(uint32_t count, uint32_t bit_mask_layer_type,
int32_t format, bool post_processed);
virtual int FrameCaptureAsync(const BufferInfo &output_buffer_info, bool post_processed);
virtual int GetFrameCaptureStatus() { return frame_capture_status_; }
virtual DisplayError SetDetailEnhancerConfig(const DisplayDetailEnhancerData &de_data);
+ virtual DisplayError SetHWDetailedEnhancerConfig(void *params);
virtual DisplayError ControlPartialUpdate(bool enable, uint32_t *pending);
virtual HWC2::Error SetReadbackBuffer(const native_handle_t *buffer,
shared_ptr<Fence> acquire_fence,
@@ -112,6 +114,7 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
virtual DisplayError SetDynamicDSIClock(uint64_t bitclk);
virtual DisplayError GetDynamicDSIClock(uint64_t *bitclk);
virtual DisplayError GetSupportedDSIClock(std::vector<uint64_t> *bitclk_rates);
+ virtual DisplayError SetStandByMode(bool enable, bool is_twm);
virtual HWC2::Error UpdateDisplayId(hwc2_display_t id);
virtual HWC2::Error SetPendingRefresh();
virtual HWC2::Error SetPanelBrightness(float brightness);
@@ -145,6 +148,7 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
void Dump(std::ostringstream *os) override;
virtual HWC2::Error SetPowerMode(HWC2::PowerMode mode, bool teardown);
virtual bool HasReadBackBufferSupport();
+ virtual bool IsDisplayIdle();
private:
HWCDisplayBuiltIn(CoreInterface *core_intf, BufferAllocator *buffer_allocator,
@@ -171,6 +175,7 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
bool AllocateStitchBuffer();
void CacheAvrStatus();
void PostCommitStitchLayers();
+ void SetCpuPerfHintLargeCompCycle();
int GetBwCode(const DisplayConfigVariableInfo &attr);
void SetBwLimitHint(bool enable);
void SetPartialUpdate(DisplayConfigFixedInfo fixed_info);
@@ -184,7 +189,7 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
constexpr static int kBwLow = 2;
constexpr static int kBwMedium = 3;
constexpr static int kBwHigh = 4;
-
+ const int kPerfHintLargeCompCycle = 0x00001097;
BufferAllocator *buffer_allocator_ = nullptr;
CPUHint *cpu_hint_ = nullptr;
CWBClient cwb_client_ = kCWBClientNone;
@@ -201,7 +206,6 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
void *output_buffer_base_ = nullptr;
bool pending_refresh_ = true;
bool enable_optimize_refresh_ = false;
- bool enable_poms_during_doze_ = false;
// Members for 1 frame capture in a client provided buffer
bool frame_capture_buffer_queued_ = false;
@@ -222,6 +226,8 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
std::mutex sampling_mutex;
bool api_sampling_vote = false;
bool vndservice_sampling_vote = false;
+ int perf_hint_window_ = 0;
+ int perf_hint_large_comp_cycle_ = 0;
int curr_refresh_rate_ = 0;
bool is_smart_panel_ = false;
const char *kDisplayBwName = "display_bw";
@@ -229,6 +235,10 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode
bool disable_dyn_fps_ = false;
bool enhance_idle_time_ = false;
bool force_reset_validate_ = false;
+
+ // NULL display
+ DisplayNull display_null_;
+ DisplayInterface *stored_display_intf_ = NULL;
};
} // namespace sdm