xref: /aosp_15_r20/external/gmmlib/Source/inc/umKmInc/UmKmDmaPerfTimer.h (revision 35ffd701415c9e32e53136d61a677a8d0a8fc4a5)
1 /*==============================================================================
2 Copyright(c) 2017 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 Name:    UmKmDmaPerfTimer.h
24 **
25 ** Description:
26 **      Contains perftag class and subtype codes used by km dma timer.
27 **
28 ==============================================================================*/
29 #pragma once
30 
31 #if defined (LHDM) || defined(KM_PERF_CONTROLLER_BUILD) || defined(_PERF_REPORT)
32     #include "UmKmEnum.h"
33 #endif
34 #include <stdint.h>
35 // Set packing alignment
36 #pragma pack(push, 1)
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 
43 //===========================================================================
44 // typedef:
45 //      PERF_DATA
46 //
47 // Description:
48 //
49 //---------------------------------------------------------------------------
50 typedef struct _PERF_DATA
51 {
52     union
53     {
54         struct
55         {
56             uint32_t dmaBufID   : 16;
57             uint32_t frameID    :  8;
58             uint32_t bufferID   :  4;
59             uint32_t batchBufID :  4;
60         };
61 
62         uint32_t PerfTag;
63     };
64 } PERF_DATA;
65 
66 //===========================================================================
67 // enum:
68 //      PERFTAG_CLASS_ENUM
69 //
70 // Description:
71 //      PerfTag class cmd buffer classification.
72 //
73 //---------------------------------------------------------------------------
74 //--------------------------------------------------------------------------------
75 // IMPORTANT NOTE: Please DONOT change the existing perftag values in below enum.
76 // If adding a new perf tag, assign a new value
77 //--------------------------------------------------------------------------------
78 typedef enum PERFTAG_CLASS_ENUM
79 {
80     PERFTAG_ALL                = 0x0000,    // Used for capturing all (perfcontroller)
81     PERFTAG_KMD                = 0x1000,
82     PERFTAG_3D                 = 0x2000,
83     PERFTAG_DECODE             = 0x3000,    // Media Decoding
84     PERFTAG_DXVA2              = 0x4000,
85     PERFTAG_LIBVA              = 0x5000,
86     PERFTAG_ENCODE             = 0x6000,    // Media Encoding
87     PERFTAG_DXVAHD             = 0x7000,
88     PERFTAG_DXVA1              = 0x8000,
89     PERFTAG_VPREP              = 0x9000,
90     PERFTAG_CM                 = 0xA000,    // C for media
91     PERFTAG_WIDI               = 0xB000,
92     PERFTAG_OCL                = 0xC000,    // OpenCL
93     PERFTAG_PXP                = 0xD000,    // PXP
94     PERFTAG_DXVA11             = 0xE000,    // DX11 Video
95     PERFTAG_FRAME_CAPTURE      = 0xF000,    // Gfx Frame Capture
96     PERFTAG_FRAME_CAPTURE_NV12 = 0xF100,    // Gfx Frame Capture with NV12 output
97     PERFTAG_FRAME_CAPTURE_RGB8 = 0xF200,    // Gfx Frame Capture with RGB8 output
98     PERFTAG_UNKNOWN            = 0x0FFF
99 }PERFTAG_CLASS;
100 
101 #define PERFTAG_SUBTYPE(PerfTag)            ( PerfTag &  (ULONG)0x00000FFF )    // Bits[0,11]  Usage component specific
102 #define GET_PERFTAG_CLASS(PerfTag)          ( PerfTag &  (ULONG)0x0000F000 )    // Bits[12,15]
103 #define PERFTAG_CLASS_AND_SUBTYPE(PerfTag)  ( PerfTag &  (ULONG)0x0000FFFF )    // Bits[0,15]
104 #define PERFTAG_UNKNOWN_BITS(PerfTag)       ( PerfTag &  (ULONG)0xFFFF0000 )    // Bits[16,31] Usage component specific
105 #define PERFTAG_FRAMEID(PerfTag)            ( PerfTag &  (ULONG)0x00FF0000 )    // Bits[16,23] Media Specific - frame id
106 #define PERFTAG_BUFFERID(PerfTag)           ( PerfTag &  (ULONG)0x0F000000 )    // Bits[24,27] Media Specific - buffer id
107 #define PERFTAG_BATCHBUFFERID(PerfTag)      ( PerfTag &  (ULONG)0xF0000000 )    // Bits[28,31] Media Specific - batch buffer id
108 #define PERFTAG_FRAMEID_SHIFT                 16
109 #define PERFTAG_BUFFERID_SHIFT                24
110 #define PERFTAG_BATCHBUFFERID_SHIFT           28
111 
112 //===========================================================================
113 // enum:
114 //      VPHAL_PERFTAG
115 //
116 // Description:
117 //      Video Postprocessing perftag sub type.
118 // NOTE:
119 //      Please follow instructions in below enum when adding new perf tag values.
120 //      Sub Tags (bits 11:0).
121 //      When adding new perf tag values, please update
122 //      Source\miniport\LHDM\KmPerfTools\PerfController\PerfReportGenerator.h
123 //      with the string.
124 //---------------------------------------------------------------------------
125 typedef enum _VPHAL_PERFTAG
126 {
127     // No pri video
128     VPHAL_NONE    = 0x0,
129     VPHAL_1LAYER ,
130     VPHAL_2LAYERS,
131     VPHAL_3LAYERS,
132     VPHAL_4LAYERS,
133     VPHAL_5LAYERS,
134     VPHAL_6LAYERS,
135     VPHAL_7LAYERS,
136     VPHAL_8LAYERS,
137     // ADD NEW TAGS FOR NO PRI-VIDEO CASE HERE
138 
139     // pri video present
140     VPHAL_PRI     = 0x10,
141     VPHAL_PRI_1LAYER,
142     VPHAL_PRI_2LAYERS,
143     VPHAL_PRI_3LAYERS,
144     VPHAL_PRI_4LAYERS,
145     VPHAL_PRI_5LAYERS,
146     VPHAL_PRI_6LAYERS,
147     VPHAL_PRI_7LAYERS,
148     VPHAL_PRI_8LAYERS,
149     // ADD NEW TAGS FOR PRI-VIDEO CASE HERE
150 
151     // video rotation present
152     VPHAL_ROT   = 0x20,
153     VPHAL_ROT_1LAYER,
154     VPHAL_ROT_2LAYERS,
155     VPHAL_ROT_3LAYERS,
156     VPHAL_ROT_4LAYERS,
157     VPHAL_ROT_5LAYERS,
158     VPHAL_ROT_6LAYERS,
159     VPHAL_ROT_7LAYERS,
160     VPHAL_ROT_8LAYERS,
161 
162     // PERFTAGs for AdvProc using VEBOX
163     VPHAL_PA_DI_PA = 0x100,
164     VPHAL_PA_DN_PA,
165     VPHAL_PA_DNUV_PA,
166     VPHAL_PA_DNDI_PA,
167     VPHAL_PA_DI_422CP,
168     VPHAL_PA_DN_422CP,
169     VPHAL_PA_DNDI_422CP,
170     VPHAL_PA_422CP,
171     VPHAL_PA_DN_420CP,
172     VPHAL_PA_420CP,
173     VPHAL_PA_DN_RGB32CP,
174     VPHAL_PA_RGB32CP,
175 
176     VPHAL_PL_DI_PA,
177     VPHAL_PL_DI_422CP,
178 
179     VPHAL_NV12_DN_NV12,
180     VPHAL_NV12_DNUV_NV12,
181     VPHAL_NV12_DNDI_PA,
182     VPHAL_NV12_DN_420CP,
183     VPHAL_NV12_DN_422CP,
184     VPHAL_NV12_DNDI_422CP,
185     VPHAL_NV12_420CP,
186     VPHAL_NV12_422CP,
187     VPHAL_NV12_DN_RGB32CP,
188     VPHAL_NV12_RGB32CP,
189 
190     VPHAL_PL3_DN_PL3,
191     VPHAL_PL3_DNUV_PL3,
192     VPHAL_PL3_DNDI_PA,
193     VPHAL_PL3_DN_422CP,
194     VPHAL_PL3_DNDI_422CP,
195     VPHAL_PL3_422CP,
196 
197     VPHAL_VEBOX_RESERVED1,
198     VPHAL_VEBOX_UPDATE_DN_STATE,
199     VPHAL_VEBOX_ACE,
200     VPHAL_VEBOX_FMD_VAR,
201 
202     VPHAL_VEBOX_P010,
203     VPHAL_VEBOX_P016,
204     VPHAL_VEBOX_P210,
205     VPHAL_VEBOX_P216,
206     VPHAL_VEBOX_Y210,
207     VPHAL_VEBOX_Y216,
208     VPHAL_VEBOX_Y410,
209     VPHAL_VEBOX_Y416,
210     VPHAL_VEBOX_AYUV,
211     VPHAL_VEBOX_RGB32,
212     VPHAL_VEBOX_RGB64,
213 
214     // PERFTAGs for AdvProc using Render
215     VPHAL_ISTAB_PH1_PLY_PLY = 0x200,
216     VPHAL_ISTAB_PH1_PA_PLY,
217     VPHAL_ISTAB_PH2_ME_BS_ATOMIC,
218     VPHAL_ISTAB_PH3_GMC_BS_ATOMIC,
219     VPHAL_ISTAB_PH4_NV12_NV12_BS,
220     VPHAL_ISTAB_PH4_PA_PA_BS,
221 
222     VPHAL_FRC_COPY,
223     VPHAL_FRC_WIDE_SCREEN_DETECTION,
224     VPHAL_FRC_PYRAMIDAL_SCALING,
225     VPHAL_FRC_MOTION_ESTIMATION_L3,
226     VPHAL_FRC_MV_VOTING_L3,
227     VPHAL_FRC_MOTION_ESTIMATION_L2,
228     VPHAL_FRC_MV_VOTING_L2,
229     VPHAL_FRC_MOTION_ESTIMATION_L1,
230     VPHAL_FRC_MV_VOTING_L1,
231     VPHAL_FRC_GMV,
232     VPHAL_FRC_MV_SANITY_CHECK,
233     VPHAL_FRC_GRADIENT_Y,
234     VPHAL_FRC_GRADIENT_UV,
235     VPHAL_FRC_TEMPORAL_DIFF,
236     VPHAL_FRC_SPD_MAP,
237     VPHAL_FRC_CLEAN_MAP,
238     VPHAL_FRC_MOTION_COMP,
239 
240     VPHAL_DRDB_NV12_DERING_NV12,
241     VPHAL_DRDB_NV12_HDEBLOCK_NV12,
242     VPHAL_DRDB_NV12_VDEBLOCK_NV12,
243 
244     VPHAL_3P,
245 
246     VPHAL_DPROTATION_NV12_NV12,
247     VPHAL_DPROTATION_NV12_AVG,
248     VPHAL_DPROTATION_NV12_REP,
249 
250     VPHAL_LACE_HIST_SUM,
251     VPHAL_LACE_STD,
252     VPHAL_LACE_PWLF,
253     VPHAL_LACE_LUT,
254 
255     VPHAL_EU3DLUT,
256 
257     // Capture pipe present
258     VPHAL_CP = 0x300,
259     VPHAL_CP_BAYER8,
260     VPHAL_CP_BAYER16,
261     VPHAL_CP_LGCA_PH1_CALCPARAMS,
262     VPHAL_CP_LGCA_PH2_GEOCORRECTION,
263 
264     // Hdr
265     VPHAL_HDR_GENERIC = 0x400,
266     VPHAL_HDR_1LAYER,
267     VPHAL_HDR_2LAYERS,
268     VPHAL_HDR_3LAYERS,
269     VPHAL_HDR_4LAYERS,
270     VPHAL_HDR_5LAYERS,
271     VPHAL_HDR_6LAYERS,
272     VPHAL_HDR_7LAYERS,
273     VPHAL_HDR_8LAYERS,
274     VPHAL_HDR_AUTO_PER_FRAME_STATE,
275 
276     // Fdfb - FD
277     VPHAL_FDFB_FD_DOWNSCALE = 0x500,
278     VPHAL_FDFB_FD_MLBP,
279     VPHAL_FDFB_FD_CASCADE,
280     VPHAL_FDFB_FD_CASCADE1,
281     VPHAL_FDFB_FD_DOWNSCALE_NOT_FULLY_ENQUEUE,
282     VPHAL_FDFB_FD_MLBP_NOT_FULLY_ENQUEUE,
283     VPHAL_FDFB_FD_CASCADE_NOT_FULLY_ENQUEUE,
284     VPHAL_FDFB_FD_CASCADE1_NOT_FULLY_ENQUEUE,
285     VPHAL_FDFB_FD_MERGE,
286     VPHAL_FDFB_FD_MERGE1,
287 
288     // Fdfb - FLD
289     VPHAL_FDFB_FLD_CAL_GAUSSIAN_WEIGHT = 0x510,
290     VPHAL_FDFB_FLD_PREPROCESSING,
291     VPHAL_FDFB_FLD_RESIZE,
292     VPHAL_FDFB_FLD_EXTRACT_FEATURE_GET_LANDMARK,
293     VPHAL_FDFB_FLD_POST_PROCESSING,
294     VPHAL_FDFB_FLD_VALIDATOR,
295     VPHAL_FDFB_ELD_PREPROCESSING,
296     VPHAL_FDFB_ELD_GET_LANDMARK,
297     VPHAL_FDFB_ELD_POST_PROCESSING,
298     VPHAL_FDFB_ELD_FILTERING,
299 
300     // Fdfb - FB
301     VPHAL_FDFB_FB_VEBOX_SKIN_MAP = 0x520,
302     VPHAL_FDFB_FB_CMK_AVERAGE_FILTER,
303     VPHAL_FDFB_FB_CMK_PROCESSING,
304     VPHAL_FDFB_FB_SMOOTHER,
305     VPHAL_FDFB_FB_SKIN_BLENDER,
306     VPHAL_FDFB_FB_CMK_FOUNDATION,
307     VPHAL_FDFB_FB_CAL_REGIONS,
308     VPHAL_FDFB_FB_CMK_BLUSH_MAP,
309     VPHAL_FDFB_FB_CMK_EYE_CIRCLES,
310     VPHAL_FDFB_FB_SMOOTHER_SKIN_ROI_BLENDER_0,
311     VPHAL_FDFB_FB_SMOOTHER_SKIN_ROI_BLENDER_1,
312     VPHAL_FDFB_FB_RED_LIP_CURVE_1,
313     VPHAL_FDFB_FB_RED_LIP_CURVE_2,
314     VPHAL_FDFB_FB_RED_LIP_CURVE_3,
315     VPHAL_FDFB_FB_RED_LIP_CURVE_4,
316     VPHAL_FDFB_FB_REFINE_LIP_MASK_1,
317     VPHAL_FDFB_FB_REFINE_LIP_MASK_2,
318     VPHAL_FDFB_FB_CMK_COLOR_LIP,
319     VPHAL_FDFB_FB_CMK_BWD_WARP_SCALING,
320     VPHAL_FDFB_FB_CMK_DATA_MOVE,
321     VPHAL_FDFB_FB_CMK_BWD_WARP,
322     VPHAL_FDFB_FB_MDF_SURFACE_COPY,
323     VPHAL_FDFB_FB_RED_LIP,
324     VPHAL_FDFB_FB_STD_GEN,
325     VPHAL_FDFB_FB_CAL_EYECURVE,
326     VPHAL_FDFB_FB_EYE_BRIGHT_PARAM_GEN,
327     VPHAL_FDFB_FB_EYE_BRIGHT,
328     VPHAL_FDFB_FB_EYE_LASH,
329     VPHAL_FDFB_FB_EYE_LINE,
330     VPHAL_FDFB_FB_TEETH_WHITEN,
331     VPHAL_FDFB_FB_EYE_SAHDOW_MASK,
332     VPHAL_FDFB_FB_EYE_SAHDOW,
333     VPHAL_FDFB_FB_EYE_COLOR,
334 
335     // SR
336     VPHAL_SR_CONV_1X1_32_5,
337     VPHAL_SR_CONV_1X1_5_32,
338     VPHAL_SR_CONV_3X3,
339     VPHAL_SR_SUBPIXEL_CONV_2X2,
340     VPHAL_SR_CONV_5X5_Y8,
341 
342     // ADD TAGS FOR NEW ADVPROC KRNS HERE
343 
344     VPHAL_PERFTAG_MAX
345 } VPHAL_PERFTAG, *PVPHAL_PERFTAG;
346 
347 
348 #ifdef __cplusplus
349 }
350 #endif
351 
352 // Reset packing alignment to project default
353 #pragma pack(pop)
354