xref: /aosp_15_r20/external/intel-media-driver/media_driver/agnostic/common/os/mos_utilities.cpp (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
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_utilities.cpp
24 //! \brief    Common OS service across different platform
25 //! \details  Common OS service across different platform
26 //!
27 
28 #include "mos_utilities.h"
29 #include "mos_util_user_feature_keys.h"
30 #include "vp_utils.h"
31 
32 #define __MOS_USER_FEATURE_VALUE_SINGLE_SLICE_VEBOX_DEFAULT_VALUE "1"
33 MOS_USER_FEATURE_VALUE MosUtilities::m_mosUserFeatureDescFields[__MOS_USER_FEATURE_KEY_MAX_ID] =
34 {
35     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_TH_ID,
36         "Media Reset TH",
37         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
38         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
39         "General",
40         MOS_USER_FEATURE_TYPE_USER,
41         MOS_USER_FEATURE_VALUE_TYPE_INT32,
42         "0",
43         "If enabled, media reset will be enabled."),
44     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_COUNT_ID,
45         "Media Reset Count",
46         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
47         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
48         "Report",
49         MOS_USER_FEATURE_TYPE_USER,
50         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
51         "0",
52         "Reports media reset count."),
53 
54     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_ID,
55         "Perf Profiler Enable",
56         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
57         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
58         "General",
59         MOS_USER_FEATURE_TYPE_USER,
60         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
61         "0",
62         "Perf Profiler Enable Control Flag"),
63     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_FE_BE_TIMING,
64         "Perf Profiler FE BE timing measurement",
65         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
66         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
67         "General",
68         MOS_USER_FEATURE_TYPE_USER,
69         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
70         "0",
71         "Perf Profiler FE and BE Timing Measurement Flag"),
72     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_OUTPUT_FILE,
73         "Perf Profiler Output File Name",
74         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
75         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
76         "General",
77         MOS_USER_FEATURE_TYPE_USER,
78         MOS_USER_FEATURE_VALUE_TYPE_STRING,
79         "Perf_DATA_00_00.bin",
80         "Performance Profiler Output File Name"),
81     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_BUFFER_SIZE,
82         "Perf Profiler Buffer Size",
83         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
84         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
85         "General",
86         MOS_USER_FEATURE_TYPE_USER,
87         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
88         "10000000",
89         "Performance Profiler Buffer Size"),
90     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MULTI_PROCESS,
91         "Perf Profiler Multi Process Support",
92         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
93         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
94         "General",
95         MOS_USER_FEATURE_TYPE_USER,
96         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
97         "0",
98         "Performance Profiler Multi Process Support"),
99     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_ENABLE_HW_DEBUG_HOOKS_ID,
100         "Enable Media Debug Hooks",
101         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
102         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
103         "General",
104         MOS_USER_FEATURE_TYPE_USER,
105         MOS_USER_FEATURE_VALUE_TYPE_INT32,
106         "0",
107         "Eanble HW debug hooks. 1: enable, 0: disable."),
108     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_FRAME_NUMBER_TO_STOP_ID,
109         "Decode Stop To Frame",
110         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
111         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
112         "General",
113         MOS_USER_FEATURE_TYPE_USER,
114         MOS_USER_FEATURE_VALUE_TYPE_INT32,
115         "-1",
116         "Frame Number To Stop"),
117     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_ENABLE_SW_CRC_ID,
118         "Enable SW CRC",
119         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
120         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
121         "General",
122         MOS_USER_FEATURE_TYPE_USER,
123         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
124         "0",
125         "Enable SW CRC"),
126     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_1,
127         "Perf Profiler Register 1",
128         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
129         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
130         "General",
131         MOS_USER_FEATURE_TYPE_USER,
132         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
133         "0",
134         "Performance Profiler Memory Information Register"),
135     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_2,
136         "Perf Profiler Register 2",
137         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
138         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
139         "General",
140         MOS_USER_FEATURE_TYPE_USER,
141         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
142         "0",
143         "Performance Profiler Memory Information Register"),
144     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_3,
145         "Perf Profiler Register 3",
146         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
147         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
148         "General",
149         MOS_USER_FEATURE_TYPE_USER,
150         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
151         "0",
152         "Performance Profiler Memory Information Register"),
153     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_4,
154         "Perf Profiler Register 4",
155         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
156         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
157         "General",
158         MOS_USER_FEATURE_TYPE_USER,
159         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
160         "0",
161         "Performance Profiler Memory Information Register"),
162     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_5,
163         "Perf Profiler Register 5",
164         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
165         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
166         "General",
167         MOS_USER_FEATURE_TYPE_USER,
168         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
169         "0",
170         "Performance Profiler Memory Information Register"),
171     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_6,
172         "Perf Profiler Register 6",
173         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
174         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
175         "General",
176         MOS_USER_FEATURE_TYPE_USER,
177         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
178         "0",
179         "Performance Profiler Memory Information Register"),
180     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_7,
181         "Perf Profiler Register 7",
182         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
183         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
184         "General",
185         MOS_USER_FEATURE_TYPE_USER,
186         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
187         "0",
188         "Performance Profiler Memory Information Register"),
189     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_8,
190         "Perf Profiler Register 8",
191         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
192         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
193         "General",
194         MOS_USER_FEATURE_TYPE_USER,
195         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
196         "0",
197         "Performance Profiler Memory Information Register"),
198     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SINGLE_TASK_PHASE_ENABLE_ID,
199         "Single Task Phase Enable",
200         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
201         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
202         "Encode",
203         MOS_USER_FEATURE_TYPE_USER,
204         MOS_USER_FEATURE_VALUE_TYPE_INT32,
205         "1",
206         "Enables/Disables single task phase mode. This feature is only enabled for AVC and HEVC encode."),
207     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DECODE_SINGLE_TASK_PHASE_ENABLE_ID,
208         "Decode Single Task Phase Enable",
209         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
210         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
211         "Decode",
212         MOS_USER_FEATURE_TYPE_USER,
213         MOS_USER_FEATURE_VALUE_TYPE_INT32,
214         "1",
215         "Enables/Disables single task phase mode. This feature is only enabled for AVC and HEVC decode."),
216     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AUX_TABLE_16K_GRANULAR_ID,
217         "Aux Table 16K Granular",
218         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
219         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
220         "General",
221         MOS_USER_FEATURE_TYPE_USER,
222         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
223         "1",
224         "Switches between 1-16K and 0-64K Granularity for Aux Table."),
225     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MFE_MBENC_ENABLE_ID,
226         "MFE MBEnc Enable",
227         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
228         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
229         "Encode",
230         MOS_USER_FEATURE_TYPE_USER,
231         MOS_USER_FEATURE_VALUE_TYPE_INT32,
232         "1",
233         "Enables/Disables MFE MBEnc Mode. This feature is only enabled for AVC encode."),
234     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MFE_FIRST_BUFFER_SUBMIT_ID,
235         "MFE First Buffer Submit",
236         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
237         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
238         "Encode",
239         MOS_USER_FEATURE_TYPE_USER,
240         MOS_USER_FEATURE_VALUE_TYPE_INT32,
241         "0",
242         "Used to indicate MFE work on UMD level"),
243     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_RC_PANIC_ENABLE_ID,
244         "RC Panic Mode",
245         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
246         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
247         "Encode",
248         MOS_USER_FEATURE_TYPE_USER,
249         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
250         "1",
251         "Enables/Disables PAK panic mode feature."),
252     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_ENABLE_ID,
253         "Slice Shutdown Enable",
254         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
255         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
256         "Encode",
257         MOS_USER_FEATURE_TYPE_USER,
258         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
259         "1",
260         "Used to Enable/Disable Slice shutdown. Only has impact on HSW."),
261     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DECODE_LOCK_DISABLE_ID,
262         __MEDIA_USER_FEATURE_VALUE_DECODE_LOCK_DISABLE,
263         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
264         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
265         "Decode",
266         MOS_USER_FEATURE_TYPE_USER,
267         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
268         "0",
269         "If decode output surface can be locked for sync. "),
270     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_HW_WALKER_ID,
271         "Encode HW Walker",
272         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
273         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
274         "Encode",
275         MOS_USER_FEATURE_TYPE_USER,
276         MOS_USER_FEATURE_VALUE_TYPE_INT32,
277         "1",
278         "Used to Enable/Disable HW walker."),
279     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_HUC_FIRMWARE_LOAD_FAILED_ID,
280         "HuC Firmware Load Failed",
281         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
282         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
283         "Encode",
284         MOS_USER_FEATURE_TYPE_USER,
285         MOS_USER_FEATURE_VALUE_TYPE_INT32,
286         "0",
287         "Failed to load HuC firmware."),
288     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_HUC_IMEM_LOAD_FALIED_ID,
289         "HuC Valid Imem Load Failed",
290         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
291         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
292         "Encode",
293         MOS_USER_FEATURE_TYPE_USER,
294         MOS_USER_FEATURE_VALUE_TYPE_INT32,
295         "0",
296         "HuC status2 indicates Valid Imem Load failed."),
297     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_SUPPRESS_RECON_PIC_ENABLE_ID,
298         "Encode Suppress Recon Pic",
299         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
300         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
301         "Encode",
302         MOS_USER_FEATURE_TYPE_USER,
303         MOS_USER_FEATURE_VALUE_TYPE_INT32,
304         "1",
305         "Used to suppress recon pic generation for non-ref surfaces."),
306     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_ME_IN_USE_ID,
307         "Encode HME In Use",
308         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
309         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
310         "Report",
311         MOS_USER_FEATURE_TYPE_USER,
312         MOS_USER_FEATURE_VALUE_TYPE_INT32,
313         "0",
314         "Used to report if HME is in use."),
315     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_16xME_IN_USE_ID,
316         "Encode SuperHME In Use",
317         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
318         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
319         "Report",
320         MOS_USER_FEATURE_TYPE_USER,
321         MOS_USER_FEATURE_VALUE_TYPE_INT32,
322         "0",
323         "Used to report if SuperHme is in use."),
324     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_32xME_IN_USE_ID,
325         "Encode UltraHME In Use",
326         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
327         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
328         "Report",
329         MOS_USER_FEATURE_TYPE_USER,
330         MOS_USER_FEATURE_VALUE_TYPE_INT32,
331         "0",
332         "Used to report if UltraHme is in use."),
333     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_IN_USE_ID,
334         "Encode BRC In Use",
335         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
336         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
337         "Encode",
338         MOS_USER_FEATURE_TYPE_USER,
339         MOS_USER_FEATURE_VALUE_TYPE_INT32,
340         "0",
341         "Report key to indicate if BRC is turned on"),
342     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_RATECONTROL_METHOD_ID,
343         "Encode RateControl Method",
344         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
345         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
346         "Report",
347         MOS_USER_FEATURE_TYPE_USER,
348         MOS_USER_FEATURE_VALUE_TYPE_INT32,
349         "0",
350         "Used to report the RateControl Method."),
351     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_TARGET_USAGE_OVERRIDE_ID,
352         "Encode TU Override",
353         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
354         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
355         "Encode",
356         MOS_USER_FEATURE_TYPE_USER,
357         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
358         "0",
359         "Used to override TU value "),
360     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_ME_ENABLE_ID,
361         "AVC Encode HME",
362         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
363         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
364         "Encode",
365         MOS_USER_FEATURE_TYPE_USER,
366         MOS_USER_FEATURE_VALUE_TYPE_INT32,
367         "1",
368         "Enables/Disables HME for AVC."),
369     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_16xME_ENABLE_ID,
370         "AVC Encode SuperHME",
371         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
372         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
373         "Encode",
374         MOS_USER_FEATURE_TYPE_USER,
375         MOS_USER_FEATURE_VALUE_TYPE_INT32,
376         "255",
377         "Enables/Disables SHME for AVC."),
378     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_32xME_ENABLE_ID,
379         "AVC Encode UltraHME",
380         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
381         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
382         "Encode",
383         MOS_USER_FEATURE_TYPE_USER,
384         MOS_USER_FEATURE_VALUE_TYPE_INT32,
385         "255",
386         "Enables/Disables UHME for AVC."),
387     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_MULTIPRED_ENABLE_ID,
388         "AVC Encode MultiPred",
389         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
390         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
391         "Encode",
392         MOS_USER_FEATURE_TYPE_USER,
393         MOS_USER_FEATURE_VALUE_TYPE_INT32,
394         "1",
395         "Enables/Disables MultiPred feature for AVC."),
396     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ENCODE_INTRA_REFRESH_QP_THRESHOLD_ID,
397         "AVC Encode Intra Refresh Qp Threshold",
398         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
399         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
400         "Encode",
401         MOS_USER_FEATURE_TYPE_USER,
402         MOS_USER_FEATURE_VALUE_TYPE_INT32,
403         "1",
404         "Gives Intra Refresh Qp Threshold value."),
405     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_FTQ_ENABLE_ID,
406         "AVC FTQ Enable",
407         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
408         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
409         "Encode",
410         MOS_USER_FEATURE_TYPE_USER,
411         MOS_USER_FEATURE_VALUE_TYPE_INT32,
412         "1",
413         "Enable/Disable FTQ for AVC."),
414     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_CAF_ENABLE_ID,
415         "AVC CAF Enable",
416         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
417         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
418         "Encode",
419         MOS_USER_FEATURE_TYPE_USER,
420         MOS_USER_FEATURE_VALUE_TYPE_INT32,
421         "1",
422         "Enable/Disable CAF for AVC."),
423     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_CAF_DISABLE_HD_ID,
424         "AVC CAF Disable HD",
425         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
426         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
427         "Encode",
428         MOS_USER_FEATURE_TYPE_USER,
429         MOS_USER_FEATURE_VALUE_TYPE_INT32,
430         "1",
431         "Enable/Disable CAF for HD resolutions for AVC."),
432     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_MB_BRC_ENABLE_ID,
433         "AVC Encode MB BRC",
434         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
435         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
436         "Encode",
437         MOS_USER_FEATURE_TYPE_USER,
438         MOS_USER_FEATURE_VALUE_TYPE_INT32,
439         "255",
440         "Enables/Disables MBBRC for AVC "),
441     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_FORCE_TO_SKIP_ENABLE_ID,
442         "AVC Force to Skip Enable",
443         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
444         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
445         "Encode",
446         MOS_USER_FEATURE_TYPE_USER,
447         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
448         "1",
449         "Enables/Disables Force to Skip for AVC Encode."),
450     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_SLIDING_WINDOW_SIZE_ID,
451         "AVC Sliding Window Size",
452         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
453         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
454         "Encode",
455         MOS_USER_FEATURE_TYPE_USER,
456         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
457         "0",
458         "Sliding Window Size for AVC Encode."),
459     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_ENABLE_ID,
460         "AVC Encode Rounding Inter Enable",
461         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
462         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
463         "Encode",
464         MOS_USER_FEATURE_TYPE_USER,
465         MOS_USER_FEATURE_VALUE_TYPE_INT32,
466         "1",
467         "Enables/Disables Rounding Inter feature for AVC."),
468     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_P_ID,
469         "AVC Encode Rounding Inter P",
470         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
471         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
472         "Encode",
473         MOS_USER_FEATURE_TYPE_USER,
474         MOS_USER_FEATURE_VALUE_TYPE_INT32,
475         "255",
476         "Sets the PAK Inter Rounding value for P frame for AVC "),
477     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_B_ID,
478         "AVC Encode Rounding Inter B",
479         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
480         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
481         "Encode",
482         MOS_USER_FEATURE_TYPE_USER,
483         MOS_USER_FEATURE_VALUE_TYPE_INT32,
484         "255",
485         "Sets the PAK Inter Rounding value for B frame for AVC "),
486     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ROUNDING_INTER_BREF_ID,
487         "AVC Encode Rounding Inter BRef",
488         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
489         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
490         "Encode",
491         MOS_USER_FEATURE_TYPE_USER,
492         MOS_USER_FEATURE_VALUE_TYPE_INT32,
493         "255",
494         "Sets the PAK Inter Rounding value for B ref frame for AVC "),
495     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_ROUNDING_INTER_ENABLE_ID,
496         "AVC Encode Adaptive Rounding Inter Enable",
497         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
498         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
499         "Encode",
500         MOS_USER_FEATURE_TYPE_USER,
501         MOS_USER_FEATURE_VALUE_TYPE_INT32,
502         "1",
503         "Enables/Disables Adaptive Inter Rounding for AVC."),
504     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_SKIP_BIAS_ADJUSTMENT_ENABLE_ID,
505         "AVC Encode Skip Bias Adjustment Enable",
506         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
507         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
508         "Encode",
509         MOS_USER_FEATURE_TYPE_USER,
510         MOS_USER_FEATURE_VALUE_TYPE_INT32,
511         "1",
512         "Enables/Disables Skip Bias Adjustment feature for AVC."),
513     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_INTRA_SCALING_ENABLE_ID,
514         "AVC Encode Adaptive Intra Scaling Enable",
515         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
516         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
517         "Encode",
518         MOS_USER_FEATURE_TYPE_USER,
519         MOS_USER_FEATURE_VALUE_TYPE_INT32,
520         "1",
521         "Enables/Disables Adaptive Intra Scaling feature for AVC."),
522     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_OLD_MODE_COST_ENABLE_ID,
523         "AVC Encode Old Mode Cost Enable",
524         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
525         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
526         "Encode",
527         MOS_USER_FEATURE_TYPE_USER,
528         MOS_USER_FEATURE_VALUE_TYPE_INT32,
529         "0",
530         "Enables/Disables Old Mode Cost tables for AVC."),
531     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_TAIL_INSERTION_DELAY_COUNT_ID,
532         "VDENC Encode Tail Insertion Delay Count",
533         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
534         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
535         "Encode",
536         MOS_USER_FEATURE_TYPE_USER,
537         MOS_USER_FEATURE_VALUE_TYPE_INT32,
538         "1500",
539         "Sets the VDENC Delay count."),
540     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_CRE_PREFETCH_ENABLE_ID,
541         "AVC VDEnc CRE Prefetch Enable",
542         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
543         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
544         "Encode",
545         MOS_USER_FEATURE_TYPE_USER,
546         MOS_USER_FEATURE_VALUE_TYPE_INT32,
547         "1",
548         "Enables/Disables CRE Prefetch for AVC VDEnc. Enabled by default for perf improvement."),
549     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_TLB_PREFETCH_ENABLE_ID,
550         "AVC VDEnc TLB Prefetch Enable",
551         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
552         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
553         "Encode",
554         MOS_USER_FEATURE_TYPE_USER,
555         MOS_USER_FEATURE_VALUE_TYPE_INT32,
556         "1",
557         "Enables/Disables TLB Prefetch for AVC VDEnc. Enabled by default for perf improvement."),
558     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_TLB_ALLOCATION_WA_ENABLE_ID,
559         "AVC VDEnc TLB WA Enable",
560         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
561         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
562         "Encode",
563         MOS_USER_FEATURE_TYPE_USER,
564         MOS_USER_FEATURE_VALUE_TYPE_INT32,
565         "1",
566         "Enables/Disables TLB Allocation WA for AVC VDEnc."),
567     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_PERMB_STREAMOUT_ENABLE_ID,
568         "AVC VDEnc PerMB StreamOut Enable",
569         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
570         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
571         "Encode",
572         MOS_USER_FEATURE_TYPE_USER,
573         MOS_USER_FEATURE_VALUE_TYPE_INT32,
574         "0",
575         "Enables/Disables PerMB StreamOut for AVC VDEnc."),
576     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_0_OVERRIDE_ID,
577         "MFX_LRA_0 Override",
578         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
579         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
580         "Encode",
581         MOS_USER_FEATURE_TYPE_USER,
582         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
583         "0",
584         "Override Register MFX_LRA_0. Valid Only When AVC VDEnc TLB Allocation WA is Enabled."),
585     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_1_OVERRIDE_ID,
586         "MFX_LRA_1 Override",
587         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
588         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
589         "Encode",
590         MOS_USER_FEATURE_TYPE_USER,
591         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
592         "0",
593         "Override Register MFX_LRA_1. Valid Only When AVC VDEnc TLB Allocation WA is Enabled."),
594     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MMIO_MFX_LRA_2_OVERRIDE_ID,
595         "MFX_LRA_2 Override",
596         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
597         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
598         "Encode",
599         MOS_USER_FEATURE_TYPE_USER,
600         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
601         "0",
602         "Override Register MFX_LRA_2. Valid Only When AVC VDEnc TLB Allocation WA is Enabled."),
603     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_FLATNESS_CHECK_ENABLE_ID,
604         "Flatness Check Enable",
605         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
606         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
607         "Encode",
608         MOS_USER_FEATURE_TYPE_USER,
609         MOS_USER_FEATURE_VALUE_TYPE_INT32,
610         "1",
611         "Enables/Disables Flatness Check feature. This feature is only supported for AVC."),
612     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_ADAPTIVE_SEARCH_WINDOW_ENABLE_ID,
613         "Adaptive Search Window Enable",
614         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
615         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
616         "Encode",
617         MOS_USER_FEATURE_TYPE_USER,
618         MOS_USER_FEATURE_VALUE_TYPE_INT32,
619         "1",
620         "Enables/Disables Adaptive Search Window feature. This feature is only supported for AVC."),
621     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ADAPTIVE_TRANSFORM_DECISION_ENABLE_ID,
622         "Adaptive transform decision Enable",
623         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
624         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
625         "Encode",
626         MOS_USER_FEATURE_TYPE_USER,
627         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
628         __MOS_USER_FEATURE_VALUE_ADAPTIVE_TRANSFORM_DECISION_ENABLE_DEFAULT_VALUE,
629         "Enables/Disables Adaptive transform decision feature. This feature is only supported for AVC."),
630     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_WEIGHTED_PREDICTION_L0_IN_USE_ID,
631         "Weighted prediction used for L0 reference",
632         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
633         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
634         "Encode",
635         MOS_USER_FEATURE_TYPE_USER,
636         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
637         "1",
638         "Weighted prediction used for L0 reference."),
639     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_WEIGHTED_PREDICTION_L1_IN_USE_ID,
640         "Weighted prediction used for L1 reference",
641         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
642         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
643         "Encode",
644         MOS_USER_FEATURE_TYPE_USER,
645         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
646         "1",
647         "Weighted prediction used for L1 reference."),
648     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_FBR_BYPASS_ENABLE_ID,
649         "FBR Bypass Enable",
650         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
651         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
652         "Encode",
653         MOS_USER_FEATURE_TYPE_USER,
654         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
655         "1",
656         "Enables/Disables FBR Bypass feature. Starting SKL for AVC."),
657     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_STATIC_FRAME_DETECTION_ENABLE_ID,
658         "Static Frame Detection Enable",
659         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
660         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
661         "Encode",
662         MOS_USER_FEATURE_TYPE_USER,
663         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
664         "1",
665         "Enables/Disables Static Frame Detection feature. Starting BDW for AVC."),
666     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_SINGLE_PASS_ENABLE_ID,
667         "VDEnc Single Pass Enable",
668         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
669         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
670         "Encode",
671         MOS_USER_FEATURE_TYPE_USER,
672         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
673         "0",
674         "Enables/Disables VDEnc single pass feature. Starting from KBL for AVC VDEnc."),
675     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_BRC_MOTION_ADAPTIVE_ENABLE_ID,
676         "VDEnc BRC Motion Adaptive Enable",
677         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
678         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
679         "Encode",
680         MOS_USER_FEATURE_TYPE_USER,
681         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
682         "0",
683         "Enables/Disables VDEnc motion adaptive BRC for AVC VDEnc."),
684     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_FRAME_TRACKING_ID,
685         "Enable Frame Tracking",
686         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
687         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
688         "Encode",
689         MOS_USER_FEATURE_TYPE_USER,
690         MOS_USER_FEATURE_VALUE_TYPE_INT32,
691         "1",
692         "Enables/Disables Frame Tracking."),
693     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_COLOR_BIT_SUPPORT_ENABLE_ID,
694         "Colorbit Support Enable",
695         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
696         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
697         "Encode",
698         MOS_USER_FEATURE_TYPE_USER,
699         MOS_USER_FEATURE_VALUE_TYPE_INT32,
700         "1",
701         "Enables/Disables Colorbit Support. This feature is only supported for AVC."),
702     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_GROUP_ID_SELECT_ENABLE_ID,
703         "Group ID Select Enable",
704         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
705         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
706         "Encode",
707         MOS_USER_FEATURE_TYPE_USER,
708         MOS_USER_FEATURE_VALUE_TYPE_INT32,
709         "0",
710         "Enables/Disables Group Id Select."),
711     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_BRC_ENABLE_ID,
712         "AVC Encode BRC Mode",
713         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
714         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
715         "Report",
716         MOS_USER_FEATURE_TYPE_USER,
717         MOS_USER_FEATURE_VALUE_TYPE_INT32,
718         "0",
719         "Report."),
720     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_MULTIREF_QP_ID,
721         "AVC Encode Multiref Qp",
722         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
723         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
724         "Encode",
725         MOS_USER_FEATURE_TYPE_USER,
726         MOS_USER_FEATURE_VALUE_TYPE_INT32,
727         "1",
728         "Used to enable or disable multiref QP feature for BRC."),
729     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_BRC_VAR_COMPU_BYPASS_ID,
730         "BRC Variance Computation Bypass",
731         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
732         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
733         "Encode",
734         MOS_USER_FEATURE_TYPE_USER,
735         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
736         "1",
737         "Enables/Disables BRC Variance Computation Bypass feature. for GLK perf debug."),
738     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_AVC_BRC_SOFTWARE_ID,
739         "AVC BRC SW Simulation",
740         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
741         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
742         "Encode",
743         MOS_USER_FEATURE_TYPE_USER,
744         MOS_USER_FEATURE_VALUE_TYPE_INT32,
745         "0",
746         "Used to enable BRC SW simulation."),
747     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_BRC_SOFTWARE_IN_USE_ID,
748         "AVC BRC SW Simulation In Use",
749         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
750         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
751         "Report",
752         MOS_USER_FEATURE_TYPE_USER,
753         MOS_USER_FEATURE_VALUE_TYPE_INT32,
754         "0",
755         "Used to report if AVC BRC SW Simulation is in use."),
756     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENABLE_CNL_AVC_ENCODE_ARB_WA_ID,
757         "Enable CNL AVC Encode ARB WA",
758         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
759         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
760         "Encode",
761         MOS_USER_FEATURE_TYPE_USER,
762         MOS_USER_FEATURE_VALUE_TYPE_INT32,
763         "0",
764         "Enable/Disable CNL AVC Encode ARB WA for hang reproducing."),
765     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ME_ENABLE_ID,
766         "VP9 Encode HME",
767         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
768         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
769         "Encode",
770         MOS_USER_FEATURE_TYPE_USER,
771         MOS_USER_FEATURE_VALUE_TYPE_INT32,
772         "1",
773         "Enables VP9 ME Encode."),
774     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_16xME_ENABLE_ID,
775         "VP9 Encode SuperHME",
776         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
777         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
778         "Encode",
779         MOS_USER_FEATURE_TYPE_USER,
780         MOS_USER_FEATURE_VALUE_TYPE_INT32,
781         "1",
782         "Enables VP9 16xME Encode."),
783     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_HUC_ENABLE_ID,
784         "VP9 Encode HUC Enable",
785         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
786         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
787         "Encode",
788         MOS_USER_FEATURE_TYPE_USER,
789         MOS_USER_FEATURE_VALUE_TYPE_INT32,
790         "0",
791         "Enables VP9 Huc."),
792     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_MULTIPASS_BRC_ENABLE_ID,
793         "VP9 Encode Multipass BRC Enable",
794         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
795         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
796         "Encode",
797         MOS_USER_FEATURE_TYPE_USER,
798         MOS_USER_FEATURE_VALUE_TYPE_INT32,
799         "1",
800         "Enables VP9 Encode Multipass BRC."),
801     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_MULTIPASS_BRC_IN_USE_ID,
802         "VP9 Encode Multipass BRC In Use",
803         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
804         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
805         "Encode",
806         MOS_USER_FEATURE_TYPE_USER,
807         MOS_USER_FEATURE_VALUE_TYPE_INT32,
808         "0",
809         "Report key to indicate if Multipass BRC is turned on."),
810     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ADAPTIVE_REPAK_ENABLE_ID,
811         "VP9 Encode Adaptive RePAK Enable",
812         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
813         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
814         "Encode",
815         MOS_USER_FEATURE_TYPE_USER,
816         MOS_USER_FEATURE_VALUE_TYPE_INT32,
817         "0",
818         "Enables VP9 Encode Adaptive RePAK."),
819     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ADAPTIVE_REPAK_IN_USE_ID,
820         "VP9 Encode Adaptive RePAK In Use",
821         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
822         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
823         "Encode",
824         MOS_USER_FEATURE_TYPE_USER,
825         MOS_USER_FEATURE_VALUE_TYPE_INT32,
826         "0",
827         "Report key to indicate if Adaptive RePAK is turned on."),
828     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_SINGLE_PASS_DYS_ENABLE_ID,
829         "VP9 Encode Single Pass Dys Enable",
830         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
831         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
832         "Encode",
833         MOS_USER_FEATURE_TYPE_USER,
834         MOS_USER_FEATURE_VALUE_TYPE_INT32,
835         "1",
836         "Report key to indicate if Single Pass Dys is turned on."),
837     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_PAK_TEST_ENABLE_ID,
838         "VP9 Encode PAK Test Enable",
839         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
840         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
841         "Encode",
842         MOS_USER_FEATURE_TYPE_USER,
843         MOS_USER_FEATURE_VALUE_TYPE_INT32,
844         "0",
845         "Enables VP9 Pak Test."),
846     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_MULTIREF_QP_ENABLE_ID,
847         "VP9 Encode Multiref Qp Enable",
848         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
849         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
850         "Encode",
851         MOS_USER_FEATURE_TYPE_USER,
852         MOS_USER_FEATURE_VALUE_TYPE_INT32,
853         "0",
854         "Enables VP9 Encode Multiref QP Check"),
855     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ENABLE_VE_ID,
856         "Enable VP9 Vdenc Virtual Engine",
857         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
858         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
859         "Encode",
860         MOS_USER_FEATURE_TYPE_USER,
861         MOS_USER_FEATURE_VALUE_TYPE_INT32,
862         "0",
863         "Enable VP9 Vdenc Virtual Engine."),
864     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ENABLE_HW_STITCH,
865         "VP9 Encode Enable HW Stitch",
866         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
867         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
868         "Encode",
869         MOS_USER_FEATURE_TYPE_USER,
870         MOS_USER_FEATURE_VALUE_TYPE_INT32,
871         "1",
872         "VP9 Encode Enable HW Stitch."),
873     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ENABLE_BRC_DLL,
874         "VP9 BRC DLL Enable",
875         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
876         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
877         "Encode",
878         MOS_USER_FEATURE_TYPE_USER,
879         MOS_USER_FEATURE_VALUE_TYPE_INT32,
880         "0",
881         "Enables usage of VP9VDEnc DLL opposed to HuC firmware for BRC operations."),
882     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_BRC_DLL_PATH,
883         "VP9 BRC DLL Path",
884         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
885         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
886         "Encode",
887         MOS_USER_FEATURE_TYPE_USER,
888         MOS_USER_FEATURE_VALUE_TYPE_STRING,
889         "0",
890         "Optional:  Select path of VP9VDEnc BRC DLL - if blank then disable VP9 BRC DLL Custom Path Enable."),
891     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_ENCODE_ENABLE_BRC_DLL_CUSTOMPATH,
892         "VP9 BRC DLL Custom Path Enable",
893         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
894         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
895         "Encode",
896         MOS_USER_FEATURE_TYPE_USER,
897         MOS_USER_FEATURE_VALUE_TYPE_INT32,
898         "0",
899         "Optional:  Enables custom path for VP9 BRC DLL, if 0, location of UMD DLL is used."),
900     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_CMD_INIT_HUC_ID,
901         "VDEnc CmdInitializer Huc Enable",
902         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
903         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
904         "Encode",
905         MOS_USER_FEATURE_TYPE_USER,
906         MOS_USER_FEATURE_VALUE_TYPE_INT32,
907         "0",
908         "Enable CmdInitializer HuC FW for HEVC/VP9 VDEnc."),
909     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_ID,
910         "HEVC Encode",
911         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
912         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
913         "Encode",
914         MOS_USER_FEATURE_TYPE_USER,
915         MOS_USER_FEATURE_VALUE_TYPE_INT32,
916         "1",
917         "Enables/Disables HEVC Encode."),
918     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_SECURE_INPUT_ID,
919         "Secure HEVC Encode",
920         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
921         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
922         "Secure HEVC Encode",
923         MOS_USER_FEATURE_TYPE_USER,
924         MOS_USER_FEATURE_VALUE_TYPE_INT32,
925         "0",
926         "Secure HEVC Encode."),
927     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_MEDIARESET_TEST_ID,
928         "Enable MediaReset Test",
929         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
930         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
931         "Encode",
932         MOS_USER_FEATURE_TYPE_USER,
933         MOS_USER_FEATURE_VALUE_TYPE_INT32,
934         "0",
935         "Enable HEVC Encode Media Reset Test, by default:0(disabled)."),
936     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_WP_SUPPORT_ID,
937         "Enable WP Support",
938         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
939         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
940         "Encode",
941         MOS_USER_FEATURE_TYPE_USER,
942         MOS_USER_FEATURE_VALUE_TYPE_INT32,
943         "1",
944         "Enable Weighted Prediction support in HEVC Encoder."),
945     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MODE_ID,
946         "HEVC Encode Mode",
947         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
948         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
949         "Encode",
950         MOS_USER_FEATURE_TYPE_USER,
951         MOS_USER_FEATURE_VALUE_TYPE_INT32,
952         "0",
953         "Reports out the internal HEVC encode mode."),
954     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ME_ENABLE_ID,
955         "HEVC Encode HME",
956         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
957         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
958         "Encode",
959         MOS_USER_FEATURE_TYPE_USER,
960         MOS_USER_FEATURE_VALUE_TYPE_INT32,
961         "1",
962         "Enables/Disables HME for HEVC."),
963     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_16xME_ENABLE_ID,
964         "HEVC Encode SuperHME",
965         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
966         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
967         "Encode",
968         MOS_USER_FEATURE_TYPE_USER,
969         MOS_USER_FEATURE_VALUE_TYPE_INT32,
970         "1",
971         "Enables/Disables SuperHme for HEVC."),
972     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_32xME_ENABLE_ID,
973         "HEVC Encode UltraHME",
974         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
975         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
976         "Encode",
977         MOS_USER_FEATURE_TYPE_USER,
978         MOS_USER_FEATURE_VALUE_TYPE_INT32,
979         "0",
980         "Enables/Disables UHME for HEVC."),
981     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_16xME_ENABLE_ID,
982         "Enable HEVC VDEnc SuperHME",
983         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
984         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
985         "Encode",
986         MOS_USER_FEATURE_TYPE_USER,
987         MOS_USER_FEATURE_VALUE_TYPE_INT32,
988         "1",
989         "Enable/Disable SuperHme for HEVC VDEnc."),
990     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_32xME_ENABLE_ID,
991         "Enable HEVC VDEnc UltraHME",
992         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
993         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
994         "Encode",
995         MOS_USER_FEATURE_TYPE_USER,
996         MOS_USER_FEATURE_VALUE_TYPE_INT32,
997         "1",
998         "Enables/Disables UHME for HEVC VDEnc."),
999     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_26Z_ENABLE_ID,
1000         "HEVC Encode 26Z Enable",
1001         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1002         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1003         "Encode",
1004         MOS_USER_FEATURE_TYPE_USER,
1005         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1006         "1",
1007         "Enables/Disables 26Z for HEVC."),
1008     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_REGION_NUMBER_ID,
1009         "HEVC Encode WP Number",
1010         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1011         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1012         "Encode",
1013         MOS_USER_FEATURE_TYPE_USER,
1014         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1015         "4",
1016         "Enables/Disables WP for HEVC."),
1017     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_NUM_B_KERNEL_SPLIT,
1018         "HEVC Encode B Kernel Split Num",
1019         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1020         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1021         "Encode",
1022         MOS_USER_FEATURE_TYPE_USER,
1023         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1024         "0",
1025         "Number of B kernel splits for HEVC."),
1026     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_POWER_SAVING,
1027         "HEVC Encode Power Save Enable",
1028         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1029         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1030         "Encode",
1031         MOS_USER_FEATURE_TYPE_USER,
1032         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1033         "0",
1034         "Enable power saving mode in HEVC Enc"),
1035     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_NUM_8x8_INTRA_KERNEL_SPLIT,
1036         "HEVC Encode 8x8 Intra Kernel Split Num",
1037         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1038         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1039         "Encode",
1040         MOS_USER_FEATURE_TYPE_USER,
1041         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1042         "0",
1043         "Number of 8x8 intra kernel splits for HEVC."),
1044     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_RDOQ_ENABLE_ID,
1045         "HEVC RDOQ Enable",
1046         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1047         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1048         "Encode",
1049         MOS_USER_FEATURE_TYPE_USER,
1050         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1051         "1",
1052         "Enable RDOQ for HEVC"),
1053     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_IFRAME_RDOQ_ENABLE_ID,
1054         "HEVC I Frame RDOQ Enable",
1055         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1056         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1057         "Encode",
1058         MOS_USER_FEATURE_TYPE_USER,
1059         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1060         "1",
1061         "Enable I Frame RDOQ for HEVC"),
1062     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MULTIPASS_BRC_ENABLE_ID,
1063         "HEVC Encode Multipass BRC Enable",
1064         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1065         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1066         "Encode",
1067         MOS_USER_FEATURE_TYPE_USER,
1068         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1069         "1",
1070         "Enables HEVC Encode Multipass BRC."),
1071     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MULTIPASS_BRC_IN_USE_ID,
1072         "HEVC Encode Multipass BRC In Use",
1073         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1074         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1075         "Encode",
1076         MOS_USER_FEATURE_TYPE_USER,
1077         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1078         "0",
1079         "Report key to indicate if Multipass BRC is turned on."),
1080     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_ID,
1081         "BRC SW Simulation",
1082         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1083         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1084         "Encode",
1085         MOS_USER_FEATURE_TYPE_USER,
1086         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1087         "0",
1088         "Used to enable BRC SW simulation Mode"),
1089     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_PATH_ID,
1090         "BRC SW Simulation Modules Path",
1091         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1092         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1093         "Encode",
1094         MOS_USER_FEATURE_TYPE_USER,
1095         MOS_USER_FEATURE_VALUE_TYPE_STRING,
1096         "0",
1097         "Used to enable ENCODE BRC SW simulation Custom Path"),
1098     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_BRC_SOFTWARE_IN_USE_ID,
1099         "BRC SW Simulation In Use",
1100         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1101         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1102         "Report",
1103         MOS_USER_FEATURE_TYPE_USER,
1104         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1105         "0",
1106         "Used to report if ENCODE BRC SW Simulation is in use."),
1107     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_LA_SOFTWARE_ID,
1108         "LA SW Simulation",
1109         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1110         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1111         "Encode",
1112         MOS_USER_FEATURE_TYPE_USER,
1113         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1114         "0",
1115         "Used to enable lookahead SW simulation Mode"),
1116     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_LA_SOFTWARE_PATH_ID,
1117         "LA SW Simulation Modules Path",
1118         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1119         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1120         "Encode",
1121         MOS_USER_FEATURE_TYPE_USER,
1122         MOS_USER_FEATURE_VALUE_TYPE_STRING,
1123         "0",
1124         "Used to enable ENCODE lookahead SW simulation Custom Path"),
1125     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_LA_SOFTWARE_IN_USE_ID,
1126         "LA SW Simulation In Use",
1127         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1128         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1129         "Report",
1130         MOS_USER_FEATURE_TYPE_USER,
1131         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1132         "0",
1133         "Used to report if ENCODE lookahead SW Simulation is in use."),
1134     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_ACQP_ENABLE_ID,
1135         "HEVC VDEnc ACQP Enable",
1136         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1137         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1138         "Encode",
1139         MOS_USER_FEATURE_TYPE_USER,
1140         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1141         "0",
1142         "Enable ACQP for HEVC VDEnc"),
1143     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_VQI_ENABLE_ID,
1144         "HEVC VDEnc VQI Enable",
1145         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1146         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1147         "Encode",
1148         MOS_USER_FEATURE_TYPE_USER,
1149         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1150         "1",
1151         "Enable VQI for HEVC VDEnc"),
1152     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_FORCE_PAK_PASS_NUM_ID,
1153         "Force PAK Pass Num",
1154         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1155         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1156         "Encode",
1157         MOS_USER_FEATURE_TYPE_USER,
1158         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1159         "0",
1160         "Force dual pipe PAK pass number.by default = 0: not forcing"),
1161     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_ROUNDING_ENABLE_ID,
1162         "HEVC VDEnc Rounding Enable",
1163         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1164         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1165         "Encode",
1166         MOS_USER_FEATURE_TYPE_USER,
1167         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1168         "1",
1169         "Enable Rounding for HEVC VDEnc"),
1170     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_PAKOBJCMD_STREAMOUT_ENABLE_ID,
1171         "HEVC VDEnc PakObjCmd StreamOut Enable",
1172         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1173         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1174         "Encode",
1175         MOS_USER_FEATURE_TYPE_USER,
1176         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1177         "0",
1178         "Enable PakObjCmd StreamOut for HEVC VDEnc"),
1179     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_LBCONLY_ENABLE_ID,
1180         "HEVC VDEnc LBC Only Enable",
1181         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1182         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1183         "Encode",
1184         MOS_USER_FEATURE_TYPE_USER,
1185         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1186         "0",
1187         "Enable LBC Only for IBC for HEVC VDEnc"),
1188     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_PARTIAL_FRAME_UPDATE_ENABLE_ID,
1189         "HEVC VDEnc Partial Frame Update Enable",
1190         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1191         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1192         "Encode",
1193         MOS_USER_FEATURE_TYPE_USER,
1194         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1195         "0",
1196         "Enable Partial Frame Update for HEVC VDEnc"),
1197     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_NUM_THREADS_PER_LCU_ID,
1198         "HEVC Num Threads Per LCU",
1199         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1200         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1201         "Encode",
1202         MOS_USER_FEATURE_TYPE_USER,
1203         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1204         "8",
1205         "Sets the number of threads per LCU. Currently used only for CNL."),
1206     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_MDF_DISABLE_ID,
1207         "HEVC Encode MDF Disable",
1208         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1209         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1210         "Encode",
1211         MOS_USER_FEATURE_TYPE_USER,
1212         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1213         "0",
1214         "Enables/Disables MDF for HEVC Encoder."),
1215     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_CODEC_MMC_ENABLE_ID,
1216         "Enable Codec MMC",
1217         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1218         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1219         "Codec",
1220         MOS_USER_FEATURE_TYPE_USER,
1221         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1222         "0",
1223         "Enable Codec MMCD. (0: Disable codec MMCD; other values: enable codec MMCD)."),
1224     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_MMC_ENABLE_ID,
1225         "Enable Decode MMC",
1226         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1227         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1228         "Decode",
1229         MOS_USER_FEATURE_TYPE_USER,
1230         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1231         "0",
1232         "Enable Decode MMCD. (0: Disable decode MMCD; other values: enable decode MMCD)."),
1233     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_MMC_ENABLE_ID,
1234         "Enable Encode MMC",
1235         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1236         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1237         "Encode",
1238         MOS_USER_FEATURE_TYPE_USER,
1239         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1240         "0",
1241         "Enable Encode MMCD. (0: Disable encode MMCD; other values: enable encode MMCD)."),
1242     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_CODEC_MMC_IN_USE_ID,
1243         "Codec MMC In Use",
1244         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1245         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1246         "Report",
1247         MOS_USER_FEATURE_TYPE_USER,
1248         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1249         "0",
1250         "Report key to indicate if codec MMC is turned on "),
1251     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_MMC_IN_USE_ID,
1252         "Decode MMC In Use",
1253         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1254         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1255         "Report",
1256         MOS_USER_FEATURE_TYPE_USER,
1257         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1258         "0",
1259         "Report key to indicate if decode MMC is turned on "),
1260     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_MPEG2_MODE_ID,
1261         "MPEG2 Decode Mode",
1262         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1263         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1264         "Report",
1265         MOS_USER_FEATURE_TYPE_USER,
1266         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1267         "0",
1268         "Report key to indicate if MPEG2 decode mode is turned on "),
1269     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_VC1_MODE_ID,
1270         "VC1 Decode Mode",
1271         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1272         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1273         "Report",
1274         MOS_USER_FEATURE_TYPE_USER,
1275         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1276         "0",
1277         "Report key to indicate if VC1 decode mode is turned on "),
1278     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_AVC_MODE_ID,
1279         "AVC Decode Mode",
1280         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1281         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1282         "Report",
1283         MOS_USER_FEATURE_TYPE_USER,
1284         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1285         "0",
1286         "Report key to indicate if AVC decode mode is turned on "),
1287     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_JPEG_MODE_ID,
1288         "JPEG Decode Mode",
1289         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1290         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1291         "Report",
1292         MOS_USER_FEATURE_TYPE_USER,
1293         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1294         "0",
1295         "Report key to indicate if JPEG decode mode is turned on "),
1296     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_VP8_MODE_ID,
1297         "VP8 Decode Mode",
1298         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1299         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1300         "Report",
1301         MOS_USER_FEATURE_TYPE_USER,
1302         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1303         "0",
1304         "Report key to indicate if VP8 decode mode is turned on "),
1305     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_HEVC_MODE_ID,
1306         "HEVC Decode Mode",
1307         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1308         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1309         "Report",
1310         MOS_USER_FEATURE_TYPE_USER,
1311         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1312         "0",
1313         "Report key to indicate if HEVC decode mode is turned on "),
1314     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_VP9_MODE_ID,
1315         "VP9 Decode Mode",
1316         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1317         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1318         "Report",
1319         MOS_USER_FEATURE_TYPE_USER,
1320         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1321         "0",
1322         "Report key to indicate if VP9 decode mode is turned on "),
1323     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_AV1_MODE_ID,
1324         "AV1 Decode Mode",
1325         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1326         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1327         "Report",
1328         MOS_USER_FEATURE_TYPE_USER,
1329         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1330         "0",
1331         "Report key to indicate if AV1 decode mode is turned on "),
1332     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_HISTOGRAM_FROM_VEBOX_ID,
1333         "Decode Histogram from VEBox",
1334         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1335         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1336         "Report",
1337         MOS_USER_FEATURE_TYPE_USER,
1338         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1339         "0",
1340         "Report key to indicate if decode histogram is from VEBox "),
1341     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_EXTENDED_MMC_IN_USE_ID,
1342         "Decode Extended MMC In Use",
1343         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1344         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1345         "Report",
1346         MOS_USER_FEATURE_TYPE_USER,
1347         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1348         "0",
1349         "Report key to indicate if decode extended MMC is turned on "),
1350     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_MMC_IN_USE_ID,
1351         "Encode MMC In Use",
1352         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1353         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1354         "Report",
1355         MOS_USER_FEATURE_TYPE_USER,
1356         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1357         "0",
1358         "Report key to indicate if encode MMC is turned on "),
1359     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_EXTENDED_MMC_IN_USE_ID,
1360         "Encode Extended MMC In Use",
1361         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1362         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1363         "Report",
1364         MOS_USER_FEATURE_TYPE_USER,
1365         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1366         "0",
1367         "Report key to indicate if encode extended MMC is turned on "),
1368     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_USED_VDBOX_NUM_ID,
1369         "Media Encode Used VDBOX Number",
1370         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1371         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1372         "Encode",
1373         MOS_USER_FEATURE_TYPE_USER,
1374         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1375         "1",
1376         "Media Encode Used VDBOX Number."),
1377     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_ENABLE_COMPUTE_CONTEXT_ID,
1378         "Enable Compute Context",
1379         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1380         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1381         "Encode",
1382         MOS_USER_FEATURE_TYPE_USER,
1383         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1384         "0",
1385         "Enable Compute Context. default:0 disabled."),
1386     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DECODE_ENABLE_COMPUTE_CONTEXT_ID,
1387         "Enable Compute Context",
1388         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1389         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1390         "Encode",
1391         MOS_USER_FEATURE_TYPE_USER,
1392         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1393         "0",
1394         "Enable Compute Context. default:0 disabled."),
1395     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_DEC_RT_COMPRESSIBLE_ID,
1396         "Decode RT Compressible",
1397         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1398         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1399         "Report",
1400         MOS_USER_FEATURE_TYPE_USER,
1401         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1402         "0",
1403         "Report Key to indicate if the surface is MMCD capable (0: no; 1: yes)."),
1404     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_DEC_RT_COMPRESSMODE_ID,
1405         "Decode RT Compress Mode",
1406         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1407         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1408         "Report",
1409         MOS_USER_FEATURE_TYPE_USER,
1410         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1411         "0",
1412         "Report Key to indicate the MMCD compression mode of a surface "),
1413     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_ENC_RECON_COMPRESSIBLE_ID,
1414         "Encode Recon Compressible",
1415         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1416         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1417         "Report",
1418         MOS_USER_FEATURE_TYPE_USER,
1419         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1420         "0",
1421         "Report Key to indicate if the surface is MMCD capable (0: no; 1: yes)."),
1422     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_ENC_RECON_COMPRESSMODE_ID,
1423         "Encode Recon Compress Mode",
1424         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1425         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1426         "Report",
1427         MOS_USER_FEATURE_TYPE_USER,
1428         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1429         "0",
1430         "Report Key to indicate the MMCD compression mode of a surface "),
1431     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_DEFAULT_STATE_ID,
1432         "Slice Shutdown Default State",
1433         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1434         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1435         "Encode",
1436         MOS_USER_FEATURE_TYPE_USER,
1437         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1438         "0",
1439         "Slice Shutdown default state."),
1440     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_REQUEST_STATE_ID,
1441         "Slice Shutdown Request State",
1442         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1443         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1444         "Encode",
1445         MOS_USER_FEATURE_TYPE_USER,
1446         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1447         "0",
1448         "Slice Shutdown requested state ."),
1449     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_RESOLUTION_THRESHOLD_ID,
1450         "Slice Shutdown Resolution Threshold",
1451         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1452         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1453         "Encode",
1454         MOS_USER_FEATURE_TYPE_USER,
1455         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1456         "0",
1457         "Slice Shutdown Resolution Threshold "),
1458     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SLICE_SHUTDOWN_TARGET_USAGE_THRESHOLD_ID,
1459         "Slice Shutdown Target Usage Threshold",
1460         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1461         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1462         "Encode",
1463         MOS_USER_FEATURE_TYPE_USER,
1464         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1465         "0",
1466         "Slice Shutdown Target Usage Threshold "),
1467     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MPEG2_SLICE_STATE_ENABLE_ID,
1468         "Mpeg2 Encode Slice State Enable",
1469         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1470         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1471         "Encode",
1472         MOS_USER_FEATURE_TYPE_USER,
1473         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1474         "1",
1475         "Slice Shutdown related param for Mpeg2."),
1476     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MPEG2_ENCODE_BRC_DISTORTION_BUFFER_ENABLE_ID,
1477         "Mpeg2 Encode BRC Distorion Buffer enable",
1478         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1479         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1480         "Encode",
1481         MOS_USER_FEATURE_TYPE_USER,
1482         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1483         "0",
1484         "Enables/Disables BRC distorion buffer dump for MPEG2 Encoder"),
1485     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_NUMBER_OF_CODEC_DEVICES_ON_VDBOX1_ID,
1486         "Num of Codec Devices on VDBOX1",
1487         __MEDIA_USER_FEATURE_SUBKEY_REPORT,//read path and write path are the same
1488         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1489         "Report",
1490         MOS_USER_FEATURE_TYPE_USER,
1491         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1492         "0",
1493         "Report number of Codec devices created on VDBox #1."),
1494     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_NUMBER_OF_CODEC_DEVICES_ON_VDBOX2_ID,
1495         "Num of Codec Devices on VDBOX2",
1496         __MEDIA_USER_FEATURE_SUBKEY_REPORT,//read path and write path are the same
1497         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1498         "Report",
1499         MOS_USER_FEATURE_TYPE_USER,
1500         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1501         "0",
1502         "Report number of Codec devices created on VDBox #2"),
1503     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_VDI_MODE_ID,
1504         __MEDIA_USER_FEATURE_VALUE_VDI_MODE,
1505         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1506         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1507         "VP",
1508         MOS_USER_FEATURE_TYPE_USER,
1509         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
1510         "1",
1511         "Always true for Gen7.5+"),
1512     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MEDIA_WALKER_MODE_ID,
1513         __MEDIA_USER_FEATURE_VALUE_MEDIA_WALKER_MODE,
1514         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1515         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1516         "VP",
1517         MOS_USER_FEATURE_TYPE_USER,
1518         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1519         "-1",
1520         "Media Walker Mode: Disabled(0), Repel(1), Dual(2), Quad(3), default(-1):Not Set"),
1521     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_HW_SCOREBOARD_ENABLE_ID,
1522         "VP8 HW Scoreboard",
1523         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1524         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1525         "Encode",
1526         MOS_USER_FEATURE_TYPE_USER,
1527         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1528         "1",
1529         "Enables VP8 Encode HW Scoreboard Feature."),
1530     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_ME_ENABLE_ID,
1531         "VP8 Encode HME",
1532         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1533         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1534         "Encode",
1535         MOS_USER_FEATURE_TYPE_USER,
1536         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1537         "1",
1538         "Enables VP8 Encode HME Feature."),
1539     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_16xME_ENABLE_ID,
1540         "VP8 Encode SuperHME",
1541         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1542         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1543         "Encode",
1544         MOS_USER_FEATURE_TYPE_USER,
1545         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1546         "1",
1547         "Enables VP8 Encode SuperHME Feature"),
1548     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_REPAK_ENABLE_ID,
1549         "VP8 Encode Repak",
1550         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1551         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1552         "Encode",
1553         MOS_USER_FEATURE_TYPE_USER,
1554         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1555         "1",
1556         "Enables VP8 Encode Repak Feature."),
1557     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_MULTIPASS_BRC_ENABLE_ID,
1558         "VP8 Encode Multipass BRC Enable",
1559         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1560         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1561         "Encode",
1562         MOS_USER_FEATURE_TYPE_USER,
1563         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1564         "1",
1565         "Enables VP8 Encode Multipass BRC."),
1566     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP8_ENCODE_ADAPTIVE_REPAK_ENABLE_ID,
1567         "VP8 Encode Adpative Repak Enable",
1568         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1569         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1570         "Encode",
1571         MOS_USER_FEATURE_TYPE_USER,
1572         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1573         "1",
1574         "Enables VP8 Encode Adaptive Repak Feature."),
1575     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DISABLE_HEVC_REALTILE_DECODE_ID,
1576         "Disable HEVC Real Tile Decode",
1577         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1578         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1579         "Decode",
1580         MOS_USER_FEATURE_TYPE_USER,
1581         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1582         "0",
1583         "Disable HEVC real tile decode mode. Default is not disabled"),
1584     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENABLE_HEVC_REALTILE_MULTI_PHASE_DECODE_ID,
1585         "Enable HEVC Real Tile Multi Phase Decode",
1586         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1587         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1588         "Decode",
1589         MOS_USER_FEATURE_TYPE_USER,
1590         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1591         "1",
1592         "Enable HEVC real tile multi-phase decode mode. Default is enabled"),
1593     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HCP_DECODE_USER_PIPE_NUM_ID,
1594         "HCP Decode User Pipe Num",
1595         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1596         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1597         "Codec",
1598         MOS_USER_FEATURE_TYPE_USER,
1599         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1600         "2",
1601         "When vdbox >= 4, pipe num equals to the value set by user. (Default 2: use 2 pipes)"), //This is WA for scalability when vdbox num >= 4 because of kmd not ready
1602     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_AV1D_ENABLE_ID,
1603         "ApogeiosAv1dEnable",
1604         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1605         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1606         "Codec",
1607         MOS_USER_FEATURE_TYPE_USER,
1608         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
1609         "1",
1610         "Enable Apogeios av1 decode path. 1: enable, 0: disable. "),
1611      MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENABLE_HEVC_DECODE_RT_FRAME_COUNT_ID,
1612         "RT Decoded Count",
1613         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1614         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1615         "Report",
1616         MOS_USER_FEATURE_TYPE_USER,
1617         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1618         "0",
1619         "Reports out real tile decoded frame count."),
1620      MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENABLE_HEVC_DECODE_VT_FRAME_COUNT_ID,
1621         "VT Decoded Count",
1622         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1623         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1624         "Report",
1625         MOS_USER_FEATURE_TYPE_USER,
1626         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1627         "0",
1628         "Reports out virtual tile decoded frame count."),
1629      MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENABLE_HEVC_DECODE_SP_FRAME_COUNT_ID,
1630         "SP Decoded Count",
1631         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1632         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1633         "Report",
1634         MOS_USER_FEATURE_TYPE_USER,
1635         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1636         "0",
1637         "Reports out single pipe decoded frame count."),
1638     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1BTDLROWSTORECACHE_DISABLE_ID,
1639         "DisableAv1BtdlRowstoreCache",
1640         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1641         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1642         "Decode",
1643         MOS_USER_FEATURE_TYPE_USER,
1644         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1645         "0",
1646         "Disable AV1 BSD Rowstore Cache flag. 0: Enable, 1: Disable."),
1647     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1SMVLROWSTORECACHE_DISABLE_ID,
1648         "DisableAv1SmvlRowstoreCache",
1649         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1650         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1651         "Decode",
1652         MOS_USER_FEATURE_TYPE_USER,
1653         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1654         "0",
1655         "Disable AV1 SMV Rowstore Cache flag. 0: Enable, 1: Disable."),
1656     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1IPDLROWSTORECACHE_DISABLE_ID,
1657         "DisableAv1IpdlRowstoreCache",
1658         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1659         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1660         "Decode",
1661         MOS_USER_FEATURE_TYPE_USER,
1662         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1663         "0",
1664         "Disable AV1 IPD Rowstore Cache flag. 0: Enable, 1: Disable."),
1665     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1DFLYROWSTORECACHE_DISABLE_ID,
1666         "DisableAv1DflyRowstoreCache",
1667         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1668         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1669         "Decode",
1670         MOS_USER_FEATURE_TYPE_USER,
1671         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1672         "0",
1673         "Disable AV1 DFLY Rowstore Cache flag. 0: Enable, 1: Disable."),
1674     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1DFLUROWSTORECACHE_DISABLE_ID,
1675         "DisableAv1DfluRowstoreCache",
1676         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1677         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1678         "Decode",
1679         MOS_USER_FEATURE_TYPE_USER,
1680         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1681         "0",
1682         "Disable AV1 DFLU Rowstore Cache flag. 0: Enable, 1: Disable."),
1683     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1DFLVROWSTORECACHE_DISABLE_ID,
1684         "DisableAv1DflvRowstoreCache",
1685         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1686         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1687         "Decode",
1688         MOS_USER_FEATURE_TYPE_USER,
1689         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1690         "0",
1691         "Disable AV1 DFLV Rowstore Cache flag. 0: Enable, 1: Disable."),
1692     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1CDEFROWSTORECACHE_DISABLE_ID,
1693         "DisableAv1CdefRowstoreCache",
1694         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1695         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1696         "Decode",
1697         MOS_USER_FEATURE_TYPE_USER,
1698         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1699         "0",
1700         "Disable AV1 CDEF Rowstore Cache flag. 0: Enable, 1: Disable."),
1701     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENABLE_AVP_SCALABILITY_DECODE_ID,
1702         "Enable AVP Scalability Decode",
1703         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1704         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1705         "Codec",
1706         MOS_USER_FEATURE_TYPE_USER,
1707         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
1708         "0",
1709         "Enable AVP Scalability decode mode. Default 0: Scalable Decode Mode "),
1710     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1_DECODE_ON_SIMULATION_ID,
1711         "AV1 On Simulation",
1712         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1713         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1714         "Decode",
1715         MOS_USER_FEATURE_TYPE_USER,
1716         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
1717         "0",
1718         "AV1 decode running on simulation. Default 0, set to 1 if on simulation."),
1719 
1720 #if (_DEBUG || _RELEASE_INTERNAL)
1721     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_HUC_STATUS2_VALUE,
1722         "Huc Status2 Value",
1723         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1724         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1725         "Encode",
1726         MOS_USER_FEATURE_TYPE_USER,
1727         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1728         "0",
1729         "Value of HuC status2."),
1730     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MHW_BASE_VDENC_INTERFACE_ID,
1731         "Use Mhw Base Vdenc Interface",
1732         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1733         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1734         "MOS",
1735         MOS_USER_FEATURE_TYPE_USER,
1736         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1737         "0",
1738         "Mhw Base Vdenc Interface Active Flag"),
1739 
1740     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MEDIA_PREEMPTION_ENABLE_ID,
1741         __MEDIA_USER_FEATURE_VALUE_MEDIA_PREEMPTION_ENABLE,
1742         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1743         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1744         "Media",
1745         MOS_USER_FEATURE_TYPE_USER,
1746         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1747         "1", // Enable media UMD preemption by default under release internal version and debug version for CNL+ even if there is no user feature setting.
1748         "Enable/Disable Pre-emption for media"),
1749 
1750     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_L3ALLOC_REG,
1751         "MDF L3ALLOC register override",
1752         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1753         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1754         "Media",
1755         MOS_USER_FEATURE_TYPE_USER,
1756         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1757         "0xff00ff00",
1758         "Override L3 ALLOC register value in MDF"),
1759 
1760     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_L3TCCNTRL_REG,
1761         "MDF L3TCCNTRL register override",
1762         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1763         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1764         "Media",
1765         MOS_USER_FEATURE_TYPE_USER,
1766         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1767         "0xff00ff00",
1768         "Override L3 TCCNTRL register value in MDF"),
1769 
1770     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MDF_OVERRIDE_MOCS_INDEX,
1771         "MDF MOCS index override",
1772         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1773         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1774         "Media",
1775         MOS_USER_FEATURE_TYPE_USER,
1776         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1777         "5",
1778         "Override MOCS index value in MDF"),
1779 
1780     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MDF_FORCE_RAMODE,
1781         "MDF Force RAMode",
1782         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1783         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1784         "Media",
1785         MOS_USER_FEATURE_TYPE_USER,
1786         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1787         "0",
1788         "Force GPU context be created in RAMode"),
1789 
1790     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_GROUP_ID_ID,
1791         "Group ID",
1792         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1793         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1794         "Encode",
1795         MOS_USER_FEATURE_TYPE_USER,
1796         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1797         "0",
1798         "Sets the value of Group ID"),
1799     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_VFE_MAX_THREADS_ID,
1800         "Encode VFE Max Threads",
1801         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1802         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1803         "Encode",
1804         MOS_USER_FEATURE_TYPE_USER,
1805         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1806         "0",
1807         "Used to set the max number of threads for VFE."),
1808     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_VFE_MAX_THREADS_SCALING_ID,
1809         "Encode VFE Max Threads For Scaling",
1810         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1811         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1812         "Encode",
1813         MOS_USER_FEATURE_TYPE_USER,
1814         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1815         "0",
1816         "Used to set the max number of threads for VFE."),
1817     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_FTQ_IN_USE_ID,
1818         "AVC FTQ Enable In Use",
1819         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1820         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1821         "Report",
1822         MOS_USER_FEATURE_TYPE_USER,
1823         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1824         "0",
1825         "Used to report if FTQ is enabled."),
1826     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AVC_CAF_IN_USE_ID,
1827         "AVC CAF Enable In Use",
1828         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1829         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1830         "Report",
1831         MOS_USER_FEATURE_TYPE_USER,
1832         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1833         "0",
1834         "Used to report if CAF is enabled."),
1835     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_HW_WALKER_MODE_ID,
1836         "Encode HW Walker Mode",
1837         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1838         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1839         "Encode",
1840         MOS_USER_FEATURE_TYPE_USER,
1841         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1842         "0",
1843         "Used to set walker mode - useful in HSW. Not used for BDW+. ."),
1844     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG_OVERRIDE_ID,
1845         "Encode L3CNTLREG Override",
1846         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1847         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1848         "Encode",
1849         MOS_USER_FEATURE_TYPE_USER,
1850         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1851         "0",
1852         "Used to override the L3CNTLREG value."),
1853     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG2_OVERRIDE_ID,
1854         "Encode L3CNTLREG2 Override",
1855         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1856         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1857         "Encode",
1858         MOS_USER_FEATURE_TYPE_USER,
1859         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1860         "0",
1861         "Used to override the L3CNTLREG2 value for HSW. Not  yet used for BDW+."),
1862     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_CNTLREG3_OVERRIDE_ID,
1863         "Encode L3CNTLREG3 Override",
1864         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1865         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1866         "Encode",
1867         MOS_USER_FEATURE_TYPE_USER,
1868         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1869         "0",
1870         "Used to override the L3CNTLREG3 value for HSW. Not  yet used for BDW+."),
1871     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_SQCREG1_OVERRIDE_ID,
1872         "Encode L3SQCREG1 Override",
1873         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1874         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1875         "Encode",
1876         MOS_USER_FEATURE_TYPE_USER,
1877         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1878         "0",
1879         "Used to override the L3SQCREG1 value for HSW. Not  yet used for BDW+."),
1880     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_CACHE_SQCREG4_OVERRIDE_ID,
1881         "Encode L3SQCREG4 Override",
1882         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1883         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1884         "Encode",
1885         MOS_USER_FEATURE_TYPE_USER,
1886         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1887         "0",
1888         "Used to override the L3SQCREG2 value for HSW. Not  yet used for BDW+."),
1889     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_L3_LRA_1_REG1_OVERRIDE_ID,
1890         "L3LRA1RegOverride",
1891         __MEDIA_USER_FEATURE_SUBKEY_PERFORMANCE,
1892         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1893         "Codec",
1894         MOS_USER_FEATURE_TYPE_USER,
1895         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1896         "0",
1897         "Used to override the L3LRA1Reg value for HSW. Not  yet used for BDW+."),
1898 
1899     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDBOX_ID_USED,
1900         "Used VDBOX ID",
1901         __MEDIA_USER_FEATURE_SUBKEY_REPORT,//read path and write path are the same
1902         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1903         "Codec",
1904         MOS_USER_FEATURE_TYPE_USER,
1905         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1906         "0",
1907         "Which VDBox ID is used. (Default 0: Not used, 1: VDBox used. Each Hex symbol represents one VDBOX, e.g. bits[3:0] means VDBOX0, bits[7:4] means VDBOX1)."),
1908     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_VDENC_IN_USE_ID,
1909         "VDENC In Use",
1910         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1911         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1912         "Report",
1913         MOS_USER_FEATURE_TYPE_USER,
1914         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1915         "0",
1916         "Reports out if VDEnc is used."),
1917     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_CSC_METHOD_ID,
1918         "Encode CSC Method",
1919         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1920         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1921         "Report",
1922         MOS_USER_FEATURE_TYPE_USER,
1923         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1924         "0",
1925         "Reports out which CSC method is in use."),
1926     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_RAW_TILE_ID,
1927         "Encode Raw Surface Tile",
1928         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1929         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1930         "Report",
1931         MOS_USER_FEATURE_TYPE_USER,
1932         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1933         "0",
1934         "Reports out raw surface tile."),
1935     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ENCODE_RAW_FORMAT_ID,
1936         "Encode Raw Surface Format",
1937         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1938         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1939         "Report",
1940         MOS_USER_FEATURE_TYPE_USER,
1941         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1942         "0",
1943         "Reports out raw surface format."),
1944     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_CQM_QP_THRESHOLD_ID,
1945         "CQM QP Threshold",
1946         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1947         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1948         "Encode",
1949         MOS_USER_FEATURE_TYPE_USER,
1950         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1951         "40",
1952         "QP threshuld for CQM enable/disable hint. Used by lookahead analysis kernel in LPLA."),
1953     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_ENABLE_ID,
1954         __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_ENABLE,
1955         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1956         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1957         "VP",
1958         MOS_USER_FEATURE_TYPE_USER,
1959         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
1960         "0",
1961         "TRUE for enabling GD2 kernel debug on VPHAL, otherwise disabling"),
1962     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_SURF_BTI_ID,
1963         __MEDIA_USER_FEATURE_VALUE_ISA_ASM_DEBUG_SURF_BTI,
1964         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1965         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1966         "VP",
1967         MOS_USER_FEATURE_TYPE_USER,
1968         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
1969         "39",
1970         "BTI for GD2 kernel debug surface on VPHAL."),
1971     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ROWSTORE_CACHE_DISABLE_ID,
1972         "Disable RowStore Cache",
1973         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1974         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1975         "Codec",
1976         MOS_USER_FEATURE_TYPE_USER,
1977         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1978         "0",
1979         "Disable cache for RowStore buffer. "),
1980     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_INTRAROWSTORECACHE_DISABLE_ID,
1981         "DisableIntraRowStoreCache",
1982         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1983         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1984         "Codec",
1985         MOS_USER_FEATURE_TYPE_USER,
1986         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1987         "0",
1988         "Disable Intra prediction RowStore buffer cache. "),
1989     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DEBLOCKINGFILTERROWSTORECACHE_DISABLE_ID,
1990         "DisableDeblockingFilterRowStoreCache",
1991         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
1992         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
1993         "Codec",
1994         MOS_USER_FEATURE_TYPE_USER,
1995         MOS_USER_FEATURE_VALUE_TYPE_INT32,
1996         "0",
1997         "Disable Intra prediction RowStore buffer cache. "),
1998     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_BSDMPCROWSTORECACHE_DISABLE_ID,
1999         "DisableBsdMpcRowStoreCache",
2000         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2001         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2002         "Codec",
2003         MOS_USER_FEATURE_TYPE_USER,
2004         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2005         "0",
2006         "Disable decoder BSD/encoder MPC RowStore buffer cache. "),
2007     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MPRROWSTORECACHE_DISABLE_ID,
2008         "DisableMprRowStoreCache",
2009         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2010         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2011         "Decode",
2012         MOS_USER_FEATURE_TYPE_USER,
2013         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2014         "0",
2015         "Disable MPR RowStore buffer cache. "),
2016     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENCROWSTORECACHE_DISABLE_ID,
2017         "DisableVDEncRowStoreCache",
2018         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2019         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2020         "Encode",
2021         MOS_USER_FEATURE_TYPE_USER,
2022         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2023         "0",
2024         "If enabled, disable rowstore cache for VDEnc."),
2025     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_BREAK_IN_CODECHAL_CREATE_ID,
2026         "Break In CodecHal_Create",
2027         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2028         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2029         "Codec",
2030         MOS_USER_FEATURE_TYPE_USER,
2031         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2032         "0",
2033         "If enabled, asserts in CodecHal_Create."),
2034     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_ID,
2035         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE,
2036         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2037         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2038         "MOS",
2039         MOS_USER_FEATURE_TYPE_USER,
2040         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2041         "0",
2042         "If enabled, triggers the MediaSolo code path in MOS for pre-si testing."),
2043     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_STREAM_OUT_ENABLE_ID,
2044         "Stream Out",
2045         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2046         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2047         "Decode",
2048         MOS_USER_FEATURE_TYPE_USER,
2049         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2050         "0",
2051         "Enable decode stream out "),
2052      MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DECOMPRESS_DECODE_OUTPUT_ID,
2053         "Decompress Decode Output",
2054         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2055         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2056         "Decode",
2057         MOS_USER_FEATURE_TYPE_USER,
2058         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2059         "0",
2060         "Call Vebox decompress for decode output at decode endframe"),
2061      MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_DECOMPRESS_DECODE_SFC_OUTPUT_ID,
2062         "Decompress Decode Sfc Output",
2063         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2064         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2065         "Decode",
2066         MOS_USER_FEATURE_TYPE_USER,
2067         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2068         "0",
2069         "Call Vebox decompress for sfc output at decode endframe"),
2070     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_DEBUG_OUTPUT_DIRECTORY_ID,
2071         "CodecHal Debug Output Directory",
2072         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2073         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2074         "Codec",
2075         MOS_USER_FEATURE_TYPE_USER,
2076         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2077         "",
2078         "Directory where all CodecHal debug interface can locate cfg file and dump."),
2079     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_DUMP_OUTPUT_DIRECTORY_ID,
2080         "CodecHal Dump Output Directory",
2081         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2082         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2083         "Codec",
2084         MOS_USER_FEATURE_TYPE_USER,
2085         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2086         "",
2087         "CodecHal Dump Output Directory."),
2088     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MEDIA_DEBUG_CFG_GENERATION_ID,
2089         "Media Debug Cfg Generation",
2090         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2091         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2092         "Codec",
2093         MOS_USER_FEATURE_TYPE_USER,
2094         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2095         "0",
2096         "Enable the Generation of Media Debug Cfg file."),
2097     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_OVERRIDE_ID,
2098         "RDOQ Intra TU Override",
2099         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2100         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2101         "Codec",
2102         MOS_USER_FEATURE_TYPE_USER,
2103         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2104         "0",
2105         "Override Intra RDOQ TU setting."),
2106     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_DISABLE_ID,
2107         "RDOQ Intra TU Disable",
2108         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2109         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2110         "Codec",
2111         MOS_USER_FEATURE_TYPE_USER,
2112         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2113         "0",
2114         "Disable RDOQ for Intra TU."),
2115     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_RDOQ_INTRA_TU_THRESHOLD_ID,
2116         "RDOQ Intra TU Threshold",
2117         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2118         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2119         "Codec",
2120         MOS_USER_FEATURE_TYPE_USER,
2121         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2122         "0",
2123         "RDOQ Intra TU Threshold"),
2124     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_ENABLE_FAKE_HEADER_SIZE_ID,
2125         "Fake Header Size Enable",
2126         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2127         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2128         "Codec",
2129         MOS_USER_FEATURE_TYPE_USER,
2130         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2131         "0",
2132         "Enable Fake Header Size"),
2133     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_FAKE_IFRAME_HEADER_SIZE_ID,
2134         "Fake IFrame Header Size",
2135         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2136         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2137         "Codec",
2138         MOS_USER_FEATURE_TYPE_USER,
2139         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2140         "128",
2141         "Fake I Frame Header Size"),
2142     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CODECHAL_FAKE_PBFRAME_HEADER_SIZE_ID,
2143         "Fake PBFrame Header Size",
2144         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2145         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2146         "Codec",
2147         MOS_USER_FEATURE_TYPE_USER,
2148         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2149         "16",
2150         "Fake P/B Frame Header Size"),
2151     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_COMMAND_PARSER_INPUT_FILE_PATH_ID,
2152         "Command Parser Input File Path",
2153         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2154         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2155         "Media",
2156         MOS_USER_FEATURE_TYPE_USER,
2157         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2158         "",
2159         "Path of command override input file"),
2160     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HUC_DEMO_KERNEL_ID, // Used to indicate which huc kernel to load for the Huc Demo feature
2161         "Media Huc Demo kernel Id",
2162         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2163         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2164         "Media",
2165         MOS_USER_FEATURE_TYPE_USER,
2166         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2167         "3",   // Default is 3 which is huc copy kernel
2168         "Id of demo huc kernel to load"),
2169 
2170     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_IS_CODEC_ROW_STORE_CACHE_ENABLED_ID,
2171         "Codec Row Store Cache Enabled",
2172         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2173         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2174         "Report",
2175         MOS_USER_FEATURE_TYPE_USER,
2176         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2177         "0",
2178         "Reports out whether codec row store cache is enabled or not."),
2179     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_FORCE_AV1_TILE_BASED_DECODE_ID,
2180         "Force Av1 Tile Based Decode",
2181         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2182         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2183         "Codec",
2184         MOS_USER_FEATURE_TYPE_USER,
2185         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2186         "0",
2187         "If enabled, av1 decode will be forced to tile based submission mode."),
2188     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1_ERROR_STATUS_ADDR_VALUE_ID,
2189         "Av1 Error Status Addr Value",
2190         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2191         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2192         "Codec",
2193         MOS_USER_FEATURE_TYPE_USER,
2194         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2195         "0",
2196         "If value is not 0, HW detected error during av1 decode."),
2197     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_HISTOGRAM_DEBUG_ID,
2198         "Decode Histogram Debug",
2199         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2200         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2201         "Decode",
2202         MOS_USER_FEATURE_TYPE_USER,
2203         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2204         "0",
2205         "Enable Decode Histogram StreamOut debug. 0:Disable, 1:Enable"),
2206     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_SFC_RGBFORMAT_OUTPUT_DEBUG_ID,
2207         "Decode SFC RGB Format Output",
2208         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2209         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2210         "Decode",
2211         MOS_USER_FEATURE_TYPE_USER,
2212         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2213         "0",
2214         "Enable Decode SFC RGB Format debug. 1:RGBP, 2:BGRP, 3:RGB24"),
2215     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DECODE_SFC_LINEAR_OUTPUT_DEBUG_ID,
2216         "Decode SFC Linear Output Debug",
2217         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2218         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2219         "Decode",
2220         MOS_USER_FEATURE_TYPE_USER,
2221         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2222         "0",
2223         "Enable Decode SFC Linear Output debug. 0:Disable, 1:Enable"),
2224     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_TCBRC_ARB_DISABLE_ID,
2225         "HEVC VDEnc TCBRC ARB Disable",
2226         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2227         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2228         "Encode",
2229         MOS_USER_FEATURE_TYPE_USER,
2230         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2231         "0",
2232         "Disable TCBRC ARB for HEVC VDEnc"),
2233     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_LPLA_DS_DATA_ID,
2234         "lpla ds data address",
2235         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2236         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2237         "General",
2238         MOS_USER_FEATURE_TYPE_USER,
2239         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2240         "",
2241         "lpla ds data address."),
2242 #endif // (_DEBUG || _RELEASE_INTERNAL
2243     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_STATUS_REPORTING_ENABLE_ID,
2244         "Status Reporting",
2245         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2246         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2247         "Decode",
2248         MOS_USER_FEATURE_TYPE_USER,
2249         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2250         "1",
2251         "Enable decode status reporting"),
2252     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_SF_2_DMA_SUBMITS_ENABLE_ID,
2253         "Enable HEVC SF 2 DMA Submits",
2254         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2255         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2256         "Decode",
2257         MOS_USER_FEATURE_TYPE_USER,
2258         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2259         "0",
2260         "Specify if send HuC and HCP commands in one DMA buffer or two DMA buffer. "),
2261     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVCDATROWSTORECACHE_DISABLE_ID,
2262         "DisableHevcDatRowStoreCache",
2263         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2264         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2265         "Decode",
2266         MOS_USER_FEATURE_TYPE_USER,
2267         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2268         "0",
2269         "Decide if put the DatRowStore buffer to cache or driver allocated buffer. "),
2270     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVCDFROWSTORECACHE_DISABLE_ID,
2271         "DisableHevcDfRowStoreCache",
2272         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2273         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2274         "Decode",
2275         MOS_USER_FEATURE_TYPE_USER,
2276         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2277         "0",
2278         "Decide if put the DfRowStore buffer to cache or driver allocated buffer. "),
2279     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVCSAOROWSTORECACHE_DISABLE_ID,
2280         "DisableHevcSaoRowStoreCache",
2281         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2282         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2283         "Decode",
2284         MOS_USER_FEATURE_TYPE_USER,
2285         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2286         "0",
2287         "Decide if put the SAORowStore buffer to cache or driver allocated buffer."),
2288     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_HVDROWSTORECACHE_DISABLE_ID,
2289         "DisableVp9HvdRowStoreCache",
2290         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2291         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2292         "Decode",
2293         MOS_USER_FEATURE_TYPE_USER,
2294         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2295         "0",
2296         "VP9"),
2297     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_DATROWSTORECACHE_DISABLE_ID,
2298         "DisableVp9DatRowStoreCache",
2299         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2300         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2301         "Decode",
2302         MOS_USER_FEATURE_TYPE_USER,
2303         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2304         "0",
2305         "VP9"),
2306     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VP9_DFROWSTORECACHE_DISABLE_ID,
2307         "DisableVp9DfRowStoreCache",
2308         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2309         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2310         "Decode",
2311         MOS_USER_FEATURE_TYPE_USER,
2312         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2313         "0",
2314         "VP9"),
2315     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_ETW_ENABLE_ID,
2316         __MEDIA_USER_FEATURE_VALUE_MDF_ETW_ENABLE,
2317         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2318         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2319         "MDF",
2320         MOS_USER_FEATURE_TYPE_USER,
2321         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2322         "0",
2323         "Enable MDF ETW Log"),
2324     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_LOG_LEVEL_ID,
2325         __MEDIA_USER_FEATURE_VALUE_MDF_LOG_LEVEL,
2326         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2327         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2328         "MDF",
2329         MOS_USER_FEATURE_TYPE_USER,
2330         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2331         "0",
2332         "Enable MDF Log Level"),
2333     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_UMD_ULT_ENABLE_ID,
2334         __MEDIA_USER_FEATURE_VALUE_MDF_UMD_ULT_ENABLE,
2335         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2336         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2337         "MDF",
2338         MOS_USER_FEATURE_TYPE_USER,
2339         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2340         "0",
2341         "Enable MDF UMD ULT"),
2342     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_ENABLE_ID,
2343         __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_ENABLE,
2344         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2345         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2346         "MDF",
2347         MOS_USER_FEATURE_TYPE_USER,
2348         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2349         "0",
2350         "Enable MDF Command buffer Dump"),
2351     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_CURBE_DUMP_ENABLE_ID,
2352         __MEDIA_USER_FEATURE_VALUE_MDF_CURBE_DUMP_ENABLE,
2353         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2354         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2355         "MDF",
2356         MOS_USER_FEATURE_TYPE_USER,
2357         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2358         "0",
2359         "Enable MDF Curbe Dump"),
2360     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_DUMP_ENABLE_ID,
2361         __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_DUMP_ENABLE,
2362         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2363         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2364         "MDF",
2365         MOS_USER_FEATURE_TYPE_USER,
2366         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2367         "0",
2368         "Enable MDF Surface Dump"),
2369     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_ENABLE_ID,
2370         __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_ENABLE,
2371         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2372         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2373         "MDF",
2374         MOS_USER_FEATURE_TYPE_USER,
2375         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2376         "0",
2377         "Enable MDF Surface State Dump"),
2378     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_COUNTER_ID,
2379         __MEDIA_USER_FEATURE_VALUE_MDF_CMD_DUMP_COUNTER,
2380         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2381         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2382         "MDF",
2383         MOS_USER_FEATURE_TYPE_USER,
2384         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2385         "0",
2386         "Record MDF Command Buffer Dump counter for multiple device create/destroy"),
2387     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_COUNTER_ID,
2388         __MEDIA_USER_FEATURE_VALUE_MDF_SURFACE_STATE_DUMP_COUNTER,
2389         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2390         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2391         "MDF",
2392         MOS_USER_FEATURE_TYPE_USER,
2393         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2394         "0",
2395         "Record MDF Surface state Dump counter for multiple device create/destroy"),
2396     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_DUMP_ID,
2397         __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_DUMP,
2398         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2399         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2400         "MDF",
2401         MOS_USER_FEATURE_TYPE_USER,
2402         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2403         "0",
2404         "Enable MDF interface descriptor data dump"),
2405     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_COUNTER_ID,
2406         __MEDIA_USER_FEATURE_VALUE_MDF_INTERFACE_DESCRIPTOR_DATA_COUNTER,
2407         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2408         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2409         "MDF",
2410         MOS_USER_FEATURE_TYPE_USER,
2411         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2412         "0",
2413         "Record MDF Interface descriptor data Dump counter for multiple device create/destroy"),
2414     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_DUMPPATH_USER_ID,
2415         __MEDIA_USER_FEATURE_VALUE_MDF_DUMPPATH_USER,
2416         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2417         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2418         "MDF",
2419         MOS_USER_FEATURE_TYPE_USER,
2420         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2421         "",
2422         "MDF dump path specified by user"),
2423     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_FORCE_EXECUTION_PATH_ID,
2424         __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_EXECUTION_PATH,
2425         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2426         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2427         "MDF",
2428         MOS_USER_FEATURE_TYPE_USER,
2429         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2430         "0",
2431         "MDF execution path specified by user"),
2432     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_MAX_THREAD_NUM_ID,
2433         __MEDIA_USER_FEATURE_VALUE_MDF_MAX_THREAD_NUM,
2434         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2435         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2436         "MDF",
2437         MOS_USER_FEATURE_TYPE_USER,
2438         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2439         "0",
2440         "MDF maximun thread number specified by user"),
2441     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_FORCE_COHERENT_STATELESSBTI_ID,
2442         __MEDIA_USER_FEATURE_VALUE_MDF_FORCE_COHERENT_STATELESSBTI,
2443         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2444         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2445         "MDF",
2446         MOS_USER_FEATURE_TYPE_USER,
2447         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2448         "0",
2449         "MDF coherent stateless BTI specified by user"),
2450     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_EMU_MODE_ENABLE_ID,
2451         __MEDIA_USER_FEATURE_VALUE_MDF_EMU_MODE_ENABLE,
2452         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2453         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2454         "MDF",
2455         MOS_USER_FEATURE_TYPE_USER,
2456         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2457         "0",
2458         "MDF EMU Enable"),
2459     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_DEFAULT_CM_QUEUE_TYPE_ID,
2460         "MDF Default Queue Type",
2461         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2462         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2463         "MDF",
2464         MOS_USER_FEATURE_TYPE_USER,
2465         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2466         "0",
2467         "Program default CM_QUEUE_TYPE for debug."),
2468     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_CCS_USE_VE_INTERFACE,
2469         "MDF CCS Use VE Interface",
2470         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2471         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2472         "MDF",
2473         MOS_USER_FEATURE_TYPE_USER,
2474         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2475         "0",
2476         "Switch to use mos virtual engine interface for compute CS."),
2477     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MDF_CCS_USE_VE_DEBUG_OVERRIDE,
2478         "MDF CCS Use VE Debug Override",
2479         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2480         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2481         "MDF",
2482         MOS_USER_FEATURE_TYPE_USER,
2483         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2484         "0",
2485         "Set debug override for mos virtual engine interface for compute CS."),
2486     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_MCPY_MODE_ID,
2487             "MediaCopy Mode",
2488             __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2489             __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2490             "MCPY",
2491             MOS_USER_FEATURE_TYPE_USER,
2492             MOS_USER_FEATURE_VALUE_TYPE_STRING,
2493             "",
2494             "For Notify which Media Copy Engine used"),
2495 
2496 #if (_DEBUG || _RELEASE_INTERNAL)
2497     MOS_DECLARE_UF_KEY_DBGONLY(__VPHAL_ENABLE_1K_1DLUT_ID,
2498         __VPHAL_ENABLE_1K_1DLUT,
2499         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2500         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2501         "VP",
2502         MOS_USER_FEATURE_TYPE_USER,
2503         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2504         "0",
2505         "Enable 1K 1DLUT"),
2506     MOS_DECLARE_UF_KEY_DBGONLY(__VPHAL_ENABLE_CPU_GENERATE_3DLUT_ID,
2507         "Enable CPU GEN 3DLUT",
2508         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2509         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2510         "VP",
2511         MOS_USER_FEATURE_TYPE_USER,
2512         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2513         "0",
2514         "Enable CPU GEN 3DLUT"),
2515     MOS_DECLARE_UF_KEY(__VPHAL_DBG_SURF_DUMP_OUTFILE_KEY_NAME_ID,
2516         __VPHAL_DBG_SURF_DUMP_OUTFILE_KEY_NAME,
2517         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2518         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2519         "VP",
2520         MOS_USER_FEATURE_TYPE_USER,
2521         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2522         "",
2523         "Surface Dump Outfile"),
2524 #endif
2525     MOS_DECLARE_UF_KEY(__VPHAL_ENABLE_MMC_ID,
2526         __VPHAL_ENABLE_MMC,
2527         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2528         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2529         "VP",
2530         MOS_USER_FEATURE_TYPE_USER,
2531         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2532         "0",
2533         "Enable memory compression"),
2534     MOS_DECLARE_UF_KEY(__VPHAL_ENABLE_MMC_IN_USE_ID,
2535         "VP MMC In Use",
2536         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2537         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2538         "VP",
2539         MOS_USER_FEATURE_TYPE_USER,
2540         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2541         "0",
2542         "VP use memory compression"),
2543     MOS_DECLARE_UF_KEY(__VPHAL_PRIMARY_SURFACE_COMPRESS_MODE_ID,
2544         "VP Primary Surface Compress Mode",
2545         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2546         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2547         "VP",
2548         MOS_USER_FEATURE_TYPE_USER,
2549         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2550         "0",
2551         "VP primary surface compress mode"),
2552     MOS_DECLARE_UF_KEY(__VPHAL_PRIMARY_SURFACE_COMPRESSIBLE_ID,
2553         "VP Primary Surface Compressible",
2554         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2555         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2556         "VP",
2557         MOS_USER_FEATURE_TYPE_USER,
2558         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2559         "0",
2560         "VP primary surface compressible"),
2561     MOS_DECLARE_UF_KEY(__VPHAL_RT_COMPRESS_MODE_ID,
2562         "VP RT Compress Mode",
2563         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2564         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2565         "VP",
2566         MOS_USER_FEATURE_TYPE_USER,
2567         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2568         "0",
2569         "VP render target compress mode"),
2570     MOS_DECLARE_UF_KEY(__VPHAL_RT_COMPRESSIBLE_ID,
2571         "VP RT Compressible",
2572         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2573         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2574         "VP",
2575         MOS_USER_FEATURE_TYPE_USER,
2576         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2577         "0",
2578         "VP render target compressible"),
2579     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_ENABLE_RENDER_ENGINE_MMC_ID,
2580         "Enable Media RenderEngine MMC",
2581         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2582         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2583         "VP",
2584         MOS_USER_FEATURE_TYPE_USER,
2585         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2586         "0",
2587         "Enable media render engine memory compression in media workload"),
2588     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID,
2589         "Disable MMC",
2590         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2591         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2592         "Media",
2593         MOS_USER_FEATURE_TYPE_USER,
2594         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2595         "0",
2596         "Disable MMC for all components"),
2597     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_FORCE_MMC_ON_ID,
2598         "Force MMC Enable",
2599         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2600         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2601         "Media",
2602         MOS_USER_FEATURE_TYPE_USER,
2603         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2604         "0",
2605         "Force Memory Compression Enable"),
2606 #if (_DEBUG || _RELEASE_INTERNAL)
2607     MOS_DECLARE_UF_KEY(__VPHAL_ENABLE_COMPUTE_CONTEXT_ID,
2608         __VPHAL_ENABLE_COMPUTE_CONTEXT,
2609         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2610         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2611         "VP",
2612         MOS_USER_FEATURE_TYPE_USER,
2613         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2614         "0",
2615         "VP Enable Compute Context"),
2616 #endif
2617     MOS_DECLARE_UF_KEY(__MOS_USER_FEATURE_KEY_XML_AUTOGEN_ID,
2618         __MOS_USER_FEATURE_KEY_XML_AUTOGEN,
2619         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2620         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2621         "MOS",
2622         MOS_USER_FEATURE_TYPE_USER,
2623         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2624         "0",
2625         "Enable"),
2626     MOS_DECLARE_UF_KEY(__MOS_USER_FEATURE_KEY_XML_FILEPATH_ID,
2627         __MOS_USER_FEATURE_KEY_XML_FILEPATH,
2628         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2629         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2630         "MOS",
2631         MOS_USER_FEATURE_TYPE_USER,
2632         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2633         __MOS_USER_FEATURE_KEY_XML_FILEPATH_LOCATION,
2634         "Enable"),
2635     MOS_DECLARE_UF_KEY(__MOS_USER_FEATURE_KEY_XML_DUMP_GROUPS_ID,
2636         __MOS_USER_FEATURE_KEY_XML_DUMP_GROUPS,
2637         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2638         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2639         "MOS",
2640         MOS_USER_FEATURE_TYPE_USER,
2641         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2642         "MOS",
2643         "Enable"),
2644     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_VEBOX_SPLIT_RATIO_ID,
2645         "Vebox Split Ratio",
2646         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2647         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2648         "VP",
2649         MOS_USER_FEATURE_TYPE_USER,
2650         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2651         "50",
2652         "Vebox Scalability Split Ratio. (Default 50: 50 percent"),
2653     /* codec gen11 based */
2654     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HCP_DECODE_MODE_SWITCH_THRESHOLD1_ID,
2655         "HCP Decode Mode Switch TH1",
2656         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2657         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2658         "Decode",
2659         MOS_USER_FEATURE_TYPE_USER,
2660         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2661         "0",
2662         "Hcp Decode mode switch single pipe - 2 pipe"),
2663     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HCP_DECODE_MODE_SWITCH_THRESHOLD2_ID,
2664         "HCP Decode Mode Switch TH2",
2665         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2666         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2667         "Decode",
2668         MOS_USER_FEATURE_TYPE_USER,
2669         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2670         "0",
2671         "Hcp Decode mode switch single pipe - 2/3 pipe"),
2672     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_VE_DEBUG_OVERRIDE,
2673         "Enable VE Debug Override",
2674         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2675         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2676         "Encode",
2677         MOS_USER_FEATURE_TYPE_USER,
2678         MOS_USER_FEATURE_VALUE_TYPE_INT64,
2679         "0",
2680         "Enable VE Debug Override."),
2681     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_HW_SEMAPHORE,
2682         "Enable HW Semaphore",
2683         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2684         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2685         "Encode",
2686         MOS_USER_FEATURE_TYPE_USER,
2687         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2688         "1",
2689         "Enable HW Semaphore."),
2690     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_VDBOX_HW_SEMAPHORE,
2691         "Enable HEVC Per VDBOX HW Semaphore in GEN11",
2692         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2693         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2694         "Encode",
2695         MOS_USER_FEATURE_TYPE_USER,
2696         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2697         "1",
2698         "Enable HEVC Per VDBOX HW Semaphore in GEN11."),
2699     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_ENABLE_HW_STITCH,
2700         "HEVC Encode Enable HW Stitch",
2701         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2702         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2703         "Encode",
2704         MOS_USER_FEATURE_TYPE_USER,
2705         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2706         "1",
2707         "HEVC Encode Enable HW Stitch."),
2708     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_SUBTHREAD_NUM_ID,
2709         "HEVC Encode SubThread Number",
2710         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2711         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2712         "Encode",
2713         MOS_USER_FEATURE_TYPE_USER,
2714         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2715         "2",
2716         "Used to enable HEVC ENCODE SubThread Number in the ENC kernel."),
2717     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_PAK_ONLY_ID,
2718         "HEVC PAK Only Mode",
2719         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2720         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2721         "Encode",
2722         MOS_USER_FEATURE_TYPE_USER,
2723         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2724         "",
2725         "Set the PAK command/CU record folder name for HEVC encoder"),
2726     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_ENCODE_SSE_ENABLE_ID,
2727         "HEVC Encode SSE Enable",
2728         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2729         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2730         "Encode",
2731         MOS_USER_FEATURE_TYPE_USER,
2732         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2733         "0",
2734         "Used to enable HEVC VME ENCODE SSE.(default 0:disabled)"),
2735     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENCODE_DISABLE_SCALABILITY,
2736         "Disable Media Encode Scalability",
2737         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2738         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2739         "Encode",
2740         MOS_USER_FEATURE_TYPE_USER,
2741         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2742         "0",
2743         "Disable Media Encode Scalability."),
2744     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_RDOQ_PERF_DISABLE_ID,
2745         "Disable HEVC RDOQ Perf",
2746         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2747         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2748         "Encode",
2749         MOS_USER_FEATURE_TYPE_USER,
2750         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2751         "1",
2752         "HEVC"),
2753     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_TCBRC_QUALITY_BOOST_ENABLE_ID,
2754         "HEVC TCBRC Quality Boost Enable",
2755         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2756         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2757         "Encode",
2758         MOS_USER_FEATURE_TYPE_USER,
2759         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2760         "0",
2761         "Enable/Disable quality boost for HEVC TCBRC."),
2762     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_WATCHDOG_TIMER_THRESHOLD,
2763         "Watchdog Timer Threshold",
2764         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2765         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2766         "Decode",
2767         MOS_USER_FEATURE_TYPE_USER,
2768         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2769         "120",
2770         "Used to override default watchdog timer threshold"),
2771     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_ENABLE_ENCODE_VE_CTXSCHEDULING_ID,
2772         "Enable Encode VE CtxBasedScheduling",
2773         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2774         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2775         "Codec",
2776         MOS_USER_FEATURE_TYPE_USER,
2777         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2778         "0",
2779         "TRUE for Enabling Encode Virtual Engine context based scheduling. (Default false: disabled"),
2780 
2781 
2782     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HCP_DECODE_ALWAYS_FRAME_SPLIT_ID,
2783         "HCP Decode Always Frame Split",
2784         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2785         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2786         "Codec",
2787         MOS_USER_FEATURE_TYPE_USER,
2788         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2789         "0",
2790         "HCP Decode always does frame split instead of make decision based on LZ table. (Default 0: using LZ table "),
2791     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SCALABILITY_OVERRIDE_SPLIT_WIDTH_IN_MINCB,
2792         "Scalability Split Width In MinCb",
2793         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2794         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2795         "Codec",
2796         MOS_USER_FEATURE_TYPE_USER,
2797         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2798         "0",
2799         "Override virtual tile scalability width. (Default 0: not overroded "),
2800     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_SCALABILITY_FE_SEPARATE_SUBMISSION_IN_USE_ID,
2801         "FE Separate Submission In Use",
2802         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2803         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2804         "Report",
2805         MOS_USER_FEATURE_TYPE_USER,
2806         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2807         "0",
2808         "Report FE separate submission is in use in Scalability decode. (Default 0: Disable FE separate submission "),
2809     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_BRC_LTR_DISABLE_ID,
2810         "HEVC VME BRC LTR Disable",
2811         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2812         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2813         "Codec",
2814         MOS_USER_FEATURE_TYPE_USER,
2815         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2816         "0",
2817         "Disable long term reference in hevc vme brc. (Default 0: LTR Enable"),
2818     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_BRC_LTR_INTERVAL_ID,
2819         "HEVC VME BRC LTR Interval",
2820         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2821         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2822         "Codec",
2823         MOS_USER_FEATURE_TYPE_USER,
2824         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2825         "0",
2826         "HEVC Vme encode BRC Long term reference interval. (Default 0: interval=0"),
2827     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_FORCE_SCALABILITY_ID,
2828         "HEVC VME Force Scalability For Low Size",
2829         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2830         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2831         "Codec",
2832         MOS_USER_FEATURE_TYPE_USER,
2833         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2834         "0",
2835         "HEVC Vme encode force scalability for low (below 4K) resolution. (Default 0"),
2836     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_SEMA_RESET_DELAY_ID,
2837         "HEVC VDEnc Semaphore Reset Delay",
2838         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2839         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2840         "Codec",
2841         MOS_USER_FEATURE_TYPE_USER,
2842         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2843         "15",
2844         "Control the num of placeholder cmds which are used for the delay of VDEnc sync semaphore"),
2845     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SET_CMD_DEFAULT_PARS_FROM_FILES_ID,
2846         "Set CMD Default Parameters From File",
2847         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2848         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2849         "Codec",
2850         MOS_USER_FEATURE_TYPE_USER,
2851         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
2852         "0",
2853         "Enable to set cmd default parameters from file (Default 0)"),
2854     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_CMD_PARS_FILES_DIRECORY_ID,
2855         "CMD Parameters Input File Directory",
2856         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2857         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2858         "Codec",
2859         MOS_USER_FEATURE_TYPE_USER,
2860         MOS_USER_FEATURE_VALUE_TYPE_STRING,
2861         "",
2862         "Set CMD Parameters Input File Directory"),
2863     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_ENABLE_ID,
2864         "ApogeiosEnable",
2865         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2866         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2867         "VP",
2868         MOS_USER_FEATURE_TYPE_USER,
2869         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2870         "0",
2871         "Eanble Apogeios path. 1: enable, 0: disable."),
2872     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VPP_APOGEIOS_ENABLE_ID,
2873         "VP Apogeios Enabled",
2874         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2875         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2876         "VP",
2877         MOS_USER_FEATURE_TYPE_USER,
2878         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2879         "0",
2880         "Eanble Apogeios path in VP PipeLine. 1: enabled, 0: disabled."),
2881     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_HEVCD_ENABLE_ID,
2882         "ApogeiosHevcdEnable",
2883         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2884         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2885         "Codec",
2886         MOS_USER_FEATURE_TYPE_USER,
2887         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2888         "0",
2889         "Eanble Apogeios hevc decode path. 1: enable, 0: disable."),
2890     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_AVCD_ENABLE_ID,
2891         "ApogeiosAvcdEnable",
2892         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2893         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2894         "Codec",
2895         MOS_USER_FEATURE_TYPE_USER,
2896         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2897         "0",
2898         "Eanble Apogeios avc decode path. 1: enable, 0: disable."),
2899     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_VP9D_ENABLE_ID,
2900         "ApogeiosVp9dEnable",
2901         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2902         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2903         "Codec",
2904         MOS_USER_FEATURE_TYPE_USER,
2905         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2906         "0",
2907         "Eanble Apogeios VP9 decode path. 1: enable, 0: disable."),
2908     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_MPEG2D_ENABLE_ID,
2909         "ApogeiosMpeg2dEnable",
2910         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2911         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2912         "Codec",
2913         MOS_USER_FEATURE_TYPE_USER,
2914         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2915         "0",
2916         "Enable Apogeios mpeg2 decode path. 1: enable, 0: disable."),
2917     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_JPEGD_ENABLE_ID,
2918         "ApogeiosJpegdEnable",
2919         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2920         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2921         "Codec",
2922         MOS_USER_FEATURE_TYPE_USER,
2923         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2924         "0",
2925         "Enable Apogeios jpeg decode path. 1: enable, 0: disable."),
2926     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_APOGEIOS_VP8D_ENABLE_ID,
2927         "ApogeiosVp8dEnable",
2928         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2929         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2930         "Codec",
2931         MOS_USER_FEATURE_TYPE_USER,
2932         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2933         "0",
2934         "Enable Apogeios vp8 decode path. 1: enable, 0: disable."),
2935     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_RA_MODE_ENABLE_ID,
2936         "RA Mode Enable",
2937         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2938         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2939         "MOS",
2940         MOS_USER_FEATURE_TYPE_USER,
2941         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2942         "0",
2943         "Eanble RA Mode. 1: enable, 0: disable."),
2944     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_INTER_FRAME_MEMORY_NINJA_START_COUNTER_ID,
2945         "InterFrameNinjaStartCounter",
2946         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2947         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2948         "MOS",
2949         MOS_USER_FEATURE_TYPE_USER,
2950         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2951         "0",
2952         "Inter frame ninja start counter"),
2953     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_INTER_FRAME_MEMORY_NINJA_END_COUNTER_ID,
2954         "InterFrameNinjaEndCounter",
2955         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2956         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2957         "MOS",
2958         MOS_USER_FEATURE_TYPE_USER,
2959         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2960         "0",
2961         "Inter frame ninja counter"),
2962     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_LOCAL_MEMORY_LEVEL_SWITCH_ID,
2963         "EnableLocalMemoryLevelSwitch",
2964         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2965         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2966         "MOS",
2967         MOS_USER_FEATURE_TYPE_USER,
2968         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2969         "0",
2970         "Enable local memory level switch."),
2971      MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_DISABLE_TLB_PREFETCH_ID,
2972         "DisableTlbPrefetch",
2973         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2974         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2975         "Codec",
2976         MOS_USER_FEATURE_TYPE_USER,
2977         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
2978         "1",
2979         "Disable TLB pre-fetch. 1: disable; 0: enabled. "),
2980 #if (_DEBUG || _RELEASE_INTERNAL)
2981     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_FORCE_DECODE_RESOURCE_LOCKABLE_ID,
2982          "ForceDecodeResourceLockable",
2983          __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2984          __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2985          "Codec",
2986          MOS_USER_FEATURE_TYPE_USER,
2987          MOS_USER_FEATURE_VALUE_TYPE_INT32,
2988          "0",
2989          "Force decode resource lockable. 1: Force lockable, 0: default."),
2990 
2991     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_SFC_LINEAR_OUTPUT_USED_ID,
2992         "Sfc Linear Output Surface In Use",
2993         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
2994         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
2995         "Codec",
2996         MOS_USER_FEATURE_TYPE_USER,
2997         MOS_USER_FEATURE_VALUE_TYPE_INT32,
2998         "0",
2999         "Sfc Linear Output Surface In Use. 1: used, 0: not used."),
3000 #endif
3001     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_PROTECT_MODE_ENABLE_ID,
3002         "Protect Mode Enable",
3003         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3004         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3005         "MOS",
3006         MOS_USER_FEATURE_TYPE_USER,
3007         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3008         "0",
3009         "Enable protect Mode. 1: enable, 0: disable."),
3010     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_OLP_IN_USE_ID,
3011         "OLP IN USE",
3012         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3013         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3014         "Report",
3015         MOS_USER_FEATURE_TYPE_USER,
3016         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3017         "0",
3018         "Report out whether OLP is in use."),
3019     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_SKIP_FRAME_IN_USE_ID,
3020         "Skip Frame IN USE",
3021         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3022         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3023         "Report",
3024         MOS_USER_FEATURE_TYPE_USER,
3025         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3026         "0",
3027         "Report out whether skip frame is in use."),
3028     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HUC_LOAD_STATUS_ID,
3029         "Huc Load Fail",
3030         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3031         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3032         "Report",
3033         MOS_USER_FEATURE_TYPE_USER,
3034         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3035         "0",
3036         "Report out Huc loaded fails."),
3037     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_HUC_REPORT_CRITICAL_ERROR_ID,
3038         "HuC Report Critical Error",
3039         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3040         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3041         "Report",
3042         MOS_USER_FEATURE_TYPE_USER,
3043         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3044         "0",
3045         "Report out HuC report critical error."),
3046     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_AV1_DECODE_DRIVER_S2L_ENABLE_ID,
3047         "AV1 Decode Driver S2L Enable Flag",
3048         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3049         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3050         "Decode",
3051         MOS_USER_FEATURE_TYPE_USER,
3052         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3053         "1",
3054         "AV1 Decode driver S2L enable flag. 0: HUC FW S2L, 1: Driver S2L."),
3055     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_TILEREPLAY_ENABLE_ID,
3056         "HEVC VDEnc TileReplay Enable",
3057         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3058         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3059         "Encode",
3060         MOS_USER_FEATURE_TYPE_USER,
3061         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3062         "0",
3063         "Enable TileReplay for HEVC VDEnc"),
3064     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_RGB_ENCODING_ENABLE_ID,
3065         "HEVC VDEnc RGB Encoding Enable",
3066         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3067         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3068         "Encode",
3069         MOS_USER_FEATURE_TYPE_USER,
3070         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3071         "0",
3072         "Enable RGB Encoding for HEVC VDEnc"),
3073     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_CAPTURE_MODE_ENABLE_ID,
3074         "HEVC VDEnc Capture Mode Enable",
3075         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3076         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3077         "Encode",
3078         MOS_USER_FEATURE_TYPE_USER,
3079         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3080         "0",
3081         "Enable Capture Mode for HEVC VDEnc"),
3082     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_ENCODE_LOAD_KERNEL_INPUT_ID,
3083         "Load HEVC Kernel Input",
3084         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3085         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3086         "Encode",
3087         MOS_USER_FEATURE_TYPE_USER,
3088         MOS_USER_FEATURE_VALUE_TYPE_STRING,
3089         "",
3090         "Set fodler name for HEVC encoder kernel input loading"),
3091     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_VDENC_ULTRA_MODE_ENABLE_ID,
3092         "VDEnc Ultra Mode Enable",
3093         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3094         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3095         "Encode",
3096         MOS_USER_FEATURE_TYPE_USER,
3097         MOS_USER_FEATURE_VALUE_TYPE_UINT32,
3098         "0",
3099         "Enables/Disables VDEnc Ultra Mode feature. Starting from TGL for AVC VDEnc."),
3100     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_BREAK12_ID,
3101         "HEVC VME Break12",
3102         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3103         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3104         "Encode",
3105         MOS_USER_FEATURE_TYPE_USER,
3106         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3107         "1",
3108         "HEVC Vme encode break12 setting:[0, 3]. (Default 1"),
3109     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_FORCE_DELTA_QP_ENABLE_ID,
3110         "HEVC VDEnc Force Delta QP Enable",
3111         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3112         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3113         "Encode",
3114         MOS_USER_FEATURE_TYPE_USER,
3115         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3116         "1",
3117         "Enable Force Delta QP for HEVC VDEnc"),
3118     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_BRC_LTR_ENABLE_ID,
3119         "HEVC VME BRC LTR Enable",
3120         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3121         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3122         "Codec",
3123         MOS_USER_FEATURE_TYPE_USER,
3124         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3125         "0",
3126         "Enable long term reference in hevc vme brc. (Default 0: Disable)"),
3127     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VDENC_FORCE_SCALABILITY_ID,
3128         "HEVC VDEnc Force Scalability For Low Size",
3129         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3130         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3131         "Codec",
3132         MOS_USER_FEATURE_TYPE_USER,
3133         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3134         "0",
3135         "HEVC VDEnc encode force scalability for low (less than 4K) resolution. (Default 0)"),
3136     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_DISABLE_PANIC_MODE_ID,
3137         "HEVC VME Disable Panic Mode",
3138         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3139         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3140         "Codec",
3141         MOS_USER_FEATURE_TYPE_USER,
3142         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3143         "0",
3144         "HEVC Vme encode disable panic mode. (Default 0)"),
3145     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_NUM_MEDIA_HWWALKER_INUSE_ID,
3146         "HEVC VME Media HW Walker Number In Use",
3147         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3148         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3149         "Codec",
3150         MOS_USER_FEATURE_TYPE_USER,
3151         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3152         "1",
3153         "HEVC Vme encode media hw walker number in use. (Default 1)"),
3154     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_HEVC_VME_ENABLE_RENDER_CONTEXT_ID,
3155         "HEVC VME HP Render Context Enable",
3156         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3157         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3158         "Codec",
3159         MOS_USER_FEATURE_TYPE_USER,
3160         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3161         "0",
3162         "HEVC Vme encode G12HP enable render context. (Default 0)"),
3163     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MFE_FAST_SUBMIT_ID,
3164         "Enable MFE Fast Submit",
3165         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3166         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3167         "Codec",
3168         MOS_USER_FEATURE_TYPE_USER,
3169         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3170         "0",
3171         "Enable MFE fast submission. Default 0: disabled"),
3172     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_MFE_MULTISTREAM_SCHEDULER_ID,
3173         "Enable MFE MultiStream Scheduler",
3174         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3175         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3176         "Codec",
3177         MOS_USER_FEATURE_TYPE_USER,
3178         MOS_USER_FEATURE_VALUE_TYPE_BOOL,
3179         "0",
3180         "Enable MFE multistream scheduler. Default 0: disabled"),
3181     MOS_DECLARE_UF_KEY_DBGONLY(__MEDIA_USER_FEATURE_VALUE_LOCKABLE_RESOURCE_ID,
3182         "Lockable Resource",
3183         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3184         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3185         "Codec",
3186         MOS_USER_FEATURE_TYPE_USER,
3187         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3188         "0",
3189         "Enables/Disables lockable resource."),
3190     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_ENC_POST_CDEF_RECON_COMPRESSIBLE_ID,
3191         "Encode Post CDEF Recon Compressible",
3192         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3193         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3194         "Report",
3195         MOS_USER_FEATURE_TYPE_USER,
3196         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3197         "0",
3198         "Report Key to indicate if the surface is MMCD capable (0: no; 1: yes)."),
3199     MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_MMC_ENC_POST_CDEF_RECON_COMPRESSMODE_ID,
3200         "Encode Post CDEF Recon Compress Mode",
3201         __MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
3202         __MEDIA_USER_FEATURE_SUBKEY_REPORT,
3203         "Report",
3204         MOS_USER_FEATURE_TYPE_USER,
3205         MOS_USER_FEATURE_VALUE_TYPE_INT32,
3206         "0",
3207         "Report Key to indicate the MMCD compression mode of a surface "),
3208 };
3209