xref: /aosp_15_r20/external/intel-media-driver/media_softlet/agnostic/common/os/mos_user_setting.cpp (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
1 /*
2 * Copyright (c) 2022-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_user_setting.cpp
24 //! \brief       This file defines the user settings of mos
25 //! \details  Common OS debug across different platform
26 //!
27 
28 #include "mos_user_setting.h"
29 
InitMosUserSetting(MediaUserSettingSharedPtr userSettingPtr)30 MOS_STATUS MosUserSetting::InitMosUserSetting(MediaUserSettingSharedPtr userSettingPtr)
31 {
32     InitMosCommonUserSetting(userSettingPtr);
33 
34     InitMosUserSettingSpecific(userSettingPtr);
35 
36 #if MOS_MESSAGES_ENABLED
37     InitMosMessageUserSetting(userSettingPtr);
38 #endif
39 
40 #if (_DEBUG || _RELEASE_INTERNAL)
41     InitUserSettingForDebug(userSettingPtr);
42 #endif
43     return MOS_STATUS_SUCCESS;
44 }
45 
InitMosCommonUserSetting(MediaUserSettingSharedPtr userSettingPtr)46 MOS_STATUS MosUserSetting::InitMosCommonUserSetting(MediaUserSettingSharedPtr userSettingPtr)
47 {
48     DeclareUserSettingKey(
49         userSettingPtr,
50         "ApoMosEnable",
51         MediaUserSetting::Group::Device,
52         0,
53         true);
54 
55     DeclareUserSettingKey(
56         userSettingPtr,
57         "ApoDdiEnable",
58         MediaUserSetting::Group::Device,
59         1,
60         true);
61 
62     DeclareUserSettingKey(
63         userSettingPtr,
64         __MEDIA_USER_FEATURE_VALUE_APOGEIOS_ENABLE,
65         MediaUserSetting::Group::Device,
66         uint32_t(0),
67         true);
68 
69     DeclareUserSettingKey(
70         userSettingPtr,
71         __MEDIA_USER_FEATURE_VALUE_RA_MODE_ENABLE,
72         MediaUserSetting::Group::Device,
73         uint32_t(0),
74         true);
75 
76     DeclareUserSettingKey(
77         userSettingPtr,
78         __MEDIA_USER_FEATURE_VALUE_PROTECT_MODE_ENABLE,
79         MediaUserSetting::Group::Device,
80         uint32_t(0),
81         true);
82 
83     DeclareUserSettingKey(
84         userSettingPtr,
85         "Enable Compressible Surface Creation",
86         MediaUserSetting::Group::Device,
87         0,
88         true);
89 
90     DeclareUserSettingKey(
91         userSettingPtr,
92         __MEDIA_USER_FEATURE_VALUE_MEMNINJA_COUNTER,
93         MediaUserSetting::Group::Device,
94         0,
95         true);
96 
97     DeclareUserSettingKey(  //For debugging purpose. Enable Vebox In-Place decompression
98         userSettingPtr,
99         __VPHAL_ENABLE_VEBOX_MMC_DECOMPRESS,
100         MediaUserSetting::Group::Device,
101         0,
102         true);
103 
104     DeclareUserSettingKey(  //Enable memory compression
105         userSettingPtr,
106         __VPHAL_ENABLE_MMC,
107         MediaUserSetting::Group::Device,
108         false,
109         true);
110 
111     DeclareUserSettingKey(  // VP Compression Enable
112         userSettingPtr,
113         __MEDIA_USER_FEATURE_VALUE_VP_MMC_IN_USE,
114         MediaUserSetting::Group::Device,
115         false,
116         true);
117 
118     DeclareUserSettingKey(
119         userSettingPtr,
120         "Enable Codec MMC",
121         MediaUserSetting::Group::Device,
122         false,
123         false);
124 
125     DeclareUserSettingKey(
126         userSettingPtr,
127         "Codec MMC In Use",
128         MediaUserSetting::Group::Device,
129         false,
130         true);
131 
132     DeclareUserSettingKey(
133         userSettingPtr,
134         "HEVC Encode",
135         MediaUserSetting::Group::Device,
136         int32_t(1),
137         false);
138 
139     DeclareUserSettingKey(
140         userSettingPtr,
141         "JPEG Encode",
142         MediaUserSetting::Group::Device,
143         int32_t(1),
144         false);
145 
146     DeclareUserSettingKey(
147         userSettingPtr,
148         "Encode MMC In Use",
149         MediaUserSetting::Group::Sequence,
150         int32_t(0),
151         true);
152 
153     DeclareUserSettingKey(
154         userSettingPtr,
155         "Enable Encode MMC",
156         MediaUserSetting::Group::Sequence,
157         int32_t(0),
158         false);
159 
160     DeclareUserSettingKey(
161         userSettingPtr,
162         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_DECODE_ENABLE,
163         MediaUserSetting::Group::Device,
164         2,
165         false);
166 
167     DeclareUserSettingKey(
168         userSettingPtr,
169         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_ENCODE_ENABLE,
170         MediaUserSetting::Group::Device,
171         2,
172         false);
173 
174     DeclareUserSettingKey(
175         userSettingPtr,
176         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_VPP_ENABLE,
177         MediaUserSetting::Group::Device,
178         2,
179         false);
180 
181     DeclareUserSettingKey(
182         userSettingPtr,
183         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_DECODE_TIMEOUT,
184         MediaUserSetting::Group::Device,
185         12,
186         false);
187 
188     DeclareUserSettingKey(
189         userSettingPtr,
190         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_ENCODE_TIMEOUT,
191         MediaUserSetting::Group::Device,
192         12,
193         false);
194 
195     DeclareUserSettingKey(
196         userSettingPtr,
197         __MEDIA_USER_FEATURE_VALUE_IP_ALIGNMENT_VPP_TIMEOUT,
198         MediaUserSetting::Group::Device,
199         12,
200         false);
201 
202     DeclareUserSettingKey(  //TRUE for Enabling Vebox Scalability. (Default FALSE: disabled")
203         userSettingPtr,
204         __MEDIA_USER_FEATURE_VALUE_ENABLE_VEBOX_SCALABILITY_MODE,
205         MediaUserSetting::Group::Device,
206         0,
207         true); //"TRUE for Enabling Vebox Scalability. (Default FALSE: disabled)"
208 
209     DeclareUserSettingKey(
210         userSettingPtr,
211         __MEDIA_USER_FEATURE_VALUE_ENABLE_HCP_SCALABILITY_DECODE,
212         MediaUserSetting::Group::Device,
213         1,
214         true); //"Enable HCP Scalability decode mode. (Default 1: Scalable Decode Mode "
215 
216     DeclareUserSettingKey(
217         userSettingPtr,
218         __MEDIA_USER_FEATURE_VALUE_PERF_UTILITY_TOOL_ENABLE,
219         MediaUserSetting::Group::Device,
220         0,
221         true); //"Enable Perf Utility Tool. "
222 
223     DeclareUserSettingKey(
224         userSettingPtr,
225         __MEDIA_USER_FEATURE_VALUE_PERF_OUTPUT_DIRECTORY,
226         MediaUserSetting::Group::Device,
227         "",
228         true); //" Perf Utility Tool Customize Output Directory. "
229 
230     DeclareUserSettingKey(
231         userSettingPtr,
232         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE,
233         MediaUserSetting::Group::Device,
234         int32_t(0),
235         true,
236         true,
237         USER_SETTING_CONFIG_PERF_PATH); //"Perf Profiler Enable Control Flag."
238 
239     DeclareUserSettingKey(
240         userSettingPtr,
241         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MUL_PROC,
242         MediaUserSetting::Group::Device,
243         int32_t(0),
244         true,
245         true,
246         USER_SETTING_CONFIG_PERF_PATH); //"Perf Profiler Multi Process Support."
247 
248     DeclareUserSettingKey(
249         userSettingPtr,
250         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_ENABLE_MER_HEADER,
251         MediaUserSetting::Group::Device,
252         int32_t(0),
253         true,
254         true,
255         USER_SETTING_CONFIG_PERF_PATH);  //"Perf Profiler Merge by Header Support."
256 
257     DeclareUserSettingKey(
258         userSettingPtr,
259         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_OUTPUT_FILE_NAME,
260         MediaUserSetting::Group::Device,
261         "Perf_DATA_00_00.bin",
262         true,
263         true,
264         USER_SETTING_CONFIG_PERF_PATH); //"Perf Profiler Output File Name."
265 
266     DeclareUserSettingKey(
267         userSettingPtr,
268         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_MUL_PROC_SINGLE_BIN,
269         MediaUserSetting::Group::Device,
270         int32_t(0),
271         true,
272         true,
273         USER_SETTING_CONFIG_PERF_PATH); //"Perf Profiler Multi Process Single Binary Flag."
274 
275     DeclareUserSettingKey(
276         userSettingPtr,
277         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_BUFFER_SIZE_KEY,
278         MediaUserSetting::Group::Device,
279         uint32_t(10000000),
280         true,
281         true,
282         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
283 
284     DeclareUserSettingKey(
285         userSettingPtr,
286         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_1,
287         MediaUserSetting::Group::Device,
288         uint32_t(0),
289         true,
290         true,
291         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
292 
293     DeclareUserSettingKey(
294         userSettingPtr,
295         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_2,
296         MediaUserSetting::Group::Device,
297         uint32_t(0),
298         true,
299         true,
300         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
301 
302     DeclareUserSettingKey(
303         userSettingPtr,
304         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_3,
305         MediaUserSetting::Group::Device,
306         uint32_t(0),
307         true,
308         true,
309         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
310 
311     DeclareUserSettingKey(
312         userSettingPtr,
313         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_4,
314         MediaUserSetting::Group::Device,
315         uint32_t(0),
316         true,
317         true,
318         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
319 
320     DeclareUserSettingKey(
321         userSettingPtr,
322         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_5,
323         MediaUserSetting::Group::Device,
324         uint32_t(0),
325         true,
326         true,
327         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
328 
329     DeclareUserSettingKey(
330         userSettingPtr,
331         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_6,
332         MediaUserSetting::Group::Device,
333         uint32_t(0),
334         true,
335         true,
336         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
337 
338     DeclareUserSettingKey(
339         userSettingPtr,
340         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_7,
341         MediaUserSetting::Group::Device,
342         uint32_t(0),
343         true,
344         true,
345         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
346 
347     DeclareUserSettingKey(
348         userSettingPtr,
349         __MEDIA_USER_FEATURE_VALUE_PERF_PROFILER_REGISTER_KEY_8,
350         MediaUserSetting::Group::Device,
351         uint32_t(0),
352         true,
353         true,
354         USER_SETTING_CONFIG_PERF_PATH); //"Performance Profiler Memory Information Register."
355 
356 #if MOS_COMMAND_BUFFER_DUMP_SUPPORTED
357     DeclareUserSettingKey(
358         userSettingPtr,
359         __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_BUFFER_ENABLE,
360         MediaUserSetting::Group::Device,
361         0,
362         true); // "If enabled, all of the command buffers submitted through MOS will be dumped (0: disabled, 1: to a file, 2: as a normal message)."
363 #endif
364 
365 #if MOS_COMMAND_RESINFO_DUMP_SUPPORTED
366     DeclareUserSettingKey(
367         userSettingPtr,
368         __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_ENABLE,
369         MediaUserSetting::Group::Device,
370         0,
371         true); //"If enabled, gpu command info will be dumped (0: disabled, 1: to a file)."
372 
373     DeclareUserSettingKey(
374         userSettingPtr,
375         __MEDIA_USER_FEATURE_VALUE_DUMP_COMMAND_INFO_PATH,
376         MediaUserSetting::Group::Device,
377         "",
378         true); //"Path where command info will be dumped, for example: ./"
379 #endif // MOS_COMMAND_RESINFO_DUMP_SUPPORTED
380 
381     DeclareUserSettingKey(
382         userSettingPtr,
383         __MEDIA_USER_FEATURE_VALUE_ENABLE_UMD_OCA,
384         MediaUserSetting::Group::Device,
385         1,
386         true); //"Enable UMD_OCA in media driver."
387 
388     DeclareUserSettingKey(
389         userSettingPtr,
390         __MEDIA_USER_FEATURE_VALUE_OCA_STATUS,
391         MediaUserSetting::Group::Device,
392         0,
393         true); //Reports out the first OCA error.
394 
395     DeclareUserSettingKey(
396         userSettingPtr,
397         __MEDIA_USER_FEATURE_VALUE_OCA_ERROR_HINT,
398         MediaUserSetting::Group::Device,
399         0,
400         true); //Reports out the line number of first OCA error.
401 
402     DeclareUserSettingKey(
403         userSettingPtr,
404         __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_BUFFER_LEAKED,
405         MediaUserSetting::Group::Device,
406         0,
407         true); //Reports out the line number of first OCA error.
408 
409     DeclareUserSettingKey(
410         userSettingPtr,
411         __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_OCA_1ST_LEVEL_BB_END_MISSED,
412         MediaUserSetting::Group::Device,
413         0,
414         true); //Reports out the count for OCA buffer which missed to call On1stLevelBBEnd.
415 
416     DeclareUserSettingKey(
417         userSettingPtr,
418         __MEDIA_USER_FEATURE_VALUE_COUNT_FOR_ADDITIONAL_OCA_BUFFER_ALLOCATED,
419         MediaUserSetting::Group::Device,
420         0,
421         true); //Reports out the count for additional OCA buffer allocated.
422 
423     DeclareUserSettingKey(
424         userSettingPtr,
425         __MEDIA_USER_FEATURE_VALUE_IS_INDIRECT_STATE_HEAP_INVALID,
426         MediaUserSetting::Group::Device,
427         0,
428         true); //Reports out whether indirect state heap invalid
429 
430     DeclareUserSettingKey(
431         userSettingPtr,
432         __MEDIA_USER_FEATURE_VALUE_MEDIA_TEXTURE_POOLING_ENABLE,
433         MediaUserSetting::Group::Device,
434         1,
435         true); //"Enable texture pooling in media driver."
436 
437     DeclareUserSettingKey(
438         userSettingPtr,
439         __MEDIA_USER_FEATURE_VALUE_MEDIA_NATIVE_FENCE_MODE,
440         MediaUserSetting::Group::Device,
441         0,
442         true);
443 
444     return MOS_STATUS_SUCCESS;
445 }
446 
447 #if MOS_MESSAGES_ENABLED
InitMosMessageUserSetting(MediaUserSettingSharedPtr userSettingPtr)448 MOS_STATUS MosUserSetting::InitMosMessageUserSetting(MediaUserSettingSharedPtr userSettingPtr)
449 {
450     DeclareUserSettingKey(
451         userSettingPtr,
452         __MOS_USER_FEATURE_KEY_DISABLE_ASSERT,
453         MediaUserSetting::Group::Device,
454         0,
455         true);
456 
457     DeclareUserSettingKey(
458         userSettingPtr,
459         __MOS_USER_FEATURE_KEY_MESSAGE_HLT_ENABLED,
460         MediaUserSetting::Group::Device,
461         0,
462         true);
463 
464     DeclareUserSettingKey(
465         userSettingPtr,
466         __MOS_USER_FEATURE_KEY_FLUSH_LOG_FILE_BEFORE_SUBMISSION,
467         MediaUserSetting::Group::Device,
468         0,
469         true);
470 
471     DeclareUserSettingKey(
472         userSettingPtr,
473         __MOS_USER_FEATURE_KEY_ENABLE_MEMORY_FOOT_PRINT,
474         MediaUserSetting::Group::Device,
475         0,
476         true);
477 
478     DeclareUserSettingKey(
479         userSettingPtr,
480         __MOS_USER_FEATURE_KEY_MESSAGE_HLT_OUTPUT_DIRECTORY,
481         MediaUserSetting::Group::Device,
482         "",
483         true);
484 
485     DeclareUserSettingKey(
486         userSettingPtr,
487         __MOS_USER_FEATURE_KEY_MESSAGE_PRINT_ENABLED,
488         MediaUserSetting::Group::Device,
489         1,
490         true);
491 
492     DeclareUserSettingKey(
493         userSettingPtr,
494         __MOS_USER_FEATURE_KEY_MESSAGE_OS_TAG,
495         MediaUserSetting::Group::Device,
496         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
497         true);
498 
499     DeclareUserSettingKey(
500         userSettingPtr,
501         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_OS,
502         MediaUserSetting::Group::Device,
503         0,
504         true);
505 
506     DeclareUserSettingKey(
507         userSettingPtr,
508         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_OS_TAG,
509         MediaUserSetting::Group::Device,
510         0,
511         true);
512 
513     DeclareUserSettingKey(
514         userSettingPtr,
515         __MOS_USER_FEATURE_KEY_MESSAGE_MHW_TAG,
516         MediaUserSetting::Group::Device,
517         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
518         true);
519 
520     DeclareUserSettingKey(
521         userSettingPtr,
522         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MHW,
523         MediaUserSetting::Group::Device,
524         0,
525         true);
526 
527     DeclareUserSettingKey(
528         userSettingPtr,
529         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MHW_TAG,
530         MediaUserSetting::Group::Device,
531         0,
532         true);
533 
534     DeclareUserSettingKey(
535         userSettingPtr,
536         __MOS_USER_FEATURE_KEY_MESSAGE_CODEC_TAG,
537         MediaUserSetting::Group::Device,
538         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
539         true);
540 
541     DeclareUserSettingKey(
542         userSettingPtr,
543         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CODEC,
544         MediaUserSetting::Group::Device,
545         0,
546         true);
547 
548     DeclareUserSettingKey(
549         userSettingPtr,
550         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CODEC_TAG,
551         MediaUserSetting::Group::Device,
552         0,
553         true);
554 
555     DeclareUserSettingKey(
556         userSettingPtr,
557         __MOS_USER_FEATURE_KEY_MESSAGE_VP_TAG,
558         MediaUserSetting::Group::Device,
559         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
560         true);
561 
562     DeclareUserSettingKey(
563         userSettingPtr,
564         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_VP,
565         MediaUserSetting::Group::Device,
566         0,
567         true);
568 
569     DeclareUserSettingKey(
570         userSettingPtr,
571         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_VP_TAG,
572         MediaUserSetting::Group::Device,
573         0,
574         true);
575 
576     DeclareUserSettingKey(
577         userSettingPtr,
578         __MOS_USER_FEATURE_KEY_MESSAGE_CP_TAG,
579         MediaUserSetting::Group::Device,
580         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
581         true);
582 
583     DeclareUserSettingKey(
584         userSettingPtr,
585         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CP,
586         MediaUserSetting::Group::Device,
587         0,
588         true);
589 
590     DeclareUserSettingKey(
591         userSettingPtr,
592         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CP_TAG,
593         MediaUserSetting::Group::Device,
594         0,
595         true);
596 
597     DeclareUserSettingKey(
598         userSettingPtr,
599         __MOS_USER_FEATURE_KEY_MESSAGE_DDI_TAG,
600         MediaUserSetting::Group::Device,
601         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
602         true);
603 
604     DeclareUserSettingKey(
605         userSettingPtr,
606         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_DDI,
607         MediaUserSetting::Group::Device,
608         0,
609         true);
610 
611     DeclareUserSettingKey(
612         userSettingPtr,
613         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_DDI_TAG,
614         MediaUserSetting::Group::Device,
615         0,
616         true);
617 
618     DeclareUserSettingKey(
619         userSettingPtr,
620         __MOS_USER_FEATURE_KEY_MESSAGE_CM_TAG,
621         MediaUserSetting::Group::Device,
622         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
623         true);
624 
625     DeclareUserSettingKey(
626         userSettingPtr,
627         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_CM,
628         MediaUserSetting::Group::Device,
629         0,
630         true);
631 
632     DeclareUserSettingKey(
633         userSettingPtr,
634         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_CM_TAG,
635         MediaUserSetting::Group::Device,
636         0,
637         true);
638 
639     DeclareUserSettingKey(
640         userSettingPtr,
641         __MOS_USER_FEATURE_KEY_MESSAGE_SCALABILITY_TAG,
642         MediaUserSetting::Group::Device,
643         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
644         true);
645 
646     DeclareUserSettingKey(
647         userSettingPtr,
648         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_SCALABILITY,
649         MediaUserSetting::Group::Device,
650         0,
651         true);
652 
653     DeclareUserSettingKey(
654         userSettingPtr,
655         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_SCALABILITY_TAG,
656         MediaUserSetting::Group::Device,
657         0,
658         true);
659 
660     DeclareUserSettingKey(
661         userSettingPtr,
662         __MOS_USER_FEATURE_KEY_MESSAGE_MMC_TAG,
663         MediaUserSetting::Group::Device,
664         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
665         true);
666 
667     DeclareUserSettingKey(
668         userSettingPtr,
669         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MMC,
670         MediaUserSetting::Group::Device,
671         0,
672         true);
673 
674     DeclareUserSettingKey(
675         userSettingPtr,
676         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MMC_TAG,
677         MediaUserSetting::Group::Device,
678         0,
679         true);
680 
681     DeclareUserSettingKey(
682         userSettingPtr,
683         __MOS_USER_FEATURE_KEY_MESSAGE_MCPY_TAG,
684         MediaUserSetting::Group::Device,
685         __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE,
686         true);
687 
688     DeclareUserSettingKey(
689         userSettingPtr,
690         __MOS_USER_FEATURE_KEY_BY_SUB_COMPONENT_MCPY,
691         MediaUserSetting::Group::Device,
692         0,
693         true);
694 
695     DeclareUserSettingKey(
696         userSettingPtr,
697         __MOS_USER_FEATURE_KEY_SUB_COMPONENT_MCPY_TAG,
698         MediaUserSetting::Group::Device,
699         0,
700         true);
701 
702     return MOS_STATUS_SUCCESS;
703 }
704 #endif
705 
706 #if (_DEBUG || _RELEASE_INTERNAL)
InitUserSettingForDebug(MediaUserSettingSharedPtr userSettingPtr)707 MOS_STATUS MosUserSetting::InitUserSettingForDebug(MediaUserSettingSharedPtr userSettingPtr)
708 {
709     DeclareUserSettingKeyForDebug(
710         userSettingPtr,
711         "Disable RowStore Cache",
712         MediaUserSetting::Group::Device,
713         0,
714         true);
715     DeclareUserSettingKeyForDebug(
716         userSettingPtr,
717         __MEDIA_USER_FEATURE_VALUE_IS_CODEC_ROW_STORE_CACHE_ENABLED,
718         MediaUserSetting::Group::Device,
719         0,
720         true);
721     DeclareUserSettingKeyForDebug(
722         userSettingPtr,
723         "DisableVp9DfRowStoreCache",
724         MediaUserSetting::Group::Device,
725         0,
726         true);
727     DeclareUserSettingKeyForDebug(
728         userSettingPtr,
729         "DisableAv1DfluRowstoreCache",
730         MediaUserSetting::Group::Device,
731         0,
732         true);
733     DeclareUserSettingKeyForDebug(
734         userSettingPtr,
735         "DisableAv1DflvRowstoreCache",
736         MediaUserSetting::Group::Device,
737         0,
738         true);
739     DeclareUserSettingKeyForDebug(
740         userSettingPtr,
741         "DisableAv1CdefRowstoreCache",
742         MediaUserSetting::Group::Device,
743         0,
744         true);
745     DeclareUserSettingKeyForDebug(
746         userSettingPtr,
747         "DisableIntraRowStoreCache",
748         MediaUserSetting::Group::Device,
749         0,
750         true);
751     DeclareUserSettingKeyForDebug(
752         userSettingPtr,
753         "DisableDeblockingFilterRowStoreCache",
754         MediaUserSetting::Group::Device,
755         0,
756         true);
757     DeclareUserSettingKeyForDebug(
758         userSettingPtr,
759         "DisableBsdMpcRowStoreCache",
760         MediaUserSetting::Group::Device,
761         0,
762         true);
763     DeclareUserSettingKeyForDebug(
764         userSettingPtr,
765         "DisableMprRowStoreCache",
766         MediaUserSetting::Group::Device,
767         0,
768         true);
769     DeclareUserSettingKeyForDebug(
770         userSettingPtr,
771         "DisableVDEncRowStoreCache",
772         MediaUserSetting::Group::Device,
773         0,
774         true);
775     DeclareUserSettingKeyForDebug(
776         userSettingPtr,
777         "DisableHevcDatRowStoreCache",
778         MediaUserSetting::Group::Device,
779         0,
780         true);
781     DeclareUserSettingKeyForDebug(
782         userSettingPtr,
783         "DisableHevcDfRowStoreCache",
784         MediaUserSetting::Group::Device,
785         0,
786         true);
787     DeclareUserSettingKeyForDebug(
788         userSettingPtr,
789         "DisableHevcSaoRowStoreCache",
790         MediaUserSetting::Group::Device,
791         0,
792         true);
793     DeclareUserSettingKeyForDebug(
794         userSettingPtr,
795         "DisableVp9HvdRowStoreCache",
796         MediaUserSetting::Group::Device,
797         0,
798         true);
799     DeclareUserSettingKeyForDebug(
800         userSettingPtr,
801         "DisableVp9DatRowStoreCache",
802         MediaUserSetting::Group::Device,
803         0,
804         true);
805     DeclareUserSettingKeyForDebug(
806         userSettingPtr,
807         "DisableAv1BtdlRowstoreCache",
808         MediaUserSetting::Group::Device,
809         0,
810         true);
811     DeclareUserSettingKeyForDebug(
812         userSettingPtr,
813         "DisableAv1SmvlRowstoreCache",
814         MediaUserSetting::Group::Device,
815         0,
816         true);
817     DeclareUserSettingKeyForDebug(
818         userSettingPtr,
819         "DisableAv1IpdlRowstoreCache",
820         MediaUserSetting::Group::Device,
821         0,
822         true);
823     DeclareUserSettingKeyForDebug(
824         userSettingPtr,
825         "DisableAv1DflyRowstoreCache",
826         MediaUserSetting::Group::Device,
827         0,
828         true);
829     DeclareUserSettingKeyForDebug(
830         userSettingPtr,
831         "Encode L3CNTLREG Override",
832         MediaUserSetting::Group::Device,
833         0,
834         false);
835     DeclareUserSettingKeyForDebug(
836         userSettingPtr,
837         "Encode L3CNTLREG2 Override",
838         MediaUserSetting::Group::Device,
839         0,
840         false);
841     DeclareUserSettingKeyForDebug(
842         userSettingPtr,
843         "Encode L3CNTLREG3 Override",
844         MediaUserSetting::Group::Device,
845         0,
846         false);
847     DeclareUserSettingKeyForDebug(
848         userSettingPtr,
849         "Encode L3SQCREG1 Override",
850         MediaUserSetting::Group::Device,
851         0,
852         false);
853     DeclareUserSettingKeyForDebug(
854         userSettingPtr,
855         "Encode L3SQCREG4 Override",
856         MediaUserSetting::Group::Device,
857         0,
858         false);
859     DeclareUserSettingKeyForDebug(
860         userSettingPtr,
861         "L3LRA1RegOverride",
862         MediaUserSetting::Group::Device,
863         0,
864         false);
865 
866     DeclareUserSettingKeyForDebug(
867         userSettingPtr,
868         __COMMON_DBG_SURF_DUMPER_RESOURCE_LOCK,
869         MediaUserSetting::Group::Device,
870         1,
871         true);
872 
873     DeclareUserSettingKeyForDebug(
874         userSettingPtr,
875         __COMMON_DBG_SURF_DUMP_OUTFILE_KEY_NAME,
876         MediaUserSetting::Group::Device,
877         "",
878         true);
879 
880     DeclareUserSettingKeyForDebug(
881         userSettingPtr,
882         __COMMON_DBG_DUMP_OUTPUT_DIRECTORY,
883         MediaUserSetting::Group::Device,
884         "",
885         true);
886 
887     DeclareUserSettingKeyForDebug( // MCPY Surface_in Dump Location
888         userSettingPtr,
889         __COMMON_DBG_SURF_DUMP_LOCATION_KEY_NAME_IN,
890         MediaUserSetting::Group::Device,
891         "",
892         true);
893 
894     DeclareUserSettingKeyForDebug( // MCPY Surface_out Dump Location
895         userSettingPtr,
896         __COMMON_DBG_SURF_DUMP_LOCATION_KEY_NAME_OUT,
897         MediaUserSetting::Group::Device,
898         "",
899         true);
900 
901     DeclareUserSettingKeyForDebug(
902         userSettingPtr,
903         __MEDIA_USER_FEATURE_VALUE_MEMORY_NINJA_BEGIN_COUNTER,
904         MediaUserSetting::Group::Device,
905         0,
906         true);
907 
908     DeclareUserSettingKeyForDebug(
909         userSettingPtr,
910         __MEDIA_USER_FEATURE_VALUE_MEMORY_NINJA_END_COUNTER,
911         MediaUserSetting::Group::Device,
912         0,
913         true);
914 
915     DeclareUserSettingKeyForDebug(
916         userSettingPtr,
917         __MEDIA_USER_FEATURE_VALUE_SIM_IN_USE,
918         MediaUserSetting::Group::Device,
919         int32_t(0),
920         true);
921 
922     DeclareUserSettingKeyForDebug(
923         userSettingPtr,
924         __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_ENABLE,
925         MediaUserSetting::Group::Device,
926         1,
927         true); //"If enabled, media reset will be enabled."
928 
929     DeclareUserSettingKeyForDebug(
930         userSettingPtr,
931         __MEDIA_USER_FEATURE_VALUE_FORCE_MEDIA_COMPRESSED_WRITE,
932         MediaUserSetting::Group::Device,
933         0,
934         true); //"If enabled, then to disable Unifined CMF."
935 
936     DeclareUserSettingKeyForDebug(
937         userSettingPtr,
938         __MEDIA_USER_FEATURE_VALUE_FORCE_RESET_THRESHOLD,
939         MediaUserSetting::Group::Device,
940         0,
941         true);  //"Force set media reset threshold. 1: enabled, 0: not used (default)."
942 
943     DeclareUserSettingKeyForDebug(
944         userSettingPtr,
945         __MEDIA_USER_FEATURE_VALUE_MEDIA_PREEMPTION_ENABLE,
946         MediaUserSetting::Group::Device,
947         true,
948         true);
949 
950     DeclareUserSettingKeyForDebug(
951         userSettingPtr,
952         __MEDIA_USER_FEATURE_VALUE_MEDIA_RESET_TH,
953         MediaUserSetting::Group::Device,
954         uint32_t(0),
955         true);
956 
957     DeclareUserSettingKeyForDebug(
958         userSettingPtr,
959         __MEDIA_USER_FEATURE_VALUE_MEDIA_DEBUG_CFG_GENERATION,
960         MediaUserSetting::Group::Device,
961         false,
962         true);
963 
964     DeclareUserSettingKeyForDebug(
965         userSettingPtr,
966         __MEDIA_USER_FEATURE_MCPY_MODE,
967         MediaUserSetting::Group::Device,
968         "",
969         true);
970 
971     DeclareUserSettingKeyForDebug(
972         userSettingPtr,
973         __MEDIA_USER_FEATURE_ENABLE_RENDER_ENGINE_MMC,
974         MediaUserSetting::Group::Device,
975         false,
976         true);
977 
978     DeclareUserSettingKeyForDebug(
979         userSettingPtr,
980         __MEDIA_USER_FEATURE_VALUE_VEBOX_SPLIT_RATIO,
981         MediaUserSetting::Group::Device,
982         uint32_t(50),
983         true);
984 
985     DeclareUserSettingKeyForDebug(
986         userSettingPtr,
987         __MEDIA_USER_FEATURE_VALUE_VDI_MODE,
988         MediaUserSetting::Group::Device,
989         true,
990         true);
991 
992     DeclareUserSettingKeyForDebug(
993         userSettingPtr,
994         __MEDIA_USER_FEATURE_VALUE_MEDIA_WALKER_MODE,
995         MediaUserSetting::Group::Device,
996         int32_t(-1),
997         true);
998 
999     DeclareUserSettingKeyForDebug(
1000         userSettingPtr,
1001         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PLATFORM,
1002         MediaUserSetting::Group::Device,
1003         "",
1004         true);
1005 
1006     DeclareUserSettingKeyForDebug(
1007         userSettingPtr,
1008         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_STEPPING,
1009         MediaUserSetting::Group::Device,
1010         "",
1011         true);
1012 
1013     DeclareUserSettingKeyForDebug(
1014         userSettingPtr,
1015         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_MEM_TRACE,
1016         MediaUserSetting::Group::Device,
1017         false,
1018         true);
1019 
1020     DeclareUserSettingKeyForDebug(
1021         userSettingPtr,
1022         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_ENABLE_LOCAL_MEM,
1023         MediaUserSetting::Group::Device,
1024         false,
1025         true);
1026 
1027     DeclareUserSettingKeyForDebug(
1028         userSettingPtr,
1029         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBLOAD_DIRECTORY,
1030         MediaUserSetting::Group::Device,
1031         "",
1032         true);
1033 
1034     DeclareUserSettingKeyForDebug(
1035         userSettingPtr,
1036         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_OUTPUT_DIRECTORY,
1037         MediaUserSetting::Group::Device,
1038         "",
1039         true);
1040 
1041     DeclareUserSettingKeyForDebug(
1042         userSettingPtr,
1043         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_GT_SKU,
1044         MediaUserSetting::Group::Device,
1045         "",
1046         true);
1047 
1048     DeclareUserSettingKeyForDebug(
1049         userSettingPtr,
1050         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_DEBUG_OUTPUT_ENABLE,
1051         MediaUserSetting::Group::Device,
1052         int32_t(0),
1053         true);
1054 
1055     DeclareUserSettingKeyForDebug(
1056         userSettingPtr,
1057         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_ENABLE,
1058         MediaUserSetting::Group::Device,
1059         int32_t(0),
1060         true);
1061 
1062     DeclareUserSettingKeyForDebug(
1063         userSettingPtr,
1064         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PATHLIST_ENABLE,
1065         MediaUserSetting::Group::Device,
1066         int32_t(0),
1067         true);
1068 
1069     DeclareUserSettingKeyForDebug(
1070         userSettingPtr,
1071         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_RESET_GFXADDR_PER_CONTEXT_DISABLE,
1072         MediaUserSetting::Group::Device,
1073         int32_t(0),
1074         true);
1075 
1076     DeclareUserSettingKeyForDebug(
1077         userSettingPtr,
1078         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_MMIO_GT_SETTING,
1079         MediaUserSetting::Group::Device,
1080         uint32_t(0),
1081         true);
1082 
1083     DeclareUserSettingKeyForDebug(
1084         userSettingPtr,
1085         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_PERF_TEST_ENABLE,
1086         MediaUserSetting::Group::Device,
1087         int32_t(0),
1088         true);
1089 
1090     DeclareUserSettingKeyForDebug(
1091         userSettingPtr,
1092         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBLOAD_COMMAND_LINE_OPTIONS,
1093         MediaUserSetting::Group::Device,
1094         "",
1095         true);
1096 
1097     DeclareUserSettingKeyForDebug(
1098         userSettingPtr,
1099         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_VE_SCHEDULE_FIXED_MODE_ENABLE,
1100         MediaUserSetting::Group::Device,
1101         true,
1102         true);
1103 
1104     DeclareUserSettingKeyForDebug(
1105         userSettingPtr,
1106         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_BMP_DUMP_ENABLE,
1107         MediaUserSetting::Group::Device,
1108         int32_t(0),
1109         true);
1110 
1111     DeclareUserSettingKeyForDebug(
1112         userSettingPtr,
1113         __MEDIA_USER_FEATURE_VALUE_MEDIASOLO_AUBCAPTURE_RECON_DUMP_ENABLE,
1114         MediaUserSetting::Group::Device,
1115         int32_t(0),
1116         true);
1117 
1118     DeclareUserSettingKeyForDebug(  // Surface Dump Outfile
1119         userSettingPtr,
1120         __MEDIA_USER_FEATURE_VALUE_CODECHAL_DEBUG_OUTPUT_DIRECTORY,
1121         MediaUserSetting::Group::Device,
1122         "",
1123         true);
1124 
1125     DeclareUserSettingKeyForDebug(
1126         userSettingPtr,
1127         "Resource Addr Dump Enable",
1128         MediaUserSetting::Group::Device,
1129         0,
1130         true);
1131 
1132     DeclareUserSettingKeyForDebug(
1133         userSettingPtr,
1134         __MEDIA_USER_FEATURE_VALUE_SIM_ENABLE,
1135         MediaUserSetting::Group::Device,
1136         0,
1137         true,
1138         true,
1139         USER_SETTING_CONFIG_PERMANENT_PATH);//"If enabled, specify this is in pre-si simulation/emulation mode."
1140 
1141     DeclareUserSettingKeyForDebug(
1142         userSettingPtr,
1143         __MEDIA_USER_FEATURE_VALUE_FORCE_VDBOX,
1144         MediaUserSetting::Group::Device,
1145         0,
1146         true); //"Force the VDBox to be used. (Default 0: FORCE_VDBOX_NONE )"
1147 
1148     DeclareUserSettingKeyForDebug(
1149         userSettingPtr,
1150         __MEDIA_USER_FEATURE_VALUE_FORCE_VEBOX,
1151         MediaUserSetting::Group::Device,
1152         0,
1153         true); //"Force the VEBox to be used. (Default 0: FORCE_VEBOX_NONE )"
1154 
1155     DeclareUserSettingKeyForDebug(
1156         userSettingPtr,
1157         __MEDIA_USER_FEATURE_VALUE_FORCE_YFYS,
1158         MediaUserSetting::Group::Device,
1159         0,
1160         true); //"Force to allocate internal surface as Yf or Ys"
1161 
1162     DeclareUserSettingKeyForDebug(
1163         userSettingPtr,
1164         __MEDIA_USER_FEATURE_VALUE_NULL_HW_ACCELERATION_ENABLE,
1165         MediaUserSetting::Group::Device,
1166         0,
1167         true); //"If enabled, go through the nullptr HW driver. (0: Disable, 1: Null HW enabled)."
1168 
1169     DeclareUserSettingKeyForDebug(
1170         userSettingPtr,
1171         __MEDIA_USER_FEATURE_VALUE_ENABLE_VE_DEBUG_OVERRIDE,
1172         MediaUserSetting::Group::Device,
1173         0,
1174         true); //"TRUE for Enabling KMD Virtual Engine Debug Override. (Default FALSE: not override)"
1175 
1176     DeclareUserSettingKeyForDebug(
1177         userSettingPtr,
1178         __MEDIA_USER_FEATURE_VALUE_ENABLE_LINUX_FRAME_SPLIT,
1179         MediaUserSetting::Group::Device,
1180         0,
1181         true); //"TRUE for Enabling Frame Split. (Default false: disabled)"
1182 
1183     DeclareUserSettingKeyForDebug(
1184         userSettingPtr,
1185         __MEDIA_USER_FEATURE_VALUE_ENABLE_GUC_SUBMISSION,
1186         MediaUserSetting::Group::Device,
1187         1,
1188         true); // "To decide if using guc submission."
1189 
1190     DeclareUserSettingKeyForDebug(
1191         userSettingPtr,
1192         __MEDIA_USER_FEATURE_VALUE_SOFT_RESET_ENABLE,
1193         MediaUserSetting::Group::Device,
1194         0,
1195         true); // "If enabled, soft reset will be enabled. This key is not valid on Linux."
1196 
1197     DeclareUserSettingKeyForDebug(
1198         userSettingPtr,
1199         __MEDIA_USER_FEATURE_VALUE_SSEU_SETTING_OVERRIDE,
1200         MediaUserSetting::Group::Device,
1201         0xDEADC0DE,
1202         true); // "Override Slice/Sub-Slice/EU request"
1203 
1204     DeclareUserSettingKeyForDebug(
1205         userSettingPtr,
1206         __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_MODE,
1207         MediaUserSetting::Group::Device,
1208         0,
1209         true); // "MOS memory alloc fail simulate mode,  0-Disable, 1-Random, 2-Traverse."
1210 
1211     DeclareUserSettingKeyForDebug(
1212         userSettingPtr,
1213         __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_FREQ,
1214         MediaUserSetting::Group::Device,
1215         0,
1216         true); // "MOS memory alloc fail simulate frequence."
1217 
1218     DeclareUserSettingKeyForDebug(
1219         userSettingPtr,
1220         __MEDIA_USER_FEATURE_VALUE_ALLOC_MEMORY_FAIL_SIMULATE_HINT,
1221         MediaUserSetting::Group::Device,
1222         0,
1223         true); // "MOS memory alloc fail simulate counter."
1224 
1225     DeclareUserSettingKeyForDebug(
1226         userSettingPtr,
1227         __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_TYPE,
1228         MediaUserSetting::Group::Device,
1229         0,
1230         true); // "the OS API fail type to simulate"
1231 
1232     DeclareUserSettingKeyForDebug(
1233         userSettingPtr,
1234         __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_MODE,
1235         MediaUserSetting::Group::Device,
1236         0,
1237         true); // "MOS OS API fail simulate mode, 0-Disable, 1-Random, 2-Traverse."
1238 
1239     DeclareUserSettingKeyForDebug(
1240         userSettingPtr,
1241         __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_FREQ,
1242         MediaUserSetting::Group::Device,
1243         0,
1244         true); // "MOS OS API fail simulate frequence."
1245 
1246     DeclareUserSettingKeyForDebug(
1247         userSettingPtr,
1248         __MEDIA_USER_FEATURE_VALUE_OS_API_FAIL_SIMULATE_HINT,
1249         MediaUserSetting::Group::Device,
1250         0,
1251         true); // "MOS OS API fail simulate counter."
1252 
1253     DeclareUserSettingKeyForDebug(
1254         userSettingPtr,
1255         __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VE_CTXSCHEDULING,
1256         MediaUserSetting::Group::Device,
1257         0,
1258         true); // "TRUE for Enabling Decode Virtual Engine context based scheduling. (Default false: disabled"
1259 
1260     DeclareUserSettingKeyForDebug(
1261         userSettingPtr,
1262         __MEDIA_USER_FEATURE_VALUE_ENABLE_DECODE_VIRTUAL_ENGINE,
1263         MediaUserSetting::Group::Device,
1264         1,
1265         true); // "TRUE for Enabling Decode Virtual Engine. (Default TRUE: enabled)"
1266 
1267     DeclareUserSettingKeyForDebug(
1268         userSettingPtr,
1269         __MEDIA_USER_FEATURE_VALUE_ENABLE_ENCODE_VIRTUAL_ENGINE,
1270         MediaUserSetting::Group::Device,
1271         1,
1272         true); // "TRUE for Enabling Encode Virtual Engine. (Default TRUE: enabled)"
1273 
1274     DeclareUserSettingKeyForDebug(
1275         userSettingPtr,
1276         __MEDIA_USER_FEATURE_VALUE_MEDIA_TILE_ENCODING_1_DEFAULT,
1277         MediaUserSetting::Group::Device,
1278         0,
1279         true); // "DDI Res tile as 1 default"
1280 
1281     DeclareUserSettingKeyForDebug(
1282         userSettingPtr,
1283         __MEDIA_USER_FEATURE_VALUE_TILE_ENCODING_1_INTERNAL_USED,
1284         MediaUserSetting::Group::Device,
1285         0,
1286         true); // "Internal Res tile as 1 used"
1287 
1288     DeclareUserSettingKeyForDebug(
1289         userSettingPtr,
1290         __MEDIA_USER_FEATURE_VALUE_TILE_ENCODING_3_INTERNAL_USED,
1291         MediaUserSetting::Group::Device,
1292         0,
1293         true); // "Internal Res tile as 3 used"
1294 
1295     DeclareUserSettingKeyForDebug(  // Surface Dump Outfile
1296         userSettingPtr,
1297         __VPHAL_DBG_SURF_DUMP_OUTFILE_KEY_NAME,
1298         MediaUserSetting::Group::Device,
1299         "",
1300         true);
1301 
1302     DeclareUserSettingKeyForDebug(  // VP Surface Dump Location
1303         userSettingPtr,
1304         __VPHAL_DBG_SURF_DUMP_LOCATION_KEY_NAME,
1305         MediaUserSetting::Group::Device,
1306         "",
1307         true);
1308 
1309     DeclareUserSettingKeyForDebug(  // Manual trigger to start VP Surface Dump
1310         userSettingPtr,
1311         __VPHAL_DBG_SURF_DUMP_MANUAL_TRIGGER_KEY_NAME,
1312         MediaUserSetting::Group::Device,
1313         -1,
1314         true);
1315 
1316     DeclareUserSettingKeyForDebug(  // VP Surface Dump Start Frame
1317         userSettingPtr,
1318         __VPHAL_DBG_SURF_DUMP_START_FRAME_KEY_NAME,
1319         MediaUserSetting::Group::Device,
1320         0,
1321         true);
1322 
1323     DeclareUserSettingKeyForDebug(  // VP Surface Dump End Frame
1324         userSettingPtr,
1325         __VPHAL_DBG_SURF_DUMP_END_FRAME_KEY_NAME,
1326         MediaUserSetting::Group::Device,
1327         -1,
1328         true);
1329 
1330     DeclareUserSettingKeyForDebug(  // VP Surface dump each plance seprately
1331         userSettingPtr,
1332         __VPHAL_DBG_SURF_DUMPER_ENABLE_PLANE_DUMP,
1333         MediaUserSetting::Group::Device,
1334         0,
1335         true);
1336 
1337     DeclareUserSettingKeyForDebug(  // VP Surface dump aux data enable
1338         userSettingPtr,
1339         __VPHAL_DBG_SURF_DUMP_ENABLE_AUX_DUMP,
1340         MediaUserSetting::Group::Device,
1341         0,
1342         true);
1343 
1344     DeclareUserSettingKeyForDebug(  // VP Surface Dump: Locking Resource
1345         userSettingPtr,
1346         __VPHAL_DBG_SURF_DUMPER_RESOURCE_LOCK,
1347         MediaUserSetting::Group::Device,
1348         0,
1349         true);
1350 
1351     DeclareUserSettingKeyForDebug(  // VP State Dump Enable
1352         userSettingPtr,
1353         __VPHAL_DBG_STATE_DUMP_ENABLE,
1354         MediaUserSetting::Group::Device,
1355         0,
1356         true);
1357 
1358     DeclareUserSettingKeyForDebug(
1359         userSettingPtr,
1360         __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_POSITION,
1361         MediaUserSetting::Group::Device,
1362         0,
1363         true);  //Demo position: Disable(0), Left(1), Right(2), Top(3), Bottom(4)
1364 
1365     DeclareUserSettingKeyForDebug(
1366         userSettingPtr,
1367         __MEDIA_USER_FEATURE_VALUE_SPLIT_SCREEN_DEMO_PARAMETERS,
1368         MediaUserSetting::Group::Device,
1369         0,
1370         true);
1371     /**********************MOCK ADAPTER**********************************/
1372     DeclareUserSettingKeyForDebug(
1373         userSettingPtr,
1374         __MEDIA_USER_FEATURE_VALUE_NULLHW_ENABLE,
1375         MediaUserSetting::Group::Device,
1376         0,
1377         true); // "Enable NULL HW or not"
1378 
1379     DeclareUserSettingKeyForDebug(
1380         userSettingPtr,
1381         __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_PLATFORM,
1382         MediaUserSetting::Group::Device,
1383         33,
1384         true); //"Sets the platform for MockAdaptor, default is tgllp"
1385 
1386     DeclareUserSettingKeyForDebug(
1387         userSettingPtr,
1388         __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_STEPPING,
1389         MediaUserSetting::Group::Device,
1390         "a0",
1391         true); //"Sets the platform stepping for MockAdaptor. (For example a0, b1, c0, etc)"
1392 
1393     DeclareUserSettingKeyForDebug(
1394         userSettingPtr,
1395         __MEDIA_USER_FEATURE_VALUE_MOCKADAPTOR_DEVICE,
1396         MediaUserSetting::Group::Device,
1397         39497,
1398         true); //"Device ID of mock device, default is 0x9A49"
1399 
1400     //Tile resource info report
1401     DeclareUserSettingKeyForDebug(
1402         userSettingPtr,
1403         __MEDIA_USER_FEATURE_VALUE_TILE_INFO,
1404         MediaUserSetting::Group::Device,
1405         "",
1406         true);  //""Report tile infomation including tileID and memory region size"
1407 
1408     DeclareUserSettingKeyForDebug(
1409         userSettingPtr,
1410         __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_RCS,
1411         MediaUserSetting::Group::Device,
1412         "",
1413         true);  //"Report RCS instance infomation"
1414 
1415     DeclareUserSettingKeyForDebug(
1416         userSettingPtr,
1417         __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_BLT,
1418         MediaUserSetting::Group::Device,
1419         "",
1420         true);  //"Report BLT instance infomation"
1421 
1422     DeclareUserSettingKeyForDebug(
1423         userSettingPtr,
1424         __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_VCS,
1425         MediaUserSetting::Group::Device,
1426         "",
1427         true);  //"Report VCS instance infomation."
1428 
1429     DeclareUserSettingKeyForDebug(
1430         userSettingPtr,
1431         __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_VECS,
1432         MediaUserSetting::Group::Device,
1433         "",
1434         true);  //"Report VECS instance infomation."
1435 
1436     DeclareUserSettingKeyForDebug(
1437         userSettingPtr,
1438         __MEDIA_USER_FEATURE_VALUE_ENGINE_INSTANCE_CCS,
1439         MediaUserSetting::Group::Device,
1440         "",
1441         true);  //"Report CCS instance infomation."
1442 
1443     DeclareUserSettingKeyForDebug(
1444         userSettingPtr,
1445         __MEDIA_USER_FEATURE_VALUE_LINUX_PERFORMANCETAG_ENABLE,
1446         MediaUserSetting::Group::Device,
1447         0,
1448         true);  //"Linux Performance Tag."
1449 
1450     DeclareUserSettingKeyForDebug(
1451         userSettingPtr,
1452         "Command Parser Input File Path",
1453         MediaUserSetting::Group::Device,
1454         std::string(),
1455         false);
1456 
1457     DeclareUserSettingKeyForDebug(
1458         userSettingPtr,
1459         __MEDIA_USER_FEATURE_SET_MCPY_FORCE_MODE,
1460         MediaUserSetting::Group::Device,
1461         0,      // 0 is ignore. 1 blt, 2 render, 3 vebox, 4 bypass copy engine;
1462         true);  //"media copy force copy model."
1463 
1464     DeclareUserSettingKeyForDebug(
1465         userSettingPtr,
1466         __MEDIA_USER_FEATURE_ENABLE_VECOPY_SMALL_RESOLUTION,
1467         MediaUserSetting::Group::Device,
1468         0,
1469         true);
1470 
1471     DeclareUserSettingKeyForDebug(
1472         userSettingPtr,
1473         "Bypass Evict",
1474         MediaUserSetting::Group::Device,
1475         0,
1476         true);
1477     return MOS_STATUS_SUCCESS;
1478 }
1479 
1480 #endif
1481