1 /* 2 * Copyright (c) 2022, 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 codechal_debug_kernel.h 24 //! \brief Defines the kernel debug map 25 //! \details 26 //! 27 28 #pragma once 29 30 #include "codechal_debug.h" 31 #if USE_CODECHAL_DEBUG_TOOL 32 33 namespace CodechalDbgKernel 34 { 35 class KernelStateMap 36 { 37 public: 38 using kernelMapType = std::map<CODECHAL_MEDIA_STATE_TYPE, std::string>; 39 RegisterKernelStr(CODECHAL_MEDIA_STATE_TYPE mediaState,std::string kernelName)40 static bool RegisterKernelStr(CODECHAL_MEDIA_STATE_TYPE mediaState, std::string kernelName) 41 { 42 kernelMapType &kernelMap = GetKernelStateMap(); 43 auto it = kernelMap.find(mediaState); 44 if (it == kernelMap.end()) 45 { 46 kernelMap.insert(std::make_pair(mediaState, kernelName)); 47 } 48 return true; 49 } 50 GetKernelStateMap()51 static kernelMapType &GetKernelStateMap() 52 { 53 static kernelMapType m_kernelStateMap; 54 return m_kernelStateMap; 55 } 56 MEDIA_CLASS_DEFINE_END(CodechalDbgKernel__KernelStateMap) 57 }; 58 59 //Codec Kernel 60 static const char *kernelOlp = "Vc1Olp"; 61 static const char *kernelEncNormal = "MbEncNorm"; 62 static const char *kernelEncPerf = "MbEncPerf"; 63 static const char *kernelEncQuality = "MbEncQlty"; 64 static const char *kernelEncIFrameDist = "IFrameDist"; 65 static const char *kernel32xScaling = "32xScaling"; 66 static const char *kernel16xScaling = "16xScaling"; 67 static const char *kernel4xScaling = "4xScaling"; 68 static const char *kernel32xMe = "32xMe"; 69 static const char *kernel16xMe = "16xMe"; 70 static const char *kernel4xMe = "4xMe"; 71 static const char *kernelBrcInitReset = "BrcInitReset"; 72 static const char *kernelBrcUpdate = "BrcUpdate"; 73 static const char *kernel2xScaling = "2xScaling"; 74 static const char *kernelHevc32x32PuModeDecision = "HEVC_32x32_PU_MD"; 75 static const char *kernelHevc16x16PuSad = "HEVC_16x16_PU_SAD"; 76 static const char *kernelHevc16x16PuModeDecision = "HEVC_16x16_PU_MD"; 77 static const char *kernelHevc8x8Pu = "HEVC_8x8_PU_MD"; 78 static const char *kernelHevc8x8PuFMode = "HEVC_8x8_PU_FMODE"; 79 static const char *kernelHevc32x32BIntraCheck = "HEVC_32x32_B_INTRA_CHECK"; 80 static const char *kernelHevcBMbenc = "HEVC_B_MBENC"; 81 static const char *kernelHevcBPak = "HEVC_B_PAK"; 82 static const char *kernelHevcBrcLcuUpdate = "HEVC_LCU_BRCUpdate"; 83 static const char *kernelMeVdencStreamIn = "MeVDEncStreamIn"; 84 static const char *kernelVP9EncI32x32 = "VP9_I_32x32_MBENC"; 85 static const char *kernelVP9EncI16x16 = "VP9_I_16x16_MBENC"; 86 static const char *kernelVP9EncP = "VP9_P_MBENC"; 87 static const char *kernelVP9EncTx = "VP9_TX_MBENC"; 88 static const char *kernelVP9Dys = "VP9_DYS"; 89 static const char *kernelVP9PakLumaRecon = "VP9_I_MBPAK_LumaRecon"; 90 static const char *kernelVP9PakChromaRecon = "VP9_I_MBPAK_ChromaRecon"; 91 static const char *kernelVP9PakDeblockMask = "VP9_I_MBPAK_DeblockMask"; 92 static const char *kernelVP9PakLumaDeblock = "VP9_I_MBPAK_LumaDeblock"; 93 static const char *kernelVP9PakChromaDeblock = "VP9_I_MBPAK_ChromaDeblock"; 94 static const char *kernelVP9PakMcPred = "VP9_P_MbPak_McPred"; 95 static const char *kernelVP9PakPFrameLumaRecon = "VP9_P_MbPak_LumaRecon"; 96 static const char *kernelVP9PakPFrameLumaRecon32x32 = "VP9_P_MbPak_LumaRecon"; 97 static const char *kernelVP9PakPFrameChromaRecon = "VP9_P_MbPak_ChromaRecon"; 98 static const char *kernelVP9PakPFrameIntraLumaRecon = "VP9_Intra_P_MbPak_LumaRecon"; 99 static const char *kernelVP9PakPFrameIntraChromaRecon = "VP9_Intra_P_MbPak_ChromaRecon"; 100 static const char *kernelPreProc = "PreProc"; 101 static const char *kernelEncWP = "WP"; 102 static const char *kernelHevcIMbenc = "HEVC_I_MBENC"; 103 static const char *kernelCscDsCopy = "CSCDsCopy"; 104 static const char *kernel2x4xScaling = "2x_4xScaling"; 105 static const char *kernelHevcLcu64BMbenc = "HEVC_LCU64_B_MBENC"; 106 static const char *kernelMbBrcUpdate = "MbBrcUpdate"; 107 static const char *kernelStaticFrameDetection = "StaticFrameDetection"; 108 static const char *kernelHevcRoi = "HEVC_ROI"; 109 110 static bool regOlp = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_OLP, kernelOlp); 111 static bool regEncNormal = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ENC_NORMAL, kernelEncNormal); 112 static bool regEncQuality = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ENC_PERFORMANCE, kernelEncPerf); 113 static bool regEncPerf = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ENC_QUALITY, kernelEncQuality); 114 static bool regEncIFrameDist = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ENC_I_FRAME_DIST, kernelEncIFrameDist); 115 static bool reg32xScaling = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_32X_SCALING, kernel32xScaling); 116 static bool reg16xScaling = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_16X_SCALING, kernel16xScaling); 117 static bool reg4xScaling = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_4X_SCALING, kernel4xScaling); 118 static bool reg32xMe = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_32X_ME, kernel32xMe); 119 static bool reg16xMe = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_16X_ME, kernel16xMe); 120 static bool reg4xMe = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_4X_ME, kernel4xMe); 121 static bool regBrcInit = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_BRC_INIT_RESET, kernelBrcInitReset); 122 static bool regBrcUpdate = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_BRC_UPDATE, kernelBrcUpdate); 123 static bool reg2xScale = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_2X_SCALING, kernel2xScaling); 124 static bool regHevc32x32PuMode = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_32x32_PU_MODE_DECISION, kernelHevc32x32PuModeDecision); 125 static bool regHevc16x16PuSad = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_16x16_PU_SAD, kernelHevc16x16PuSad); 126 static bool regHevc16x16PuMode = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_16x16_PU_MODE_DECISION, kernelHevc16x16PuModeDecision); 127 static bool regHevc8x8Pu = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_8x8_PU, kernelHevc8x8Pu); 128 static bool regHevc8x8PuFMode = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_8x8_PU_FMODE, kernelHevc8x8PuFMode); 129 static bool regHevc32x32BIntraCheck = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_32x32_B_INTRA_CHECK, kernelHevc32x32BIntraCheck); 130 static bool regHevcBMben = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_B_MBENC, kernelHevcBMbenc); 131 static bool regHevcBPak = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_B_PAK, kernelHevcBPak); 132 static bool regHevcBrcLcuUpdate = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_BRC_LCU_UPDATE, kernelHevcBrcLcuUpdate); 133 static bool regMeVdencStreamIn = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ME_VDENC_STREAMIN, kernelMeVdencStreamIn); 134 static bool regVp9EncI32x32 = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_ENC_I_32x32, kernelVP9EncI32x32); 135 static bool regVp9EncI16x16 = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_ENC_I_16x16, kernelVP9EncI16x16); 136 static bool regVp9EncP = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_ENC_P, kernelVP9EncP); 137 static bool regVp9EncTx = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_ENC_TX, kernelVP9EncTx); 138 static bool regVp9Dys = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_DYS, kernelVP9Dys); 139 static bool regVp9PakLumaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_LUMA_RECON, kernelVP9PakLumaRecon); 140 static bool regVp9PakChromaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_CHROMA_RECON, kernelVP9PakChromaRecon); 141 static bool regVp9PakDeblockMask = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_DEBLOCK_MASK, kernelVP9PakDeblockMask); 142 static bool regVp9PakLumaDeblock = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_LUMA_DEBLOCK, kernelVP9PakLumaDeblock); 143 static bool regVp9PakChromaDeblock = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_CHROMA_DEBLOCK, kernelVP9PakChromaDeblock); 144 static bool regVp9PakMcPred = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_MC_PRED, kernelVP9PakMcPred); 145 static bool regVp9PakPFrameLumaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_P_FRAME_LUMA_RECON, kernelVP9PakPFrameLumaRecon); 146 static bool regVp9PakPFrameLumaRecon32x32 = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_P_FRAME_LUMA_RECON_32x32, kernelVP9PakPFrameLumaRecon32x32); 147 static bool regVp9PakPFrameChromaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_P_FRAME_CHROMA_RECON, kernelVP9PakPFrameChromaRecon); 148 static bool regVp9PakPFrameIntraLumaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_P_FRAME_INTRA_LUMA_RECON, kernelVP9PakPFrameIntraLumaRecon); 149 static bool regVp9PakPFrameIntraChromaRecon = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_VP9_PAK_P_FRAME_INTRA_CHROMA_RECON, kernelVP9PakPFrameIntraChromaRecon); 150 static bool regPreProc = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_PREPROC, kernelPreProc); 151 static bool regEncWP = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_ENC_WP, kernelEncWP); 152 static bool regHevcIMbenc = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_I_MBENC, kernelHevcIMbenc); 153 static bool regCscDsCopy = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_CSC_DS_COPY, kernelCscDsCopy); 154 static bool reg2x4xScaling = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_2X_4X_SCALING, kernel2x4xScaling); 155 static bool regHevcLcu64BMbenc = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_LCU64_B_MBENC, kernelHevcLcu64BMbenc); 156 static bool regMbBrcUpdate = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_MB_BRC_UPDATE, kernelMbBrcUpdate); 157 static bool regStaticFrameDetection = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_STATIC_FRAME_DETECTION, kernelStaticFrameDetection); 158 static bool regHevcRoi = KernelStateMap::RegisterKernelStr(CODECHAL_MEDIA_STATE_HEVC_ROI, kernelHevcRoi); 159 } // namespace CodechalDbgKernel 160 161 #endif