1 /*
2 * Copyright (c) 2009-2023, 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_util_user_feature_keys.h
24 //! \brief    Definition of user feature keys
25 //! \details  Definition of user feature keys
26 //!           including Codec, VP, and MOS user feature keys
27 //!
28 
29 #ifndef __MOS_UTIL_USER_FEATURE_KEYS_H__
30 #define __MOS_UTIL_USER_FEATURE_KEYS_H__
31 
32 #include "mos_defs.h"
33 #include "mos_util_user_feature_keys_specific.h"
34 
35 #define __MEDIA_USER_FEATURE_VALUE_DECODE_LOCK_DISABLE                  "Disable Decode Lock"
36 
37 //!
38 //! \brief      User feature key for enabling MemNinja Release feature that uses counter value to determine mem leak
39 //! \details    1. MemNinja Counter - Driver reports the sum of internal counters MosMemAllocCounter and
40 //!             MosMemAllocCounterGfx when test completes to this User feature key. Test application checks this value.
41 //!             If MemNinjaCounter != 0, test app can flag test as fail.
42 //!
43 #define __MEDIA_USER_FEATURE_VALUE_MEMNINJA_COUNTER                     "MemNinja Counter"
44 
45 //!
46 //! \brief      User feature key to override the number of Slices/Sub-slices/EUs to suhutdown
47 //! \details    Same setting will apply to all command buffer submissions
48 //!             Byte0 is for num Slices. Byte1 is for num Sub-slices. Bytes 2 and 3 are for num EUs
49 //!             31________________________________16_15______________8_7____________0
50 //!             |                                   |                 |             |
51 //!             |              Num EUs              |  Num Sub-Slices | Num Slices  |
52 //!             |___________________________________|_________________|_____________|
53 //!
54 #define __MEDIA_USER_FEATURE_VALUE_SSEU_SETTING_OVERRIDE                    "SSEU Setting Override"
55 
56 //!
57 //! \brief Keys for Media Processing
58 //!
59 #define __MEDIA_USER_FEATURE_VALUE_APOGEIOS_ENABLE                      "ApogeiosEnable"
60 #define __MEDIA_USER_FEATURE_VALUE_VDI_MODE                             "VDI Mode"
61 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_WALKER_MODE                    "Media Walker Mode"
62 #define __MEDIA_USER_FEATURE_VALUE_RA_MODE_ENABLE                       "RA Mode Enable"
63 #define __MEDIA_USER_FEATURE_VALUE_PROTECT_MODE_ENABLE                  "Protect Mode Enable"
64 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_HCP_SCALABILITY_DECODE        "Enable HCP Scalability Decode"
65 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_VEBOX_SCALABILITY_MODE        "Enable Vebox Scalability"
66 
67 #if (_DEBUG || _RELEASE_INTERNAL)
68 
69 //!
70 //! \brief Dump surface for MediaCopy in/out
71 //!
72 #define __COMMON_DBG_SURF_DUMPER_RESOURCE_LOCK                          "McpySurfaceDumperResourceLockError"
73 #define __COMMON_DBG_SURF_DUMP_OUTFILE_KEY_NAME                         "McpyOutfileLocation"
74 #define __COMMON_DBG_DUMP_OUTPUT_DIRECTORY                              "Common Debug Dump Output Directory"
75 #define __COMMON_DBG_SURF_DUMP_LOCATION_KEY_NAME_IN                     "dumpLocation before MCPY"
76 #define __COMMON_DBG_SURF_DUMP_LOCATION_KEY_NAME_OUT                    "dumpLocation after MCPY"
77 
78 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_ENABLE                   "Media Reset"
79 #define __MEDIA_USER_FEATURE_VALUE_FORCE_RESET_THRESHOLD                "Force media reset threshold"
80 #define __MEDIA_USER_FEATURE_VALUE_FORCE_MEDIA_COMPRESSED_WRITE         "Force Media Compressed Write"
81 
82 //!
83 //! \brief Keys for media
84 //!
85 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_PREEMPTION_ENABLE              "Media Preemption Enable"
86 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_TH                       "Media Reset TH"
87 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_DEBUG_CFG_GENERATION           "Media Debug Cfg Generation"
88 #define __MEDIA_USER_FEATURE_MCPY_MODE                                  "MediaCopy Mode"
89 #define __MEDIA_USER_FEATURE_VALUE_VEBOX_SPLIT_RATIO                    "Vebox Split Ratio"
90 #define __MEDIA_USER_FEATURE_SET_MCPY_FORCE_MODE                        "MCPY Force Mode"
91 #define __MEDIA_USER_FEATURE_ENABLE_VECOPY_SMALL_RESOLUTION             "Enable VE copy small resolution"  // resolution smaller than 64x32
92 
93 //!
94 //! \brief Keys for mmc
95 //!
96 #define __MEDIA_USER_FEATURE_ENABLE_RENDER_ENGINE_MMC                   "Enable Media RenderEngine MMC"
97 
98 //!
99 //! \brief ISA ASM Debug Enable and Debug Surface BTI
100 //!
101 #define __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_ENABLE                 "IsaAsm Debug Enable"
102 #define __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_SURF_BTI               "IsaAsm Debug Surf BT Index"
103 
104 //!
105 //! \brief MediaSolo user feature keys
106 //!
107 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE                             "MediaSolo Enable"
108 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PLATFORM                           "MediaSolo Platform"
109 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_STEPPING                           "MediaSolo Stepping"
110 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_MEM_TRACE                   "MediaSolo Enable Mem Trace"
111 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_LOCAL_MEM                   "MediaSolo Enable Local Mem"
112 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBLOAD_DIRECTORY                  "MediaSolo AubLoad Directory"
113 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_OUTPUT_DIRECTORY                   "MediaSolo Output Directory"
114 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_GT_SKU                             "MediaSolo GT SKU"
115 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_DEBUG_OUTPUT_ENABLE                "MediaSolo Debug Output Enable"
116 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_ENABLE                  "MediaSolo AubCapture Enable"
117 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PATHLIST_ENABLE                    "MediaSolo Patch List Enable"
118 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_RESET_GFXADDR_PER_CONTEXT_DISABLE  "MediaSolo Reset GfxAddr Per Context Disable"
119 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_MMIO_GT_SETTING                    "MediaSolo PAVPC MMIO GT Setting"
120 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PERF_TEST_ENABLE                   "MediaSolo Perf Test Enable"
121 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBLOAD_COMMAND_LINE_OPTIONS       "MediaSolo AubLoad Command Line Options"
122 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_VE_SCHEDULE_FIXED_MODE_ENABLE      "MediaSolo VE Schedule Fixed Mode Enable"
123 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_BMP_DUMP_ENABLE         "MediaSolo AubCapture BMP Dump Enable"
124 #define __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_RECON_DUMP_ENABLE       "MediaSolo AubCapture Recon Dump Enable"
125 
126 //!
127 //! \brief enable Huc based DRM for CHV
128 //!
129 #define __MEDIA_USER_FEATURE_VALUE_HUC_DRM_ENABLE                         "HuC DRM Enable"                 //!< 0: Disable, Others: enable
130 
131 #define __MEDIA_USER_FEATURE_VALUE_MEMORY_NINJA_BEGIN_COUNTER             "MemNinjaBeginCounter"
132 #define __MEDIA_USER_FEATURE_VALUE_MEMORY_NINJA_END_COUNTER               "MemNinjaEndCounter"
133 
134 #define __MEDIA_USER_FEATURE_VALUE_SIM_ENABLE                             "Simulation Enable"
135 #define __MEDIA_USER_FEATURE_VALUE_SIM_IN_USE                             "Simulation In Use"
136 
137 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_VE_DEBUG_OVERRIDE               "Enable VE Debug Override"
138 #define __MEDIA_USER_FEATURE_VALUE_FORCE_VDBOX                            "Force VDBOX"
139 #define __MEDIA_USER_FEATURE_VALUE_FORCE_VEBOX                            "Force VEBOX"
140 #define __MEDIA_USER_FEATURE_VALUE_FORCE_YFYS                             "Force to allocate YfYs"
141 
142 #define __MEDIA_USER_FEATURE_VALUE_NULL_HW_ACCELERATION_ENABLE            "NullHWAccelerationEnable"
143 
144 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_LINUX_FRAME_SPLIT               "Enable Linux Frame Split"
145 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_GUC_SUBMISSION                  "Enable Guc Submission"
146 #define __MEDIA_USER_FEATURE_VALUE_SOFT_RESET_ENABLE                      "Soft Reset"
147 
148 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VE_CTXSCHEDULING         "Enable Decode VE CtxBasedScheduling"
149 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VIRTUAL_ENGINE           "Enable Decode VE"
150 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_ENCODE_VIRTUAL_ENGINE           "Enable Encode VE"
151 
152 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_MEDIA_CCS                       "Enable Media CCS"
153 
154 #endif // (_DEBUG || _RELEASE_INTERNAL)
155 
156 #if MOS_COMMAND_BUFFER_DUMP_SUPPORTED
157 #define __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_BUFFER_ENABLE             "Dump Command Buffer Enable"
158 #endif
159 
160 #if MOS_COMMAND_RESINFO_DUMP_SUPPORTED
161 #define __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_ENABLE               "Dump Command Info Enable"
162 #define __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_PATH                 "Dump Command Info Path"
163 #endif
164 //!
165 //! \brief User feature keys to define debug message levels and assertions.
166 //!
167 
168 #if MOS_MESSAGES_ENABLED
169 
170 //!
171 //! \brief Message level and assert flag for each component and its sub-components.
172 //!         For each component, prints and asserts can be enabled/disabled by a single key (3 bits for level, 1 bit for assert).
173 //!         The second key determines behavior of sub-components (3 bits for level, 1 bit for assert).
174 //!         A message will be printed iff
175 //!            1. "Message Print Enabled" is on,
176 //!            2. The component level is right and
177 //!            3. The sub-component level is right.
178 //!         An assert will trigger iff asserts are enabled both for component and sub-component.
179 
180 #define __MOS_USER_FEATURE_KEY_MESSAGE_HLT_ENABLED                  "Message HLT Enabled"
181 #define __MOS_USER_FEATURE_KEY_MESSAGE_HLT_OUTPUT_DIRECTORY         "Message HLT Output Directory"
182 #define __MOS_USER_FEATURE_KEY_MESSAGE_PRINT_ENABLED                "Message Print Enabled"
183 #define __MOS_USER_FEATURE_KEY_FLUSH_LOG_FILE_BEFORE_SUBMISSION     "Flush Log File Before Submission"
184 #define __MOS_USER_FEATURE_KEY_ENABLE_MEMORY_FOOT_PRINT             "Enable Memory Foot Print"
185 
186 //!
187 //! \brief Message level and assert flag for each component is set through the user feature keys
188 //!        "Mos Message Tags", "Codec Message Tags", "VP Message Tags",
189 //!        "CP Message Tags", "DDI Message Tags" and "CM Message Tags"
190 //!        3 bits for level, 1 bit for assert on/off per sub-component.
191 //!        Each component has to create a separate key for its sub-comps.
192 //!
193 //!        31____________________________________________________________________________3__________0
194 //!         |                                                                 |          |Asrt|level|
195 //!         |________________________________|__________|__________|__________|__________|__________|
196 //!
197 
198 //!
199 //! \brief User feature keys for component MOS:
200 //!
201 #define __MOS_USER_FEATURE_KEY_MESSAGE_OS_TAG                       "Mos Message Tags"
202 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_OS                  "Mos Tags By Sub Component"
203 //!
204 //! \brief 63____________________________________________________________________________3__________0
205 //!         |                                                                            |   Self   |
206 //!         |                    Reserved (HLT can be added as a sub-comp of MOS)        |Asrt|level|
207 //!         |____________________________________________________________________________|__________|
208 //!
209 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_OS_TAG                 "Mos Sub Components Tags"
210 
211 //!
212 //! \brief User feature keys for component MHW:
213 //!
214 #define __MOS_USER_FEATURE_KEY_MESSAGE_MHW_TAG                       "Mhw Message Tags"
215 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MHW                  "Mhw Tags By Sub Component"
216 //!
217 //! \brief 63____________________________________________________________________________3__________0
218 //!         |                                                                            |   Self   |
219 //!         |                    Reserved (HLT can be added as a sub-comp of MOS)        |Asrt|level|
220 //!         |____________________________________________________________________________|__________|
221 //!
222 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MHW_TAG                 "Mhw Sub Components Tags"
223 
224 //!
225 //! \brief User feature keys for component CODEC:
226 //!
227 #define __MOS_USER_FEATURE_KEY_MESSAGE_CODEC_TAG                    "Codec Message Tags"
228 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CODEC               "Codec Tags By Sub Component"
229 //!
230 //! \brief Message level and assert flag for each sub-comp of CodecHal set through this user feature key
231 //!        3 bits for level, 1 bit for assert on/off per sub-component.
232 //!        Each component has to create a separate key for its sub-comps.
233 //!
234 //!        63___________________24_23______20_19______16_15______12_11_______8_7________4_3_________0
235 //!         |                     |  Debug   |  Public  |    HW    |  Encode  |  Decode  |    DDI   |
236 //!         |      Reserved       |Asrt|level|Asrt|level|Asrt|level|Asrt|level|Asrt|level|Asrt|level|
237 //!         |________________________________|__________|__________|__________|__________|__________|
238 //!
239 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CODEC_TAG              "Codec Sub Components Tags"
240 
241 //!
242 //! \brief User feature keys for component VP:
243 //!
244 #define __MOS_USER_FEATURE_KEY_MESSAGE_VP_TAG                       "VP Message Tags"
245 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_VP                  "VP Tags By Sub Component"
246 //!
247 //! \brief Message level and assert flag for each sub-comp of VP set through this user feature key
248 //!        3 bits for level, 1 bit for assert on/off per sub-component.
249 //!        Each component has to create a separate key for its sub-comps.
250 //!
251 //!        63___________________24_23______20_19______16_15______12_11_______8_7________4_3_________0
252 //!         |                     | Reserved |  Render  |  Debug   |  Public  |    HW    |    DDI   |
253 //!         |      Reserved       |Asrt|level|Asrt|level|Asrt|level|Asrt|level|Asrt|level|Asrt|level|
254 //!         |________________________________|__________|__________|__________|__________|__________|
255 //!
256 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_VP_TAG                 "VP Sub Components Tags"
257 
258 //!
259 //! \brief User feature keys for component CP:
260 //!
261 #define __MOS_USER_FEATURE_KEY_MESSAGE_CP_TAG                       "CP Message Tags"
262 //! This can be 0/1, 1 is on, 0 is off
263 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CP                  "CP Tags By Sub Component"
264 //!
265 //! \brief Message level and assert flag for each sub-comp of CP set through this user feature key
266 //!        3 bits for level, 1 bit for assert on/off per sub-component.
267 //!        Each component has to create a separate key for its sub-comps.
268 //!
269 //!     63_____48_47___44_43____40_39_______36_35_________32_31___28_27____24_23___20_19___16_15__12_11__8_7_________4_3_________0
270 //!     |        |  LIB  |  DLL   |AUTHCHANNEL|SECURESESSION|CMD_BFR|UMD_CTXT| CODEC |GPU_HAL|PCH_HAL| OS |  DEVICE   |CP_DDI    |
271 //!     |Reserved|  A|L  |   A|L  |    A|L    |     A|L     |  A|L  |  A|L   |  A|L  |  A|L  |  A|L  |A|L |Asrt|level |Asrt|level|
272 //!     |________|_______|________|___________|_____________|_______|________|_______|_______|_______|____|___________|__________|
273 //!
274 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CP_TAG                 "CP Sub Components Tags"
275 
276 //!
277 //! \brief User feature keys for component DDI:
278 //!
279 #define __MOS_USER_FEATURE_KEY_MESSAGE_DDI_TAG                      "DDI Message Tags"
280 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_DDI                 "DDI Tags By Sub Component"
281 //!
282 //! \brief 63____________________________________________________________________________3__________0
283 //!         |                                                                            |   Self   |
284 //!         |                    Reserved (can create DDI subcomponents)                 |Asrt|level|
285 //!         |____________________________________________________________________________|__________|
286 //!
287 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_DDI_TAG                "DDI Sub Components Tags"
288 
289 //!
290 //! \brief User feature keys for component CM:
291 //!
292 #define __MOS_USER_FEATURE_KEY_MESSAGE_CM_TAG                       "CM Message Tags"
293 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CM                  "CM Tags By Sub Component"
294 //!
295 //! \brief 63________________________________________________________________8_7________4_3_________0
296 //!         |                                                                 |   Self   |    DDI   |
297 //!         |                    Reserved (can create CM subcomponents)       |Asrt|level|Asrt|level|
298 //!         |____________________________________________________________________________|__________|
299 //!
300 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CM_TAG                 "CM Sub Components Tags"
301 
302 //!
303 //! \brief User feature keys for component SCALABILITY:
304 //!
305 #define __MOS_USER_FEATURE_KEY_MESSAGE_SCALABILITY_TAG              "SCALABILITY Message Tags"
306 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_SCALABILITY         "SCALABILITY Tags By Sub Component"
307 //!
308 //! \brief 63____________________________________________________________________________3__________0
309 //!         |                                                                            |   Self   |
310 //!         |                    Reserved (can create SCALABILITY subcomponents)         |Asrt|level|
311 //!         |____________________________________________________________________________|__________|
312 //!
313 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_SCALABILITY_TAG        "SCALABILITY Sub Components Tags"
314 
315 //!
316 //! \brief User feature keys for component MMC:
317 //!
318 #define __MOS_USER_FEATURE_KEY_MESSAGE_MMC_TAG              "MMC Message Tags"
319 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MMC         "MMC Tags By Sub Component"
320 
321 //!
322 //! \brief 63____________________________________________________________________________3__________0
323 //!         |                                                                            |   Self   |
324 //!         |                    Reserved (can create MMC subcomponents)                 |Asrt|level|
325 //!         |____________________________________________________________________________|__________|
326 //!
327 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MMC_TAG        "MMC Sub Components Tags"
328 
329 //!
330 //! \brief User feature keys for component BLT:
331 //!
332 #define __MOS_USER_FEATURE_KEY_MESSAGE_MCPY_TAG             "MCPY Message Tags"
333 #define __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MCPY        "MCPY Tags By Sub Component"
334 //!
335 //! \brief 63____________________________________________________________________________3__________0
336 //!         |                                                                            |   Self   |
337 //!         |                    Reserved (can create MCPY subcomponents)                |Asrt|level|
338 //!         |____________________________________________________________________________|__________|
339 //!
340 #define __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MCPY_TAG       "MCPY Sub Components Tags"
341 
342 #define __MOS_USER_FEATURE_KEY_DISABLE_ASSERT               "DisableAssert"
343 
344 #endif // MOS_MESSAGES_ENABLED
345 
346 //User feature key for MDF
347 #define __MEDIA_USER_FEATURE_VALUE_MDF_ETW_ENABLE                           "MDF ETW Enable"
348 #define __MEDIA_USER_FEATURE_VALUE_MDF_LOG_LEVEL                            "MDF LOG Level"
349 #define __MEDIA_USER_FEATURE_VALUE_MDF_UMD_ULT_ENABLE                       "MDF UMD ULT Enable"
350 #define __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_ENABLE                      "MDF Command Buffer Dump Enable"
351 #define __MEDIA_USER_FEATURE_VALUE_MDF_CURBE_DUMP_ENABLE                    "MDF Curbe Dump Enable"
352 #define __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_DUMP_ENABLE                  "MDF Surface Dump Enable"
353 #define __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_ENABLE            "MDF Surface State Dump Enable"
354 #define __MEDIA_USER_FEATURE_VALUE_MDF_EMU_MODE_ENABLE                      "MDF EMU Enable"
355 #define __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_COUNTER                     "MDF CMD DUMP COUNTER"
356 #define __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_COUNTER           "MDF SURFACE STATE DUMP COUNTER"
357 #define __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_DUMP       "MDF Interface Descriptor Dump Enable"
358 #define __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_COUNTER    "MDF Interface Descriptor Dump Counter"
359 #define __MEDIA_USER_FEATURE_VALUE_MDF_DUMPPATH_USER                        "MDF Dump Path Specified by User"
360 #define __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_EXECUTION_PATH                 "MDF Execution Path Forced by User"
361 #define __MEDIA_USER_FEATURE_VALUE_MDF_MAX_THREAD_NUM                       "CmMaxThreads"
362 #define __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_COHERENT_STATELESSBTI          "ForceCoherentStatelessBTI"
363 
364 //User feature key for VP
365 #define __MEDIA_USER_FEATURE_VALUE_VP_3P_DUMP_UFKEY_LOCATION                "Software\\Intel\\VPPDPI"
366 
367 #define __MOS_USER_FEATURE_KEY_XML_AUTOGEN              "XML AutoGen Enable"
368 #define __MOS_USER_FEATURE_KEY_XML_FILEPATH             "XML File Path"
369 #define __MOS_USER_FEATURE_KEY_XML_DUMP_GROUPS          "XML Dump Group"
370 
371 #if (_DEBUG || _RELEASE_INTERNAL)
372 //User feature key for enable simulating random memory allocation failure
373 #define __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_MODE    "Alloc Memory Fail Simulate Mode"
374 #define __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_FREQ    "Alloc Memory Fail Simulate Freq"
375 #define __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_HINT    "Alloc Memory Fail Simulate Hint"
376 #define __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_TYPE          "OS API Fail Simulate Type"
377 #define __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_MODE          "OS API Fail Simulate Mode"
378 #define __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_FREQ          "OS API Fail Simulate Freq"
379 #define __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_HINT          "OS API Fail Simulate Hint"
380 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_TILE_ENCODING_1_DEFAULT      "Media tile encoding as 1 by default"
381 #define __MEDIA_USER_FEATURE_VALUE_TILE_ENCODING_1_INTERNAL_USED      "Media Internal tile encoding as 1 used"
382 #define __MEDIA_USER_FEATURE_VALUE_TILE_ENCODING_3_INTERNAL_USED      "Media Internal tile encoding as 3 used"
383 //User feature key for vp surface dump
384 #define __VPHAL_DBG_SURF_DUMP_OUTFILE_KEY_NAME                        "outfileLocation"
385 #define __VPHAL_DBG_SURF_DUMP_LOCATION_KEY_NAME                       "dumpLocations"
386 #define __VPHAL_DBG_SURF_DUMP_MANUAL_TRIGGER_KEY_NAME                 "VphalSurfaceDumpManualTrigger"
387 #define __VPHAL_DBG_SURF_DUMP_START_FRAME_KEY_NAME                    "startFrame"
388 #define __VPHAL_DBG_SURF_DUMP_END_FRAME_KEY_NAME                      "endFrame"
389 #define __VPHAL_DBG_SURF_DUMPER_ENABLE_PLANE_DUMP                     "enablePlaneDump"
390 #define __VPHAL_DBG_SURF_DUMP_ENABLE_AUX_DUMP                         "enableAuxDump"
391 #define __VPHAL_DBG_SURF_DUMPER_RESOURCE_LOCK                         "SurfaceDumperResourceLockError"
392 #define __VPHAL_DBG_STATE_DUMP_ENABLE                                 "enableStateDump"
393 //User feature key for Codec debug
394 #define __MEDIA_USER_FEATURE_VALUE_CODECHAL_DEBUG_OUTPUT_DIRECTORY    "CodecHal Debug Output Directory"
395 #define __MEDIA_USER_FEATURE_VALUE_IS_CODEC_ROW_STORE_CACHE_ENABLED   "Codec Row Store Cache Enabled"
396 
397 // !
398 // ! \brief User feature key for Split-Screen Demo Mode
399 // !
400 #define __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_POSITION        "Split-Screen Demo Position"
401 #define __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_PARAMETERS      "Split-Screen Demo Parameters"
402 #endif //(_DEBUG || _RELEASE_INTERNAL)
403 
404 //User feature key for UMD_OCA
405 #define __MEDIA_USER_FEATURE_VALUE_ENABLE_UMD_OCA                               "Enable UMD_OCA"
406 //Error Report for UMD_OCA
407 #define __MEDIA_USER_FEATURE_VALUE_OCA_STATUS                                   "OCA Status"
408 #define __MEDIA_USER_FEATURE_VALUE_OCA_ERROR_HINT                               "OCA Error Hint"
409 #define __MEDIA_USER_FEATURE_VALUE_IS_INDIRECT_STATE_HEAP_INVALID               "Is Indirect State Heap Invalid"
410 #define __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_BUFFER_LEAKED                  "Count For Oca Buffer Leaked"
411 #define __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_1ST_LEVEL_BB_END_MISSED        "Count For Oca 1st Level BB End Missed"
412 #define __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_ADDITIONAL_OCA_BUFFER_ALLOCATED    "Count For Additional Oca Buffer Allocated"
413 
414 #define __VPHAL_ENABLE_VEBOX_MMC_DECOMPRESS                                     "Enable Vebox Decompress"
415 
416 //User feature key for MMC
417 #define __MEDIA_USER_FEATURE_VALUE_CODEC_MMC_ENABLE                             "Enable Codec MMC"
418 #define __MEDIA_USER_FEATURE_VALUE_CODEC_MMC_IN_USE                             "Codec MMC In Use"
419 
420 #define __VPHAL_ENABLE_MMC                                                      "Enable VP MMC"
421 #define __MEDIA_USER_FEATURE_VALUE_VP_MMC_IN_USE                                "VP MMC In Use"
422 
423 #define __MEDIA_USER_FEATURE_VALUE_NULLHW_ENABLE                                "NULL HW Enable"
424 #define __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_PLATFORM                         "MockAdaptor Platform"
425 #define __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_STEPPING                         "MockAdaptor Stepping"
426 #define __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_DEVICE                           "MockAdaptor Device ID"
427 
428 //User feature key for enable Perf Utility Tool
429 #define __MEDIA_USER_FEATURE_VALUE_PERF_UTILITY_TOOL_ENABLE          "Perf Utility Tool Enable"
430 #define __MEDIA_USER_FEATURE_VALUE_PERF_OUTPUT_DIRECTORY             "Perf Output Directory"
431 
432 //User feature key for media perf profile
433 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE              "Perf Profiler Enable"
434 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MUL_PROC     "Perf Profiler Multi Process Support"
435 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MER_HEADER   "Perf Profiler Merge by Header Support"
436 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_OUTPUT_FILE_NAME    "Perf Profiler Output File Name"
437 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_BUFFER_SIZE_KEY     "Perf Profiler Buffer Size"
438 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_MUL_PROC_SINGLE_BIN "Perf Profiler Multi Process Single Binary"
439 
440 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_1      "Perf Profiler Register 1"
441 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_2      "Perf Profiler Register 2"
442 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_3      "Perf Profiler Register 3"
443 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_4      "Perf Profiler Register 4"
444 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_5      "Perf Profiler Register 5"
445 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_6      "Perf Profiler Register 6"
446 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_7      "Perf Profiler Register 7"
447 #define __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_8      "Perf Profiler Register 8"
448 
449 //User feature key for Gmm pooled resource enabling
450 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_TEXTURE_POOLING_ENABLE      "Enable Media Texture Pooling"
451 
452 //Perf
453 #define __MEDIA_USER_FEATURE_VALUE_LINUX_PERFORMANCETAG_ENABLE       "Linux PerformanceTag Enable"
454 
455 // Tile resource info report
456 #define __MEDIA_USER_FEATURE_VALUE_TILE_INFO                         "Tile Info"
457 #define __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_RCS               "RCS Instance"
458 #define __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_BLT               "BLT Instance"
459 #define __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_VCS               "VCS Instance"
460 #define __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_VECS              "VECS Instance"
461 #define __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_CCS               "CCS Instance"
462 
463 // IP alignment support
464 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_DECODE_ENABLE        "EnableSyncSubmissionDecode"
465 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_ENCODE_ENABLE        "EnableSyncSubmissionEncode"
466 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_VPP_ENABLE           "EnableSyncSubmissionVPP"
467 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_DECODE_TIMEOUT       "SyncSubmissionTimeOutDecode"
468 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_ENCODE_TIMEOUT       "SyncSubmissionTimeOutEncode"
469 #define __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_VPP_TIMEOUT          "SyncSubmissionTimeOutVPP"
470 
471 // Native Fence Mode
472 #define __MEDIA_USER_FEATURE_VALUE_MEDIA_NATIVE_FENCE_MODE           "Native Fence Mode"
473 
474 #endif  // __MOS_UTIL_USER_FEATURE_KEYS_H__
475