1 /* 2 * Copyright (c) 2019, Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included 12 * in all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 //! 23 //! \file mos_utilities_common.h 24 //! \brief Common OS service across different platform 25 //! \details Common OS service across different platform 26 //! 27 #ifndef __MOS_UTILITIES_COMMON_H__ 28 #define __MOS_UTILITIES_COMMON_H__ 29 30 #include "mos_defs.h" 31 32 #ifndef __MOS_USER_FEATURE_WA_ 33 #define __MOS_USER_FEATURE_WA_ 34 #endif 35 //------------------------------------------------------------------------------ 36 // SECTION: Media User Feature Control 37 // 38 // ABSTRACT: Is an abstraction to read and write system level settings relating 39 // to GEN media driver. 40 //------------------------------------------------------------------------------ 41 42 //! 43 //! \brief ASSERT when failing to read user feature key or default user feature key value, 44 //! according to MOS_UserFeature_ReadValue_ID. 45 //! 46 #define MOS_USER_FEATURE_INVALID_KEY_ASSERT(_expr) \ 47 if ((_expr) == MOS_STATUS_NULL_POINTER) \ 48 { \ 49 MOS_OS_ASSERT(false); \ 50 } 51 52 //! 53 //! \brief User Feature Type maximum and minimum data size 54 //! 55 #define MOS_USER_CONTROL_MIN_DATA_SIZE 128 56 #define MOS_USER_CONTROL_MAX_DATA_SIZE 2048 57 #define MOS_USER_MAX_STRING_COUNT 128 58 59 #define MOS_USER_FEATURE_MAX_UINT32_STR_VALUE "4294967295" 60 61 //! MOS User Feature 62 #define __NULL_USER_FEATURE_VALUE_WRITE_DATA__ \ 63 { \ 64 __MOS_USER_FEATURE_KEY_INVALID_ID, { {0}, 0 } \ 65 } 66 #ifdef __MOS_USER_FEATURE_WA_ 67 #define __NULL_USER_FEATURE_VALUE__ \ 68 { \ 69 __MOS_USER_FEATURE_KEY_INVALID_ID, nullptr, nullptr, nullptr, nullptr, MOS_USER_FEATURE_TYPE_INVALID, MOS_USER_FEATURE_VALUE_TYPE_INVALID, nullptr, nullptr, false, 0, nullptr, MOS_USER_FEATURE_EFFECT_ALWAYS, {0}, { {0}, 0 } \ 70 } 71 #define MOS_DECLARE_UF_KEY(Id, ValueName, Readpath, Writepath, Group, Type, ValueType, DefaultValue, Description) \ 72 { \ 73 Id, ValueName, Group, Readpath, Writepath, Type, ValueType, DefaultValue, Description, false, 1, nullptr, MOS_USER_FEATURE_EFFECT_ALWAYS, {0}, { {0}, 0 } \ 74 } 75 // The MOS_DECLARE_UF_KEY_DBGONLY macro will make the user feature key read only return default value in release build without accessing user setting 76 // it is an alternative way for removing the key defintion entirely in release driver, and still provide an unified place for default values of the 77 // user feature key read request that is needed for release driver 78 #define MOS_DECLARE_UF_KEY_DBGONLY(Id, ValueName, Readpath, Writepath, Group, Type, ValueType, DefaultValue, Description) \ 79 { \ 80 Id, ValueName, Group, Readpath, Writepath, Type, ValueType, DefaultValue, Description, false, 1, nullptr, MOS_USER_FEATURE_EFFECT_DEBUGONLY, {0}, { {0}, 0 } \ 81 } 82 #else 83 #define __NULL_USER_FEATURE_VALUE__ \ 84 { \ 85 __MOS_USER_FEATURE_KEY_INVALID_ID, nullptr, nullptr, nullptr, nullptr, MOS_USER_FEATURE_TYPE_INVALID, MOS_USER_FEATURE_VALUE_TYPE_INVALID, nullptr, nullptr, false, 0, nullptr, MOS_USER_FEATURE_EFFECT_ALWAYS, { {0}, 0 } \ 86 } 87 #define MOS_DECLARE_UF_KEY(Id, ValueName, Readpath, Writepath, Group, Type, ValueType, DefaultValue, Description) \ 88 { \ 89 Id, ValueName, Group, Readpath, Writepath, Type, ValueType, DefaultValue, Description, false, 1, nullptr, MOS_USER_FEATURE_EFFECT_ALWAYS, { {0}, 0 } \ 90 } 91 #define MOS_DECLARE_UF_KEY_DBGONLY(Id, ValueName, Readpath, Writepath, Group, Type, ValueType, DefaultValue, Description) \ 92 { \ 93 Id, ValueName, Group, Readpath, Writepath, Type, ValueType, DefaultValue, Description, false, 1, nullptr, MOS_USER_FEATURE_EFFECT_DEBUGONLY, { {0}, 0 } \ 94 } 95 #endif 96 #ifndef MAX_USER_FEATURE_FIELD_LENGTH 97 #define MAX_USER_FEATURE_FIELD_LENGTH 256 98 #endif 99 100 //! 101 //! \brief User Feature Value IDs 102 //! 103 typedef enum _MOS_USER_FEATURE_VALUE_ID 104 { 105 __MOS_USER_FEATURE_KEY_INVALID_ID = 0, 106 __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_ENABLE_ID, 107 __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_TH_ID, 108 __MEDIA_USER_FEATURE_VALUE_SOFT_RESET_ENABLE_ID, 109 __MEDIA_USER_FEATURE_VALUE_SIM_IN_USE_ID, 110 __MEDIA_USER_FEATURE_VALUE_FORCE_VDBOX_ID, 111 __MEDIA_USER_FEATURE_VALUE_LINUX_PERFORMANCETAG_ENABLE_ID, 112 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_ID, 113 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_FE_BE_TIMING, 114 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_OUTPUT_FILE, 115 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_BUFFER_SIZE, 116 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_TIMER_REG, 117 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MULTI_PROCESS, 118 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_1, 119 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_2, 120 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_3, 121 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_4, 122 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_5, 123 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_6, 124 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_7, 125 __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_8, 126 __MEDIA_USER_FEATURE_VALUE_DISABLE_KMD_WATCHDOG_ID, 127 __MEDIA_USER_FEATURE_VALUE_SINGLE_TASK_PHASE_ENABLE_ID, 128 __MEDIA_USER_FEATURE_VALUE_AUX_TABLE_16K_GRANULAR_ID, 129 __MEDIA_USER_FEATURE_VALUE_MFE_MBENC_ENABLE_ID, 130 __MEDIA_USER_FEATURE_VALUE_MFE_FIRST_BUFFER_SUBMIT_ID, 131 __MEDIA_USER_FEATURE_VALUE_RC_PANIC_ENABLE_ID, 132 __MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_ENABLE_ID, 133 __MEDIA_USER_FEATURE_VALUE_FORCE_YFYS_ID, 134 __MEDIA_USER_FEATURE_VALUE_DECODE_LOCK_DISABLE_ID, 135 __MEDIA_USER_FEATURE_VALUE_ENCODE_HW_WALKER_ID, 136 __MEDIA_USER_FEATURE_VALUE_ENCODE_SUPPRESS_RECON_PIC_ENABLE_ID, 137 __MEDIA_USER_FEATURE_VALUE_ENCODE_ME_IN_USE_ID, 138 __MEDIA_USER_FEATURE_VALUE_ENCODE_16xME_IN_USE_ID, 139 __MEDIA_USER_FEATURE_VALUE_ENCODE_32xME_IN_USE_ID, 140 __MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_IN_USE_ID, 141 __MEDIA_USER_FEATURE_VALUE_ENCODE_RATECONTROL_METHOD_ID, 142 __MEDIA_USER_FEATURE_VALUE_ENCODE_TARGET_USAGE_OVERRIDE_ID, 143 __MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_FRAME_TRACKING_ID, 144 __MEDIA_USER_FEATURE_VALUE_ENCODE_USED_VDBOX_NUM_ID, 145 __MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_COMPUTE_CONTEXT_ID, 146 __MEDIA_USER_FEATURE_VALUE_DECODE_ENABLE_COMPUTE_CONTEXT_ID, 147 __MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_ME_ENABLE_ID, 148 __MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_16xME_ENABLE_ID, 149 __MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_32xME_ENABLE_ID, 150 __MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_MULTIPRED_ENABLE_ID, 151 __MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_INTRA_REFRESH_QP_THRESHOLD_ID, 152 __MEDIA_USER_FEATURE_VALUE_AVC_FTQ_ENABLE_ID, 153 __MEDIA_USER_FEATURE_VALUE_AVC_CAF_ENABLE_ID, 154 __MEDIA_USER_FEATURE_VALUE_AVC_CAF_DISABLE_HD_ID, 155 __MEDIA_USER_FEATURE_VALUE_AVC_MB_BRC_ENABLE_ID, 156 __MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_ENABLE_ID, 157 __MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_P_ID, 158 __MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_B_ID, 159 __MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_BREF_ID, 160 __MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_ROUNDING_INTER_ENABLE_ID, 161 __MEDIA_USER_FEATURE_VALUE_AVC_SKIP_BIAS_ADJUSTMENT_ENABLE_ID, 162 __MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_INTRA_SCALING_ENABLE_ID, 163 __MEDIA_USER_FEATURE_VALUE_AVC_OLD_MODE_COST_ENABLE_ID, 164 __MEDIA_USER_FEATURE_VALUE_AVC_FORCE_TO_SKIP_ENABLE_ID, 165 __MEDIA_USER_FEATURE_VALUE_AVC_SLIDING_WINDOW_SIZE_ID, 166 __MEDIA_USER_FEATURE_VALUE_VDENC_MB_SLICE_THRESHOLD_ID, 167 __MEDIA_USER_FEATURE_VALUE_VDENC_SLICE_THRESHOLD_TABLE_ID, 168 __MEDIA_USER_FEATURE_VALUE_VDENC_TAIL_INSERTION_DELAY_COUNT_ID, 169 __MEDIA_USER_FEATURE_VALUE_VDENC_THRESHOLD_I_SLICE_SIZE_MINUS_ID, 170 __MEDIA_USER_FEATURE_VALUE_VDENC_THRESHOLD_P_SLICE_SIZE_MINUS_ID, 171 __MEDIA_USER_FEATURE_VALUE_VDENC_CRE_PREFETCH_ENABLE_ID, 172 __MEDIA_USER_FEATURE_VALUE_VDENC_TLB_PREFETCH_ENABLE_ID, 173 __MEDIA_USER_FEATURE_VALUE_VDENC_TLB_ALLOCATION_WA_ENABLE_ID, 174 __MEDIA_USER_FEATURE_VALUE_VDENC_PERMB_STREAMOUT_ENABLE_ID, 175 __MEDIA_USER_FEATURE_VALUE_VDENC_SINGLE_PASS_ENABLE_ID, 176 __MEDIA_USER_FEATURE_VALUE_VDENC_BRC_MOTION_ADAPTIVE_ENABLE_ID, 177 __MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_0_OVERRIDE_ID, 178 __MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_1_OVERRIDE_ID, 179 __MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_2_OVERRIDE_ID, 180 __MEDIA_USER_FEATURE_VALUE_FLATNESS_CHECK_ENABLE_ID, 181 __MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_SEARCH_WINDOW_ENABLE_ID, 182 __MEDIA_USER_FEATURE_VALUE_ADAPTIVE_TRANSFORM_DECISION_ENABLE_ID, 183 __MEDIA_USER_FEATURE_VALUE_WEIGHTED_PREDICTION_L0_IN_USE_ID, 184 __MEDIA_USER_FEATURE_VALUE_WEIGHTED_PREDICTION_L1_IN_USE_ID, 185 __MEDIA_USER_FEATURE_VALUE_FBR_BYPASS_ENABLE_ID, 186 __MEDIA_USER_FEATURE_VALUE_STATIC_FRAME_DETECTION_ENABLE_ID, 187 __MEDIA_USER_FEATURE_VALUE_COLOR_BIT_SUPPORT_ENABLE_ID, 188 __MEDIA_USER_FEATURE_VALUE_GROUP_ID_SELECT_ENABLE_ID, 189 __MEDIA_USER_FEATURE_VALUE_AVC_BRC_ENABLE_ID, 190 __MEDIA_USER_FEATURE_VALUE_AVC_MULTIREF_QP_ID, 191 __MEDIA_USER_FEATURE_VALUE_AVC_BRC_SOFTWARE_ID, 192 __MEDIA_USER_FEATURE_VALUE_AVC_BRC_VAR_COMPU_BYPASS_ID, 193 __MEDIA_USER_FEATURE_VALUE_AVC_BRC_SOFTWARE_IN_USE_ID, 194 __MEDIA_USER_FEATURE_VALUE_ENABLE_CNL_AVC_ENCODE_ARB_WA_ID, 195 __MEDIA_USER_FEATURE_VALUE_HUC_DEMO_KERNEL_ID, 196 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ME_ENABLE_ID, 197 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_16xME_ENABLE_ID, 198 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_HUC_ENABLE_ID, 199 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_MULTIPASS_BRC_ENABLE_ID, 200 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_MULTIPASS_BRC_IN_USE_ID, 201 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ADAPTIVE_REPAK_ENABLE_ID, 202 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ADAPTIVE_REPAK_IN_USE_ID, 203 __MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_SINGLE_PASS_DYS_ENABLE_ID, 204 __MEDIA_USER_FEATURE_VALUE_MEMNINJA_COUNTER_ID, 205 __MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_CMD_INIT_HUC_ID, 206 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_ID, 207 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_SECURE_INPUT_ID, 208 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MODE_ID, 209 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ME_ENABLE_ID, 210 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_16xME_ENABLE_ID, 211 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_32xME_ENABLE_ID, 212 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_16xME_ENABLE_ID, 213 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_32xME_ENABLE_ID, 214 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_26Z_ENABLE_ID, 215 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_REGION_NUMBER_ID, 216 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_NUM_B_KERNEL_SPLIT, 217 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_POWER_SAVING, 218 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_NUM_8x8_INTRA_KERNEL_SPLIT, 219 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_WP_SUPPORT_ID, 220 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_MEDIARESET_TEST_ID, 221 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_RDOQ_ENABLE_ID, 222 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_IFRAME_RDOQ_ENABLE_ID, 223 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MULTIPASS_BRC_ENABLE_ID, 224 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MULTIPASS_BRC_IN_USE_ID, 225 __MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_ID, 226 __MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_PATH_ID, 227 __MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_IN_USE_ID, 228 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_ACQP_ENABLE_ID, 229 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_VQI_ENABLE_ID, 230 __MEDIA_USER_FEATURE_VALUE_FORCE_PAK_PASS_NUM_ID, 231 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_ROUNDING_ENABLE_ID, 232 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_PAKOBJCMD_STREAMOUT_ENABLE_ID, 233 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_LBCONLY_ENABLE_ID, 234 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_PARTIAL_FRAME_UPDATE_ENABLE_ID, 235 __MEDIA_USER_FEATURE_VALUE_HEVC_NUM_THREADS_PER_LCU_ID, 236 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MDF_DISABLE_ID, 237 __MEDIA_USER_FEATURE_VALUE_CODEC_MMC_ENABLE_ID, 238 __MEDIA_USER_FEATURE_VALUE_DECODE_MMC_ENABLE_ID, 239 __MEDIA_USER_FEATURE_VALUE_ENCODE_MMC_ENABLE_ID, 240 __MEDIA_USER_FEATURE_VALUE_CODEC_MMC_IN_USE_ID, 241 __MEDIA_USER_FEATURE_VALUE_DECODE_MMC_IN_USE_ID, 242 __MEDIA_USER_FEATURE_VALUE_DECODE_MPEG2_MODE_ID, 243 __MEDIA_USER_FEATURE_VALUE_DECODE_VC1_MODE_ID, 244 __MEDIA_USER_FEATURE_VALUE_DECODE_AVC_MODE_ID, 245 __MEDIA_USER_FEATURE_VALUE_DECODE_JPEG_MODE_ID, 246 __MEDIA_USER_FEATURE_VALUE_DECODE_VP8_MODE_ID, 247 __MEDIA_USER_FEATURE_VALUE_DECODE_HEVC_MODE_ID, 248 __MEDIA_USER_FEATURE_VALUE_DECODE_VP9_MODE_ID, 249 __MEDIA_USER_FEATURE_VALUE_DECODE_HISTOGRAM_FROM_VEBOX_ID, 250 __MEDIA_USER_FEATURE_VALUE_DECODE_EXTENDED_MMC_IN_USE_ID, 251 __MEDIA_USER_FEATURE_VALUE_ENCODE_MMC_IN_USE_ID, 252 __MEDIA_USER_FEATURE_VALUE_ENCODE_EXTENDED_MMC_IN_USE_ID, 253 __MEDIA_USER_FEATURE_VALUE_MMC_DEC_RT_COMPRESSIBLE_ID, 254 __MEDIA_USER_FEATURE_VALUE_MMC_DEC_RT_COMPRESSMODE_ID, 255 __MEDIA_USER_FEATURE_VALUE_MMC_ENC_RECON_COMPRESSIBLE_ID, 256 __MEDIA_USER_FEATURE_VALUE_MMC_ENC_RECON_COMPRESSMODE_ID, 257 __MEDIA_USER_FEATURE_VALUE_SSEU_SETTING_OVERRIDE_ID, 258 __MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_DEFAULT_STATE_ID, 259 __MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_REQUEST_STATE_ID, 260 __MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_RESOLUTION_THRESHOLD_ID, 261 __MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_TARGET_USAGE_THRESHOLD_ID, 262 __MEDIA_USER_FEATURE_VALUE_SLICE_COUNT_SET_SUPPORT_ID, 263 __MEDIA_USER_FEATURE_VALUE_DYNAMIC_SLICE_SHUTDOWN_ID, 264 __MEDIA_USER_FEATURE_VALUE_ENABLE_VDBOX_BALANCING_ID, 265 __MEDIA_USER_FEATURE_VALUE_MPEG2_SLICE_STATE_ENABLE_ID, 266 __MEDIA_USER_FEATURE_VALUE_MPEG2_ENCODE_BRC_DISTORTION_BUFFER_ENABLE_ID, 267 __MEDIA_USER_FEATURE_VALUE_NUMBER_OF_CODEC_DEVICES_ON_VDBOX1_ID, 268 __MEDIA_USER_FEATURE_VALUE_NUMBER_OF_CODEC_DEVICES_ON_VDBOX2_ID, 269 __MEDIA_USER_FEATURE_VALUE_VDI_MODE_ID, 270 __MEDIA_USER_FEATURE_VALUE_MEDIA_WALKER_MODE_ID, 271 __MEDIA_USER_FEATURE_VALUE_CSC_COEFF_PATCH_MODE_DISABLE_ID, 272 __MEDIA_USER_FEATURE_VALUE_VP8_HW_SCOREBOARD_ENABLE_ID, 273 __MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_ME_ENABLE_ID, 274 __MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_16xME_ENABLE_ID, 275 __MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_REPAK_ENABLE_ID, 276 __MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_MULTIPASS_BRC_ENABLE_ID, 277 __MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_ADAPTIVE_REPAK_ENABLE_ID, 278 #if MOS_COMMAND_BUFFER_DUMP_SUPPORTED 279 __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_BUFFER_ENABLE_ID, 280 #endif // MOS_COMMAND_BUFFER_DUMP_SUPPORTED 281 #if MOS_COMMAND_RESINFO_DUMP_SUPPORTED 282 __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_ENABLE_ID, 283 __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_PATH_ID, 284 #endif // MOS_COMMAND_RESINFO_DUMP_SUPPORTED 285 #if (_DEBUG || _RELEASE_INTERNAL) 286 __MEDIA_USER_FEATURE_VALUE_GROUP_ID_ID, 287 __MEDIA_USER_FEATURE_VALUE_MEDIA_PREEMPTION_ENABLE_ID, 288 __MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_L3TCCNTRL_REG, 289 __MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_MOCS_INDEX, 290 __MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_L3ALLOC_REG, 291 __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_RAMODE, 292 __MEDIA_USER_FEATURE_VALUE_ENCODE_VFE_MAX_THREADS_ID, 293 __MEDIA_USER_FEATURE_VALUE_ENCODE_VFE_MAX_THREADS_SCALING_ID, 294 __MEDIA_USER_FEATURE_VALUE_AVC_FTQ_IN_USE_ID, 295 __MEDIA_USER_FEATURE_VALUE_AVC_CAF_IN_USE_ID, 296 __MEDIA_USER_FEATURE_VALUE_ENCODE_HW_WALKER_MODE_ID, 297 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG_OVERRIDE_ID, 298 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG2_OVERRIDE_ID, 299 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG3_OVERRIDE_ID, 300 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_SQCREG1_OVERRIDE_ID, 301 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_SQCREG4_OVERRIDE_ID, 302 __MEDIA_USER_FEATURE_VALUE_ENCODE_L3_LRA_1_REG1_OVERRIDE_ID, 303 __MEDIA_USER_FEATURE_VALUE_NULL_HW_ACCELERATION_ENABLE_ID, 304 __MEDIA_USER_FEATURE_VALUE_VDBOX_ID_USED, 305 __MEDIA_USER_FEATURE_VALUE_VDENC_IN_USE_ID, 306 __MEDIA_USER_FEATURE_VALUE_ENCODE_CSC_METHOD_ID, 307 __MEDIA_USER_FEATURE_VALUE_ENCODE_RAW_TILE_ID, 308 __MEDIA_USER_FEATURE_VALUE_ENCODE_RAW_FORMAT_ID, 309 __MEDIA_USER_FEATURE_VALUE_ENCODE_CQM_QP_THRESHOLD_ID, 310 __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_ENABLE_ID, 311 __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_SURF_BTI_ID, 312 __MEDIA_USER_FEATURE_VALUE_ROWSTORE_CACHE_DISABLE_ID, 313 __MEDIA_USER_FEATURE_VALUE_INTRAROWSTORECACHE_DISABLE_ID, 314 __MEDIA_USER_FEATURE_VALUE_DEBLOCKINGFILTERROWSTORECACHE_DISABLE_ID, 315 __MEDIA_USER_FEATURE_VALUE_BSDMPCROWSTORECACHE_DISABLE_ID, 316 __MEDIA_USER_FEATURE_VALUE_MPRROWSTORECACHE_DISABLE_ID, 317 __MEDIA_USER_FEATURE_VALUE_VDENCROWSTORECACHE_DISABLE_ID, 318 __MEDIA_USER_FEATURE_VALUE_SIM_ENABLE_ID, 319 __MEDIA_USER_FEATURE_VALUE_IS_CODEC_ROW_STORE_CACHE_ENABLED_ID, 320 __MEDIA_USER_FEATURE_VALUE_BREAK_IN_CODECHAL_CREATE_ID, 321 __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_ID, 322 __MEDIA_USER_FEATURE_VALUE_STREAM_OUT_ENABLE_ID, 323 __MEDIA_USER_FEATURE_VALUE_DECOMPRESS_DECODE_OUTPUT_ID, 324 __MEDIA_USER_FEATURE_VALUE_DECOMPRESS_DECODE_SFC_OUTPUT_ID, 325 __MEDIA_USER_FEATURE_VALUE_CODECHAL_DEBUG_OUTPUT_DIRECTORY_ID, 326 __MEDIA_USER_FEATURE_VALUE_CODECHAL_DUMP_OUTPUT_DIRECTORY_ID, 327 __MEDIA_USER_FEATURE_VALUE_CODECHAL_DEBUG_CFG_GENERATION_ID, 328 __MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_OVERRIDE_ID, 329 __MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_DISABLE_ID, 330 __MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_THRESHOLD_ID, 331 __MEDIA_USER_FEATURE_VALUE_CODECHAL_ENABLE_FAKE_HEADER_SIZE_ID, 332 __MEDIA_USER_FEATURE_VALUE_CODECHAL_FAKE_IFRAME_HEADER_SIZE_ID, 333 __MEDIA_USER_FEATURE_VALUE_CODECHAL_FAKE_PBFRAME_HEADER_SIZE_ID, 334 __MEDIA_USER_FEATURE_VALUE_COMMAND_OVERRIDE_INPUT_FILE_PATH_ID, 335 __MEDIA_USER_FEATURE_VALUE_MHW_BASE_VDENC_INTERFACE_ID, 336 #endif // (_DEBUG || _RELEASE_INTERNAL) 337 __MEDIA_USER_FEATURE_VALUE_STATUS_REPORTING_ENABLE_ID, 338 __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_POSITION_ID, 339 __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_PARAMETERS_ID, 340 #if MOS_MESSAGES_ENABLED 341 __MOS_USER_FEATURE_KEY_MESSAGE_HLT_ENABLED_ID, 342 __MOS_USER_FEATURE_KEY_MESSAGE_HLT_OUTPUT_DIRECTORY_ID, 343 __MOS_USER_FEATURE_KEY_MESSAGE_PRINT_ENABLED_ID, 344 __MOS_USER_FEATURE_KEY_MESSAGE_OS_TAG_ID, 345 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_OS_ID, 346 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_OS_TAG_ID, 347 __MOS_USER_FEATURE_KEY_MESSAGE_HW_TAG_ID, 348 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_HW_ID, 349 //! 350 //! \brief 63____________________________________________________________________________3__________0 351 //! | | All | 352 //! | Reserved |Asrt|level| 353 //! |____________________________________________________________________________|__________| 354 //! 355 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_HW_TAG_ID, 356 __MOS_USER_FEATURE_KEY_MESSAGE_CODEC_TAG_ID, 357 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CODEC_ID, 358 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CODEC_TAG_ID, 359 __MOS_USER_FEATURE_KEY_MESSAGE_VP_TAG_ID, 360 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_VP_ID, 361 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_VP_TAG_ID, 362 __MOS_USER_FEATURE_KEY_MESSAGE_CP_TAG_ID, 363 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CP_ID, 364 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CP_TAG_ID, 365 __MOS_USER_FEATURE_KEY_MESSAGE_DDI_TAG_ID, 366 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_DDI_ID, 367 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_DDI_TAG_ID, 368 __MOS_USER_FEATURE_KEY_MESSAGE_CM_TAG_ID, 369 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CM_ID, 370 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CM_TAG_ID, 371 __MOS_USER_FEATURE_KEY_MESSAGE_SCALABILITY_TAG_ID, 372 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_SCALABILITY_ID, 373 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_SCALABILITY_TAG_ID, 374 __MOS_USER_FEATURE_KEY_MESSAGE_MMC_TAG_ID, 375 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MMC_ID, 376 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MMC_TAG_ID, 377 __MOS_USER_FEATURE_KEY_MESSAGE_BLT_TAG_ID, 378 __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_BLT_ID, 379 __MOS_USER_FEATURE_KEY_SUB_COMPONENT_BLT_TAG_ID, 380 #endif // MOS_MESSAGES_ENABLED 381 __MEDIA_USER_FEATURE_VALUE_HEVC_SF_2_DMA_SUBMITS_ENABLE_ID, 382 __MEDIA_USER_FEATURE_VALUE_HEVCDATROWSTORECACHE_DISABLE_ID, 383 __MEDIA_USER_FEATURE_VALUE_HEVCDFROWSTORECACHE_DISABLE_ID, 384 __MEDIA_USER_FEATURE_VALUE_HEVCSAOROWSTORECACHE_DISABLE_ID, 385 __MEDIA_USER_FEATURE_VALUE_VP9_HVDROWSTORECACHE_DISABLE_ID, 386 __MEDIA_USER_FEATURE_VALUE_VP9_DATROWSTORECACHE_DISABLE_ID, 387 __MEDIA_USER_FEATURE_VALUE_VP9_DFROWSTORECACHE_DISABLE_ID, 388 __MEDIA_USER_FEATURE_VALUE_DDI_DUMP_DIRECTORY_ID, 389 __MEDIA_USER_FEATURE_VALUE_ENCODE_DDI_DUMP_ENABLE_ID, 390 __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_ENABLE_ID, 391 __MEDIA_USER_FEATURE_VALUE_MDF_ETW_ENABLE_ID, 392 __MEDIA_USER_FEATURE_VALUE_MDF_LOG_LEVEL_ID, 393 __MEDIA_USER_FEATURE_VALUE_MDF_UMD_ULT_ENABLE_ID, 394 __MEDIA_USER_FEATURE_VALUE_MDF_CURBE_DUMP_ENABLE_ID, 395 __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_DUMP_ENABLE_ID, 396 __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_ENABLE_ID, 397 __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_COUNTER_ID, 398 __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_COUNTER_ID, 399 __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_DUMP_ID, 400 __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_COUNTER_ID, 401 __MEDIA_USER_FEATURE_VALUE_MDF_DUMPPATH_USER_ID, 402 __MEDIA_USER_FEATURE_VALUE_MDF_EMU_MODE_ENABLE_ID, 403 __MEDIA_USER_FEATURE_VALUE_MDF_DEFAULT_CM_QUEUE_TYPE_ID, 404 __MEDIA_USER_FEATURE_VALUE_MDF_CCS_USE_VE_INTERFACE, 405 __MEDIA_USER_FEATURE_VALUE_MDF_CCS_USE_VE_DEBUG_OVERRIDE, 406 __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_EXECUTION_PATH_ID, 407 __MEDIA_USER_FEATURE_VALUE_MDF_MAX_THREAD_NUM_ID, 408 __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_COHERENT_STATELESSBTI_ID, 409 __MEDIA_USER_FEATURE_ENABLE_RENDER_ENGINE_MMC_ID, 410 __MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID, 411 __VPHAL_VEBOX_OUTPUTPIPE_MODE_ID, 412 __VPHAL_VEBOX_FEATURE_INUSE_ID, 413 __VPHAL_RNDR_SSD_CONTROL_ID, 414 __VPHAL_RNDR_SCOREBOARD_CONTROL_ID, 415 __VPHAL_RNDR_CMFC_CONTROL_ID, 416 #if (_DEBUG || _RELEASE_INTERNAL) 417 __VPHAL_DBG_SURF_DUMP_OUTFILE_KEY_NAME_ID, 418 __VPHAL_DBG_SURF_DUMP_LOCATION_KEY_NAME_ID, 419 __VPHAL_DBG_SURF_DUMP_MANUAL_TRIGGER_KEY_NAME_ID, 420 __VPHAL_DBG_SURF_DUMP_START_FRAME_KEY_NAME_ID, 421 __VPHAL_DBG_SURF_DUMP_END_FRAME_KEY_NAME_ID, 422 __VPHAL_DBG_SURF_DUMPER_ENABLE_PLANE_DUMP, 423 __VPHAL_DBG_SURF_DUMP_ENABLE_AUX_DUMP_ID, 424 __VPHAL_DBG_SURF_DUMPER_RESOURCE_LOCK_ID, 425 __VPHAL_DBG_STATE_DUMP_OUTFILE_KEY_NAME_ID, 426 __VPHAL_DBG_STATE_DUMP_LOCATION_KEY_NAME_ID, 427 __VPHAL_DBG_STATE_DUMP_START_FRAME_KEY_NAME_ID, 428 __VPHAL_DBG_STATE_DUMP_END_FRAME_KEY_NAME_ID, 429 __VPHAL_DBG_PARAM_DUMP_OUTFILE_KEY_NAME_ID, 430 __VPHAL_DBG_PARAM_DUMP_START_FRAME_KEY_NAME_ID, 431 __VPHAL_DBG_PARAM_DUMP_END_FRAME_KEY_NAME_ID, 432 __VPHAL_DBG_DUMP_OUTPUT_DIRECTORY_ID, 433 #endif 434 __VPHAL_SET_SINGLE_SLICE_VEBOX_ID, 435 __VPHAL_BYPASS_COMPOSITION_ID, 436 __VPHAL_VEBOX_DISABLE_SFC_ID, 437 __VPHAL_ENABLE_MMC_ID, 438 __VPHAL_ENABLE_MMC_IN_USE_ID, 439 __VPHAL_PRIMARY_SURFACE_COMPRESS_MODE_ID, 440 __VPHAL_PRIMARY_SURFACE_COMPRESSIBLE_ID, 441 __VPHAL_RT_COMPRESS_MODE_ID, 442 __VPHAL_RT_COMPRESSIBLE_ID, 443 __VPHAL_ENABLE_VEBOX_MMC_DECOMPRESS_ID, 444 __VPHAL_VEBOX_DISABLE_TEMPORAL_DENOISE_FILTER_ID, 445 __VPHAL_ENABLE_SUPER_RESOLUTION_ID, 446 __VPHAL_SUPER_RESOLUTION_MODE_ID, 447 __VPHAL_ENABLE_SUPER_RESOLUTION_EDSR_ID, 448 __VPHAL_SUPER_RESOLUTION_EDSR_MODE_ID, 449 #if (_DEBUG || _RELEASE_INTERNAL) 450 __VPHAL_COMP_8TAP_ADAPTIVE_ENABLE_ID, 451 __VPHAL_RNDR_FORCE_VP_DECOMPRESSED_OUTPUT_ID, 452 #endif 453 #if ((_DEBUG || _RELEASE_INTERNAL) && !EMUL) 454 __VPHAL_RNDR_VEBOX_MODE_0_ID, 455 __VPHAL_RNDR_VEBOX_MODE_0_TO_2_ID, 456 __VPHAL_RNDR_VEBOX_MODE_2_ID, 457 __VPHAL_RNDR_VEBOX_MODE_2_TO_0_ID, 458 #endif 459 #if (_DEBUG || _RELEASE_INTERNAL) 460 __VPHAL_ENABLE_COMPUTE_CONTEXT_ID, 461 #endif 462 __MOS_USER_FEATURE_KEY_VP_CAPS_FF_OVERRIDE_ID, 463 __MOS_USER_FEATURE_KEY_XML_AUTOGEN_ID, 464 __MOS_USER_FEATURE_KEY_XML_FILEPATH_ID, 465 __MOS_USER_FEATURE_KEY_XML_DUMP_GROUPS_ID, 466 __MEDIA_USER_FEATURE_VALUE_FORCE_VEBOX_ID, 467 __MEDIA_USER_FEATURE_VALUE_ENABLE_VEBOX_SCALABILITY_MODE_ID, 468 __MEDIA_USER_FEATURE_VALUE_VEBOX_SPLIT_RATIO_ID, 469 __MEDIA_USER_FEATURE_VALUE_HCP_DECODE_MODE_SWITCH_THRESHOLD1_ID, 470 __MEDIA_USER_FEATURE_VALUE_HCP_DECODE_MODE_SWITCH_THRESHOLD2_ID, 471 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_VE_DEBUG_OVERRIDE, 472 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_HW_SEMAPHORE, 473 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_VDBOX_HW_SEMAPHORE, 474 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_HW_STITCH, 475 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_SUBTHREAD_NUM_ID, 476 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_PAK_ONLY_ID, 477 __MEDIA_USER_FEATURE_VALUE_HEVC_VME_ENCODE_SSE_ENABLE_ID, 478 __MEDIA_USER_FEATURE_VALUE_ENCODE_DISABLE_SCALABILITY, 479 __MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_RDOQ_PERF_DISABLE_ID, 480 __MEDIA_USER_FEATURE_VALUE_WATCHDOG_TIMER_THRESHOLD, 481 __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VIRTUAL_ENGINE_ID, 482 __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VE_CTXSCHEDULING_ID, 483 __MEDIA_USER_FEATURE_VALUE_ENABLE_LINUX_FRAME_SPLIT_ID, 484 __MEDIA_USER_FEATURE_VALUE_ENABLE_ENCODE_VIRTUAL_ENGINE_ID, 485 __MEDIA_USER_FEATURE_VALUE_ENABLE_ENCODE_VE_CTXSCHEDULING_ID, 486 __MEDIA_USER_FEATURE_VALUE_ENABLE_VE_DEBUG_OVERRIDE_ID, 487 __MEDIA_USER_FEATURE_VALUE_ENABLE_HCP_SCALABILITY_DECODE_ID, 488 __MEDIA_USER_FEATURE_VALUE_HCP_DECODE_ALWAYS_FRAME_SPLIT_ID, 489 __MEDIA_USER_FEATURE_VALUE_SCALABILITY_OVERRIDE_SPLIT_WIDTH_IN_MINCB, 490 __MEDIA_USER_FEATURE_VALUE_SCALABILITY_FE_SEPARATE_SUBMISSION_ENABLED_ID, 491 __MEDIA_USER_FEATURE_VALUE_SCALABILITY_FE_SEPARATE_SUBMISSION_IN_USE_ID, 492 __MEDIA_USER_FEATURE_VALUE_HEVC_VME_BRC_LTR_DISABLE_ID, 493 __MEDIA_USER_FEATURE_VALUE_HEVC_VME_BRC_LTR_INTERVAL_ID, 494 __MEDIA_USER_FEATURE_VALUE_HEVC_VME_FORCE_SCALABILITY_ID, 495 __MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_SEMA_RESET_DELAY_ID, 496 __MEDIA_USER_FEATURE_VALUE_SET_CMD_DEFAULT_PARS_FROM_FILES_ID, 497 __MEDIA_USER_FEATURE_VALUE_CMD_PARS_FILES_DIRECORY_ID, 498 __MEDIA_USER_FEATURE_VALUE_APOGEIOS_ENABLE_ID, 499 __MEDIA_USER_FEATURE_VALUE_VPP_APOGEIOS_ENABLE_ID, 500 __MEDIA_USER_FEATURE_VALUE_SUPER_RESOLUTION_ENABLE_ID, 501 __MEDIA_USER_FEATURE_VALUE_SUPER_RESOLUTION_MODE_ID, 502 __MEDIA_USER_FEATURE_VALUE_EXTERNAL_COPY_SYNC_ID, 503 __MEDIA_USER_FEATURE_VALUE_ENABLE_UMD_OCA_ID, 504 __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_BUFFER_LEAKED_ID, 505 __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_1ST_LEVEL_BB_END_MISSED_ID, 506 __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_ADDITIONAL_OCA_BUFFER_ALLOCATED_ID, 507 __MEDIA_USER_FEATURE_VALUE_OCA_STATUS_ID, 508 __MEDIA_USER_FEATURE_VALUE_OCA_ERROR_HINT_ID, 509 __MEDIA_USER_FEATURE_VALUE_IS_INDIRECT_STATE_HEAP_INVALID_ID, 510 __MEDIA_USER_FEATURE_VALUE_ENABLE_SW_BACK_ANNOTATION_ID, 511 __MEDIA_USER_FEATURE_VALUE_ENABLE_CC_STITCHING_ID, 512 #if (_DEBUG || _RELEASE_INTERNAL) 513 __MEDIA_USER_FEATURE_VALUE_ENABLE_SW_STITCHING_ID, 514 __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_MODE_ID, 515 __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_FREQ_ID, 516 __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_HINT_ID, 517 #endif 518 __MEDIA_USER_FEATURE_VALUE_PERF_UTILITY_TOOL_ENABLE_ID, 519 __MEDIA_USER_FEATURE_VALUE_PERF_OUTPUT_DIRECTORY_ID, 520 __MEDIA_USER_FEATURE_VALUE_APO_MOS_PATH_ENABLE_ID, 521 __MEDIA_USER_FEATURE_VALUE_APOGEIOS_HEVCD_ENABLE_ID, 522 __MEDIA_USER_FEATURE_VALUE_RESOURCE_ADDR_DUMP_ENABLE_ID, 523 __MOS_USER_FEATURE_KEY_MAX_ID, 524 } MOS_USER_FEATURE_VALUE_ID; 525 526 //! 527 //! \brief User Feature Type 528 //! 529 typedef enum 530 { 531 MOS_USER_FEATURE_TYPE_INVALID, 532 MOS_USER_FEATURE_TYPE_USER, 533 MOS_USER_FEATURE_TYPE_SYSTEM, 534 } MOS_USER_FEATURE_TYPE, 535 *PMOS_USER_FEATURE_TYPE; 536 537 //! 538 //! \brief User Feature Value type 539 //! 540 typedef enum 541 { 542 MOS_USER_FEATURE_VALUE_TYPE_INVALID, 543 MOS_USER_FEATURE_VALUE_TYPE_BINARY, 544 MOS_USER_FEATURE_VALUE_TYPE_BOOL, 545 MOS_USER_FEATURE_VALUE_TYPE_INT32, 546 MOS_USER_FEATURE_VALUE_TYPE_INT64, 547 MOS_USER_FEATURE_VALUE_TYPE_UINT32, 548 MOS_USER_FEATURE_VALUE_TYPE_UINT64, 549 MOS_USER_FEATURE_VALUE_TYPE_FLOAT, 550 MOS_USER_FEATURE_VALUE_TYPE_STRING, 551 MOS_USER_FEATURE_VALUE_TYPE_MULTI_STRING, 552 } MOS_USER_FEATURE_VALUE_TYPE, 553 *PMOS_USER_FEATURE_VALUE_TYPE; 554 555 //! 556 //! \brief User Feature Notification type 557 //! 558 typedef enum 559 { 560 MOS_USER_FEATURE_NOTIFY_TYPE_INVALID, 561 MOS_USER_FEATURE_NOTIFY_TYPE_VALUE_CHANGE, 562 } MOS_USER_FEATURE_NOTIFY_TYPE, 563 *PMOS_USER_FEATURE_NOTIFY_TYPE; 564 565 //! 566 //! \brief User Feature Data Operation type 567 //! NONE_CUSTOM_DEFAULT_VALUE : None Custom Default Value for Input Data 568 //! CUSTOM_DEFAULT_VALUE_TYPE : With Custom Default Value for Input Data 569 //! 570 typedef enum 571 { 572 MOS_USER_FEATURE_VALUE_DATA_FLAG_NONE_CUSTOM_DEFAULT_VALUE_TYPE = 0, 573 MOS_USER_FEATURE_VALUE_DATA_FLAG_CUSTOM_DEFAULT_VALUE_TYPE, 574 } MOS_USER_FEATURE_VALUE_DATA_FLAG_TYPE, 575 *PMOS_USER_FEATURE_VALUE_DATA_FLAG_TYPE; 576 577 //! 578 //! \brief User Feature Key Effective Range type 579 //! EFFECT_ALWALYS : Effective on all driver builds 580 //! EFFECT_DEBUGONLY : Effective on release-internal and debug driver only 581 //! 582 typedef enum 583 { 584 MOS_USER_FEATURE_EFFECT_ALWAYS = 0, 585 MOS_USER_FEATURE_EFFECT_DEBUGONLY, 586 } MOS_USER_FEATURE_EFFECTIVE_TYPE, 587 *PMOS_USER_FEATURE_EFFECTIVE_TYPE; 588 589 //! 590 //! \brief User Feature String Data 591 //! 592 typedef struct 593 { 594 char * pStringData; 595 uint32_t uMaxSize; 596 uint32_t uSize; 597 } MOS_USER_FEATURE_VALUE_STRING, *PMOS_USER_FEATURE_VALUE_STRING; 598 599 //! 600 //! \brief User Feature Multi String Data 601 //! 602 typedef struct 603 { 604 char * pMultStringData; 605 uint32_t uMaxSize; 606 uint32_t uSize; 607 PMOS_USER_FEATURE_VALUE_STRING pStrings; 608 uint32_t uCount; 609 } MOS_USER_FEATURE_VALUE_MULTI_STRING, *PMOS_USER_FEATURE_VALUE_MULTI_STRING; 610 611 //! 612 //! \brief User Feature Binary Data 613 //! 614 typedef struct 615 { 616 uint8_t *pBinaryData; 617 uint32_t uMaxSize; 618 uint32_t uSize; 619 } MOS_USER_FEATURE_VALUE_BINARY, *PMOS_USER_FEATURE_VALUE_BINARY; 620 621 //! 622 //! \brief User Feature Value Data 623 //! \details union : to store the user feature value 624 //! i32DataFlag : the input data valye type 625 //! refer to MOS_USER_FEATURE_VALUE_DATA_FLAG_TYPE 626 //! 627 //! 628 typedef struct _MOS_USER_FEATURE_VALUE_DATA 629 { 630 union 631 { 632 int32_t bData; 633 uint32_t u32Data; 634 uint64_t u64Data; 635 int32_t i32Data; 636 int64_t i64Data; 637 float fData; 638 MOS_USER_FEATURE_VALUE_STRING StringData; 639 MOS_USER_FEATURE_VALUE_MULTI_STRING MultiStringData; 640 MOS_USER_FEATURE_VALUE_BINARY BinaryData; 641 }; 642 int32_t i32DataFlag; 643 } MOS_USER_FEATURE_VALUE_DATA, *PMOS_USER_FEATURE_VALUE_DATA; 644 645 //! 646 //! \brief User Feature Value Information 647 //! 648 typedef struct _MOS_USER_FEATURE_VALUE_WRITE_DATA 649 { 650 uint32_t ValueID; 651 MOS_USER_FEATURE_VALUE_DATA Value; 652 } MOS_USER_FEATURE_VALUE_WRITE_DATA, *PMOS_USER_FEATURE_VALUE_WRITE_DATA; 653 654 //! 655 //! \brief User Feature Value Information 656 //! 657 typedef struct _MOS_USER_FEATURE_VALUE_INFO 658 { 659 char * pcName; //store name for the bitmask/enum values 660 uint32_t Value; 661 } MOS_USER_FEATURE_VALUE_INFO, *PMOS_USER_FEATURE_VALUE_INFO; 662 663 //! 664 //! \brief User Feature Data 665 //! 666 typedef struct 667 { 668 uint32_t ValueID; 669 const char * pValueName; 670 const char * pcGroup; //!< User feature key group - eg: MediaSolo, MOS, Codec 671 const char * pcPath; //!< User feature Key Read Path 672 const char * pcWritePath; //!< User feature Key Write Path 673 MOS_USER_FEATURE_TYPE Type; //!< User feature Key User Feature type - eg: System, User 674 MOS_USER_FEATURE_VALUE_TYPE ValueType; //!< User feature key type - eg: bool,dword 675 const char * DefaultValue; //!< User feature key value 676 const char * pcDescription; //!< User feature key description 677 int32_t bExists; //<! Set if the user feature key is defined in the user feature key manager 678 uint32_t uiNumOfValues; //<! Number of valid user feature key values. Useful for user feature keys of type bitmask and enum 679 PMOS_USER_FEATURE_VALUE_INFO pValueInfo; //<! Store information of all valid enum/bit mask values and names 680 MOS_USER_FEATURE_EFFECTIVE_TYPE EffctiveRange; //<! User feature key effect range, eg: Always effective / debug driver only 681 // Temp WA for old user feature read/write 682 #ifdef __MOS_USER_FEATURE_WA_ 683 union 684 { 685 int32_t bData; 686 uint32_t u32Data; 687 uint64_t u64Data; 688 int32_t i32Data; 689 int64_t i64Data; 690 float fData; 691 MOS_USER_FEATURE_VALUE_STRING StringData; 692 MOS_USER_FEATURE_VALUE_MULTI_STRING MultiStringData; 693 MOS_USER_FEATURE_VALUE_BINARY BinaryData; 694 }; 695 #endif 696 MOS_USER_FEATURE_VALUE_DATA Value; //!< User feature key value 697 } MOS_USER_FEATURE_VALUE, *PMOS_USER_FEATURE_VALUE; 698 699 //! 700 //! \brief User Feature Value Information 701 //! 702 typedef struct 703 { 704 PMOS_USER_FEATURE_VALUE pUserFeatureValue; 705 } MOS_USER_FEATURE_VALUE_MAP, *PMOS_USER_FEATURE_VALUE_MAP; 706 707 //! 708 //! \brief User Feature Notification Data 709 //! 710 typedef struct 711 { 712 MOS_USER_FEATURE_TYPE Type; //!< User Feature Type 713 char * pPath; //!< User Feature Path 714 MOS_USER_FEATURE_NOTIFY_TYPE NotifyType; //!< Notification Type 715 int32_t bTriggered; //!< Notification is triggered or not 716 void * pHandle; //!< OS Specific Handle 717 } MOS_USER_FEATURE_NOTIFY_DATA, *PMOS_USER_FEATURE_NOTIFY_DATA; 718 719 //! 720 //! \brief User Feature Interface 721 //! 722 typedef struct 723 { 724 MOS_USER_FEATURE_TYPE Type; //!< User Feature Type 725 const char * pPath; //!< User Feature Path 726 PMOS_USER_FEATURE_VALUE pValues; //!< Array of User Feature Values 727 uint32_t uiNumValues; //!< Number of User Feature Values 728 } MOS_USER_FEATURE, *PMOS_USER_FEATURE; 729 730 //! 731 //! \brief OS User Feature Interface 732 //! 733 typedef struct _MOS_USER_FEATURE_INTERFACE *PMOS_USER_FEATURE_INTERFACE; 734 typedef struct _MOS_USER_FEATURE_INTERFACE 735 { 736 void * pOsInterface; //!< Pointer to OS Interface 737 int32_t bIsNotificationSupported; //!< Whether Notification feature is supported 738 739 MOS_STATUS (*pfnEnableNotification) 740 ( 741 PMOS_USER_FEATURE_INTERFACE pOsUserFeatureInterface, 742 PMOS_USER_FEATURE_NOTIFY_DATA pNotification); 743 744 MOS_STATUS (*pfnDisableNotification) 745 ( 746 PMOS_USER_FEATURE_INTERFACE pOsUserFeatureInterface, 747 PMOS_USER_FEATURE_NOTIFY_DATA pNotification); 748 749 MOS_STATUS (*pfnParsePath) 750 ( 751 PMOS_USER_FEATURE_INTERFACE pOsUserFeatureInterface, 752 char *const pInputPath, 753 PMOS_USER_FEATURE_TYPE pUserFeatureType, 754 char ** ppSubPath); 755 756 } MOS_USER_FEATURE_INTERFACE; 757 758 //! 759 //! \brief User Feature Notification Data Common 760 //! 761 typedef struct 762 { 763 void * UFKey; //!< Handle to User Feature Key 764 HANDLE hEvent; //!< Handle to User Feature Key Event 765 PTP_WAIT hWaitEvent; //!< Handle to User Feature Key Wait Event 766 } MOS_USER_FEATURE_NOTIFY_DATA_COMMON, *PMOS_USER_FEATURE_NOTIFY_DATA_COMMON; 767 768 //! 769 //! \brief User Feature Key Path Info 770 //! 771 typedef struct 772 { 773 char * Path; 774 uint32_t Length; 775 uint32_t RefCnt; 776 } MOS_USER_FEATURE_KEY_PATH_INFO, *PMOS_USER_FEATURE_KEY_PATH_INFO; 777 778 #ifdef __cplusplus 779 //Memory alloc fail simulatiion related defination 780 #if (_DEBUG || _RELEASE_INTERNAL) 781 #define NO_ALLOC_ALIGNMENT (1) 782 #endif //(_DEBUG || _RELEASE_INTERNAL) 783 #endif 784 #endif // __MOS_UTILITIES_COMMON_H__ 785