Merge tag 'LA.QSSI.14.0.r1-11200-qssi.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/display-commonsys-intf into lineage-21.0
"LA.QSSI.14.0.r1-11200-qssi.0"
* tag 'LA.QSSI.14.0.r1-11200-qssi.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/display-commonsys-intf:
display: add interface functions to support idle content fps hint
smomo_interface: add api to get refresh rate vote for tracked layer
commonsys-intf: gralloc: add buffer dequeue duration in private metadata
Change-Id: Id3ef9a97ebb409c31f4775e0001222589b31a654
diff --git a/gralloc/QtiGralloc.h b/gralloc/QtiGralloc.h
index d25b264..f43da3f 100644
--- a/gralloc/QtiGralloc.h
+++ b/gralloc/QtiGralloc.h
@@ -29,7 +29,7 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Changes from Qualcomm Innovation Center are provided under the following license:
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
@@ -144,6 +144,8 @@
static const MetadataType MetadataType_TimedRendering = {VENDOR_QTI, QTI_TIMED_RENDERING};
static const MetadataType MetadataType_CustomContentMetadata = {VENDOR_QTI,
QTI_CUSTOM_CONTENT_METADATA};
+static const MetadataType MetadataType_BufferDequeueDuration = {VENDOR_QTI,
+ QTI_BUFFER_DEQUEUE_DURATION};
// 0 is also used as invalid value in standard metadata
static const MetadataType MetadataType_Invalid = {VENDOR_QTI, 0};
diff --git a/gralloc/QtiGrallocMetadata.h b/gralloc/QtiGrallocMetadata.h
index 6d139dd..61a4221 100644
--- a/gralloc/QtiGrallocMetadata.h
+++ b/gralloc/QtiGrallocMetadata.h
@@ -29,7 +29,7 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Changes from Qualcomm Innovation Center are provided under the following license:
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
@@ -81,6 +81,7 @@
#define QTI_EARLYNOTIFY_LINECOUNT 10031
// Heap Name
#define QTI_HEAP_NAME 10032
+#define QTI_BUFFER_DEQUEUE_DURATION 10033
// Used to indicate to framework that internal definitions are used instead
#define COMPRESSION_QTI_UBWC 20001
#define INTERLACED_QTI 20002
diff --git a/gralloc/QtiGrallocPriv.h b/gralloc/QtiGrallocPriv.h
index e1d63cb..5fc2db1 100644
--- a/gralloc/QtiGrallocPriv.h
+++ b/gralloc/QtiGrallocPriv.h
@@ -30,41 +30,11 @@
*/
/*
-* Changes from Qualcomm Innovation Center are provided under the following license:
-*
-* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted (subject to the limitations in the
-* disclaimer below) provided that the following conditions are met:
-*
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-*
-* * Redistributions in binary form must reproduce the above
-* copyright notice, this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided
-* with the distribution.
-*
-* * Neither the name of Qualcomm Innovation Center, Inc. nor the
-* names of its contributors may be used to endorse or promote
-* products derived from this software without specific prior
-* written permission.
-*
-* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
#ifndef __QTIGRALLOCPRIV_H__
#define __QTIGRALLOCPRIV_H__
@@ -147,6 +117,8 @@
struct VideoTranscodeStatsMetadata video_transcode_stats;
int32_t videoEarlyNotifyLineCount;
char heapName[MAX_NAME_LEN];
+ /* Last buffer dequeue duration used by SmoMo to detect blocking */
+ int64_t bufferDequeueDuration;
};
namespace qtigralloc {
diff --git a/include/display_extn_intf.h b/include/display_extn_intf.h
index 413ea47..655f341 100644
--- a/include/display_extn_intf.h
+++ b/include/display_extn_intf.h
@@ -95,6 +95,8 @@
virtual void RegisterDisplay(uint32_t display_id) = 0;
virtual void UnregisterDisplay(uint32_t display_id) = 0;
virtual int SetActiveConfig(uint32_t display_id, uint32_t config_id) = 0;
+ virtual void SetSupportedRefreshRates(std::vector<float> fps_list) = 0;
+ virtual void NotifyDisplayUpdateImminent() = 0;
virtual int NotifyEarlyWakeUp(bool gpu, bool display) = 0;
virtual int NotifyDisplayEarlyWakeUp(uint32_t display_id) = 0;
virtual int SetEarlyWakeUpConfig(uint32_t display_id, bool enable) = 0;
diff --git a/include/smomo_interface.h b/include/smomo_interface.h
index 72894bc..68dfb17 100644
--- a/include/smomo_interface.h
+++ b/include/smomo_interface.h
@@ -23,40 +23,11 @@
*/
/*
-* Changes from Qualcomm Innovation Center are provided under the following license:
-*
-* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted (subject to the limitations in the
-* disclaimer below) provided that the following conditions are met:
-*
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-*
-* * Redistributions in binary form must reproduce the above
-* copyright notice, this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided
-* with the distribution.
-*
-* * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
-* contributors may be used to endorse or promote products derived
-* from this software without specific prior written permission.
-*
-* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ *
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
/*! @file smomo.h
@brief Interface file for SmoMo which defines the public interface exposed to SmoMo clients.
@@ -74,6 +45,7 @@
#include <vector>
#include <string>
+#include <map>
#define TIMED_RENDERING_METADATA_FEATURE 1
#define FRC_FRAME_PACING_FEATURE 1
@@ -290,6 +262,15 @@
*/
virtual void SetRefreshRateChangeStatus(bool enable) = 0;
+ /*! @brief Get SmoMo refresh rate votes for the tracked layers
+
+ @details This function is called by SmoMo clients
+ to get the refresh rate votes for SmoMo tracked layers
+
+ @return \link void \endlink
+ */
+ virtual void GetRefreshRateVote(std::map<int, int>& refresh_rate_votes) = 0;
+
};
typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);