[VP] enable vebox scalability test with release driver in linux
read vebox scalability related regkey in release build
diff --git a/media_driver/agnostic/common/os/mos_os.h b/media_driver/agnostic/common/os/mos_os.h
index 04692d6..61c9038 100644
--- a/media_driver/agnostic/common/os/mos_os.h
+++ b/media_driver/agnostic/common/os/mos_os.h
@@ -253,6 +253,13 @@
int32_t bDisableLockForTranscode; //!< Disable the lock function for transcode perf.
} MOS_SYNC_PARAMS, *PMOS_SYNC_PARAMS;
+typedef enum _MOS_SCALABILITY_ENABLE_MODE
+{
+ MOS_SCALABILITY_ENABLE_MODE_FALSE = 0,
+ MOS_SCALABILITY_ENABLE_MODE_DEFAULT = 0x0001,
+ MOS_SCALABILITY_ENABLE_MODE_USER_FORCE = 0x0010
+} MOS_SCALABILITY_ENABLE_MODE;
+
#if (_DEBUG || _RELEASE_INTERNAL)
//!
//! \brief for forcing VDBOX
@@ -283,13 +290,6 @@
MOS_FORCE_VEBOX_1_2_3_4 = 0x1234
} MOS_FORCE_VEBOX;
-typedef enum _MOS_SCALABILITY_ENABLE_MODE
-{
- MOS_SCALABILITY_ENABLE_MODE_FALSE = 0,
- MOS_SCALABILITY_ENABLE_MODE_DEFAULT = 0x0001,
- MOS_SCALABILITY_ENABLE_MODE_USER_FORCE = 0x0010
-} MOS_SCALABILITY_ENABLE_MODE;
-
#define MOS_FORCEVEBOX_VEBOXID_BITSNUM 4 //each VEBOX ID occupies 4 bits see defintion MOS_FORCE_VEBOX
#define MOS_FORCEVEBOX_MASK 0xf
diff --git a/media_driver/linux/common/os/mos_interface.cpp b/media_driver/linux/common/os/mos_interface.cpp
index 85a1eb0..f2d5b4a 100644
--- a/media_driver/linux/common/os/mos_interface.cpp
+++ b/media_driver/linux/common/os/mos_interface.cpp
@@ -144,6 +144,7 @@
EXTRA_PARAMS extraParams)
{
MOS_USER_FEATURE_VALUE_DATA userFeatureData = {};
+ MOS_STATUS eStatusUserFeature = MOS_STATUS_SUCCESS;
MOS_OS_FUNCTION_ENTER;
MOS_OS_CHK_NULL_RETURN(streamState);
@@ -211,7 +212,7 @@
//1:by default for scalable decode mode
//0:for legacy decode mode
MosUtilities::MosZeroMemory(&userFeatureData, sizeof(userFeatureData));
- MOS_STATUS eStatusUserFeature = MosUtilities::MosUserFeatureReadValueID(
+ eStatusUserFeature = MosUtilities::MosUserFeatureReadValueID(
nullptr,
__MEDIA_USER_FEATURE_VALUE_ENABLE_HCP_SCALABILITY_DECODE_ID,
&userFeatureData,
@@ -250,6 +251,7 @@
&userFeatureData,
(MOS_CONTEXT_HANDLE) nullptr);
(*streamState)->enableDbgOvrdInVirtualEngine = userFeatureData.u32Data ? true : false;
+#endif
if (component == COMPONENT_VPCommon ||
component == COMPONENT_VPreP ||
@@ -264,6 +266,8 @@
&userFeatureData,
(MOS_CONTEXT_HANDLE) nullptr);
(*streamState)->veboxScalabilityMode = userFeatureData.u32Data ? MOS_SCALABILITY_ENABLE_MODE_DEFAULT : MOS_SCALABILITY_ENABLE_MODE_FALSE;
+
+#if (_DEBUG || _RELEASE_INTERNAL)
if((*streamState)->veboxScalabilityMode
&& (eStatusUserFeature == MOS_STATUS_SUCCESS))
{
@@ -292,8 +296,8 @@
&userFeatureData,
(MOS_CONTEXT_HANDLE) nullptr);
(*streamState)->eForceVebox = (MOS_FORCE_VEBOX)userFeatureData.u32Data;
- }
#endif
+ }
MOS_USER_FEATURE_VALUE_WRITE_DATA userFeatureWriteData = __NULL_USER_FEATURE_VALUE_WRITE_DATA__;
// Report if pre-si environment is in use
diff --git a/media_driver/linux/common/os/mos_os_specific.c b/media_driver/linux/common/os/mos_os_specific.c
index 6fda6f2..b6251e7 100644
--- a/media_driver/linux/common/os/mos_os_specific.c
+++ b/media_driver/linux/common/os/mos_os_specific.c
@@ -7220,10 +7220,12 @@
PLATFORM Platform;
MOS_STATUS eStatus;
MOS_USER_FEATURE_VALUE_DATA userFeatureData;
+ MOS_STATUS eStatusUserFeature;
MOS_OS_FUNCTION_ENTER;
eStatus = MOS_STATUS_SUCCESS;
+ eStatusUserFeature = MOS_STATUS_SUCCESS;
// Get platform information
memset(&Platform, 0, sizeof(PLATFORM));
@@ -7252,7 +7254,7 @@
//1:by default for scalable decode mode
//0:for legacy decode mode
MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData));
- MOS_STATUS eStatusUserFeature = MOS_UserFeature_ReadValue_ID(
+ eStatusUserFeature = MOS_UserFeature_ReadValue_ID(
NULL,
__MEDIA_USER_FEATURE_VALUE_ENABLE_HCP_SCALABILITY_DECODE_ID,
&userFeatureData,
@@ -7301,6 +7303,7 @@
&userFeatureData,
nullptr);
osInterface->bEnableDbgOvrdInVE = userFeatureData.u32Data ? true : false;
+#endif
// UMD Vebox Virtual Engine Scalability Mode
// 0: disable. can set to 1 only when KMD VE is enabled.
@@ -7311,6 +7314,8 @@
&userFeatureData,
nullptr);
osInterface->bVeboxScalabilityMode = userFeatureData.u32Data ? MOS_SCALABILITY_ENABLE_MODE_DEFAULT : MOS_SCALABILITY_ENABLE_MODE_FALSE;
+
+#if (_DEBUG || _RELEASE_INTERNAL)
if(osInterface->bVeboxScalabilityMode
&& (eStatusUserFeature == MOS_STATUS_SUCCESS))
{
@@ -7337,7 +7342,6 @@
&userFeatureData,
nullptr);
osInterface->eForceVebox = (MOS_FORCE_VEBOX)userFeatureData.u32Data;
-
#endif
}