1*ba62d9d3SAndroid Build Coastguard Worker /* 2*ba62d9d3SAndroid Build Coastguard Worker * Copyright (c) 2017, Intel Corporation 3*ba62d9d3SAndroid Build Coastguard Worker * 4*ba62d9d3SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a 5*ba62d9d3SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the "Software"), 6*ba62d9d3SAndroid Build Coastguard Worker * to deal in the Software without restriction, including without limitation 7*ba62d9d3SAndroid Build Coastguard Worker * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8*ba62d9d3SAndroid Build Coastguard Worker * and/or sell copies of the Software, and to permit persons to whom the 9*ba62d9d3SAndroid Build Coastguard Worker * Software is furnished to do so, subject to the following conditions: 10*ba62d9d3SAndroid Build Coastguard Worker * 11*ba62d9d3SAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included 12*ba62d9d3SAndroid Build Coastguard Worker * in all copies or substantial portions of the Software. 13*ba62d9d3SAndroid Build Coastguard Worker * 14*ba62d9d3SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15*ba62d9d3SAndroid Build Coastguard Worker * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*ba62d9d3SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*ba62d9d3SAndroid Build Coastguard Worker * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18*ba62d9d3SAndroid Build Coastguard Worker * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19*ba62d9d3SAndroid Build Coastguard Worker * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20*ba62d9d3SAndroid Build Coastguard Worker * OTHER DEALINGS IN THE SOFTWARE. 21*ba62d9d3SAndroid Build Coastguard Worker */ 22*ba62d9d3SAndroid Build Coastguard Worker #ifndef CMRTLIB_AGNOSTIC_SHARE_CM_DEF_H_ 23*ba62d9d3SAndroid Build Coastguard Worker #define CMRTLIB_AGNOSTIC_SHARE_CM_DEF_H_ 24*ba62d9d3SAndroid Build Coastguard Worker 25*ba62d9d3SAndroid Build Coastguard Worker #include "cm_include.h" 26*ba62d9d3SAndroid Build Coastguard Worker #include "cm_def_os.h" 27*ba62d9d3SAndroid Build Coastguard Worker 28*ba62d9d3SAndroid Build Coastguard Worker //CM runtime version returning to user 29*ba62d9d3SAndroid Build Coastguard Worker #define CM_1_0 100 30*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_0 200 31*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_1 201 32*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_2 202 33*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_3 203 34*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_4 204 35*ba62d9d3SAndroid Build Coastguard Worker #define CM_3_0 300 36*ba62d9d3SAndroid Build Coastguard Worker #define CM_4_0 400 37*ba62d9d3SAndroid Build Coastguard Worker #define CM_5_0 500 38*ba62d9d3SAndroid Build Coastguard Worker #define CM_6_0 600 39*ba62d9d3SAndroid Build Coastguard Worker #define CM_7_0 700 40*ba62d9d3SAndroid Build Coastguard Worker #define CM_7_2 702 //for MDFRT API refreshment. 41*ba62d9d3SAndroid Build Coastguard Worker #define CURRENT_CM_VERSION (CM_7_2) 42*ba62d9d3SAndroid Build Coastguard Worker 43*ba62d9d3SAndroid Build Coastguard Worker //CM DDI version in UMD layer 44*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_1_0 100 45*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_1_1 101 46*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_1_2 102 47*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_1_3 103 48*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_1_4 104 49*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_2_0 200 50*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_2_1 201 51*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_2_2 202 52*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_2_3 203 53*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_2_4 204 54*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_3_0 300 55*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_4_0 400 56*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_5_0 500 57*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_6_0 600 58*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_7_0 700 59*ba62d9d3SAndroid Build Coastguard Worker #define CM_DDI_7_2 702 //for MDFRT API refreshment. 60*ba62d9d3SAndroid Build Coastguard Worker 61*ba62d9d3SAndroid Build Coastguard Worker //Error code definition 62*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_RETURN_CODE 63*ba62d9d3SAndroid Build Coastguard Worker { 64*ba62d9d3SAndroid Build Coastguard Worker CM_SUCCESS = 0, 65*ba62d9d3SAndroid Build Coastguard Worker /* 66*ba62d9d3SAndroid Build Coastguard Worker * RANGE -1 ~ -9999 FOR EXTERNAL ERROR CODE 67*ba62d9d3SAndroid Build Coastguard Worker */ 68*ba62d9d3SAndroid Build Coastguard Worker CM_FAILURE = -1, 69*ba62d9d3SAndroid Build Coastguard Worker CM_NOT_IMPLEMENTED = -2, 70*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_ALLOCATION_FAILURE = -3, 71*ba62d9d3SAndroid Build Coastguard Worker CM_OUT_OF_HOST_MEMORY = -4, 72*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_FORMAT_NOT_SUPPORTED = -5, 73*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_SURFACE_AMOUNT = -6, 74*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_KERNEL_ARG_AMOUNT = -7, 75*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_KERNEL_ARG_SIZE_IN_BYTE = -8, 76*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_INDEX = -9, 77*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_VALUE = -10, 78*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_SIZE = -11, 79*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_INDEX = -12, 80*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_WIDTH = -13, 81*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_HEIGHT = -14, 82*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_DEPTH = -15, 83*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_COMMON_ISA = -16, 84*ba62d9d3SAndroid Build Coastguard Worker CM_OPEN_VIDEO_DEVICE_FAILURE = -17, 85*ba62d9d3SAndroid Build Coastguard Worker CM_VIDEO_DEVICE_LOCKED = -18, // Video device is already locked. 86*ba62d9d3SAndroid Build Coastguard Worker CM_LOCK_VIDEO_DEVICE_FAILURE = -19, // Video device is not locked but can't be locked. 87*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_SAMPLER_AMOUNT = -20, 88*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_KERNEL_PER_ENQUEUE = -21, 89*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_KERNEL_SIZE_IN_BYTE = -22, 90*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_THREAD_AMOUNT_PER_ENQUEUE = -23, 91*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_VME_STATE_G6_AMOUNT = -24, 92*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_SPACE = -25, 93*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_TIMEOUT = -26, 94*ba62d9d3SAndroid Build Coastguard Worker CM_JITDLL_LOAD_FAILURE = -27, 95*ba62d9d3SAndroid Build Coastguard Worker CM_JIT_COMPILE_FAILURE = -28, 96*ba62d9d3SAndroid Build Coastguard Worker CM_JIT_COMPILESIM_FAILURE = -29, 97*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_GROUP_SPACE = -30, 98*ba62d9d3SAndroid Build Coastguard Worker CM_THREAD_ARG_NOT_ALLOWED = -31, 99*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GLOBAL_BUFFER_INDEX = -32, 100*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_BUFFER_HANDLER = -33, 101*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_SLM_SIZE = -34, 102*ba62d9d3SAndroid Build Coastguard Worker CM_JITDLL_OLDER_THAN_ISA = -35, 103*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_HARDWARE_THREAD_NUMBER = -36, 104*ba62d9d3SAndroid Build Coastguard Worker CM_GTPIN_INVOKE_FAILURE = -37, 105*ba62d9d3SAndroid Build Coastguard Worker CM_INVALIDE_L3_CONFIGURATION = -38, 106*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_TEXTURE2D_USAGE = -39, 107*ba62d9d3SAndroid Build Coastguard Worker CM_INTEL_GFX_NOTFOUND = -40, 108*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SYSMEM = -41, 109*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_WIDTH = -42, 110*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_STRIDE = -43, 111*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_DRIVEN_FAILURE = -44, 112*ba62d9d3SAndroid Build Coastguard Worker CM_LOCK_SURFACE_FAIL = -45, // Lock surface failed 113*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GENX_BINARY = -46, 114*ba62d9d3SAndroid Build Coastguard Worker CM_FEATURE_NOT_SUPPORTED_IN_DRIVER = -47, // driver out-of-sync 115*ba62d9d3SAndroid Build Coastguard Worker CM_QUERY_DLL_VERSION_FAILURE = -48, //Fail in getting DLL file version 116*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_PERTHREADARG_MUTEX_FAIL = -49, 117*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_PERKERNELARG_MUTEX_FAIL = -50, 118*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SETTING_FAILURE = -51, 119*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SURFACE_INVALID_BTINDEX = -52, 120*ba62d9d3SAndroid Build Coastguard Worker CM_NOT_SET_KERNEL_ARGUMENT = -53, 121*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SURFACES = -54, 122*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SIZE = -55, 123*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_OUT_OF_RESOURCE = -56, 124*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VIDEO_DEVICE = -57, 125*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_DELAY_DESTROY = -58, 126*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VEBOX_STATE = -59, 127*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VEBOX_SURFACE = -60, 128*ba62d9d3SAndroid Build Coastguard Worker CM_FEATURE_NOT_SUPPORTED_BY_HARDWARE = -61, 129*ba62d9d3SAndroid Build Coastguard Worker CM_RESOURCE_USAGE_NOT_SUPPORT_READWRITE = -62, 130*ba62d9d3SAndroid Build Coastguard Worker CM_MULTIPLE_MIPLEVELS_NOT_SUPPORTED = -63, 131*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_UMD_CONTEXT = -64, 132*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_LIBVA_SURFACE = -65, 133*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_LIBVA_INITIALIZE = -66, 134*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_NOT_SET = -67, 135*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_THREADSPACE = -68, 136*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_THREADS_NOT_ASSOCIATED= -69, 137*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_INTEGRITY_FAILED = -70, 138*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_USERPROVIDED_GENBINARY = -71, 139*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PRIVATE_DATA = -72, 140*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_MOS_RESOURCE_HANDLE = -73, 141*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_CACHED = -74, 142*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_IN_USE = -75, 143*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GPUCOPY_KERNEL = -76, 144*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_DEPENDENCY_WITH_WALKING_PATTERN = -77, 145*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_MEDIA_WALKING_PATTERN = -78, 146*ba62d9d3SAndroid Build Coastguard Worker CM_FAILED_TO_ALLOCATE_SVM_BUFFER = -79, 147*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_POWER_OPTION_FOR_PLATFORM = -80, 148*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_THREADGROUPSPACE = -81, 149*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_SPILL_CODE = -82, 150*ba62d9d3SAndroid Build Coastguard Worker CM_UMD_DRIVER_NOT_SUPPORTED = -83, 151*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GPU_FREQUENCY_VALUE = -84, 152*ba62d9d3SAndroid Build Coastguard Worker CM_SYSTEM_MEMORY_NOT_4KPAGE_ALIGNED = -85, 153*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_ARG_SETTING_FAILED = -86, 154*ba62d9d3SAndroid Build Coastguard Worker CM_NO_AVAILABLE_SURFACE = -87, 155*ba62d9d3SAndroid Build Coastguard Worker CM_VA_SURFACE_NOT_SUPPORTED = -88, 156*ba62d9d3SAndroid Build Coastguard Worker CM_TOO_MUCH_THREADS = -89, 157*ba62d9d3SAndroid Build Coastguard Worker CM_NULL_POINTER = -90, 158*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_NUM_2D_ALIASES = -91, 159*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PARAM_SIZE = -92, 160*ba62d9d3SAndroid Build Coastguard Worker CM_GT_UNSUPPORTED = -93, 161*ba62d9d3SAndroid Build Coastguard Worker CM_GTPIN_FLAG_NO_LONGER_SUPPORTED = -94, 162*ba62d9d3SAndroid Build Coastguard Worker CM_PLATFORM_UNSUPPORTED_FOR_API = -95, 163*ba62d9d3SAndroid Build Coastguard Worker CM_TASK_MEDIA_RESET = -96, 164*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SAMPLER_INVALID_BTINDEX = -97, 165*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_NUM_BUFFER_ALIASES = -98, 166*ba62d9d3SAndroid Build Coastguard Worker CM_SYSTEM_MEMORY_NOT_4PIXELS_ALIGNED = -99, 167*ba62d9d3SAndroid Build Coastguard Worker CM_FAILED_TO_CREATE_CURBE_SURFACE = -100, 168*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_CAP_NAME = -101, 169*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PARAM_FOR_CREATE_QUEUE_EX = -102, 170*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_CREATE_OPTION_FOR_BUFFER_STATELESS = -103, 171*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_ARG_POINTER = -104, 172*ba62d9d3SAndroid Build Coastguard Worker CM_LOAD_LIBRARY_FAILED = -105, 173*ba62d9d3SAndroid Build Coastguard Worker CM_NO_SUPPORTED_ADAPTER = -106, 174*ba62d9d3SAndroid Build Coastguard Worker 175*ba62d9d3SAndroid Build Coastguard Worker /* 176*ba62d9d3SAndroid Build Coastguard Worker * RANGE -10000 ~ -19999 FOR INTERNAL ERROR CODE 177*ba62d9d3SAndroid Build Coastguard Worker */ 178*ba62d9d3SAndroid Build Coastguard Worker CM_INTERNAL_ERROR_CODE_OFFSET = -10000, 179*ba62d9d3SAndroid Build Coastguard Worker 180*ba62d9d3SAndroid Build Coastguard Worker /* 181*ba62d9d3SAndroid Build Coastguard Worker * RANGE <=-20000 AREAD FOR MOST STATUS CONVERSION 182*ba62d9d3SAndroid Build Coastguard Worker */ 183*ba62d9d3SAndroid Build Coastguard Worker CM_MOS_STATUS_CONVERTED_CODE_OFFSET = -20000 184*ba62d9d3SAndroid Build Coastguard Worker } CM_RETURN_CODE; 185*ba62d9d3SAndroid Build Coastguard Worker 186*ba62d9d3SAndroid Build Coastguard Worker #define __CODEGEN_UNIQUE(name) _NAME_LABEL_(name, __LINE__) 187*ba62d9d3SAndroid Build Coastguard Worker #define BITFIELD_RANGE( startbit, endbit ) ((endbit)-(startbit)+1) 188*ba62d9d3SAndroid Build Coastguard Worker #define BITFIELD_BIT(bit) 1 189*ba62d9d3SAndroid Build Coastguard Worker 190*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_WIDTH 1 191*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_HEIGHT 1 192*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_DEPTH 2 193*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_1D_SURF_WIDTH 0x80000000 // 2^31 2 GB 194*ba62d9d3SAndroid Build Coastguard Worker 195*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_WIDTH 2048 196*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_HEIGHT 2048 197*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_DEPTH 2048 198*ba62d9d3SAndroid Build Coastguard Worker 199*ba62d9d3SAndroid Build Coastguard Worker // hard ceiling 200*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_OPTION_SIZE_IN_BYTE 512 201*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_KERNEL_NAME_SIZE_IN_BYTE 256 202*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_ISA_FILE_NAME_SIZE_IN_BYTE 256 203*ba62d9d3SAndroid Build Coastguard Worker 204*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_GFX_MEM 0 205*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_SYS_MEM 1 206*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_DEGAULT CM_BUFFER_STATELESS_CREATE_OPTION_GFX_MEM 207*ba62d9d3SAndroid Build Coastguard Worker 208*ba62d9d3SAndroid Build Coastguard Worker struct CM_HAL_MAX_VALUES 209*ba62d9d3SAndroid Build Coastguard Worker { 210*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxTasks; // [in] Max Tasks 211*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxKernelsPerTask; // [in] Max kernels per task 212*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxKernelBinarySize; // [in] Max kernel binary size 213*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxSpillSizePerHwThread; // [in] Max spill size per thread 214*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxSamplerTableSize; // [in] Max sampler table size 215*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxBufferTableSize; // [in] Buffer table Size 216*ba62d9d3SAndroid Build Coastguard Worker uint32_t max2DSurfaceTableSize; // [in] Buffer table Size 217*ba62d9d3SAndroid Build Coastguard Worker uint32_t max3DSurfaceTableSize; // [in] Buffer table Size 218*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxArgsPerKernel; // [in] Max arguments per kernel 219*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxArgByteSizePerKernel; // [in] Max argument size in byte per kernel 220*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxSurfacesPerKernel; // [in] Max Surfaces Per Kernel 221*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxSamplersPerKernel; // [in] Max Samplers per kernel 222*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxHwThreads; // [in] Max HW threads 223*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxUserThreadsPerTask; // [in] Max user threads per task 224*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxUserThreadsPerTaskNoThreadArg; // [in] Max user threads per task without a thread arg 225*ba62d9d3SAndroid Build Coastguard Worker }; 226*ba62d9d3SAndroid Build Coastguard Worker typedef CM_HAL_MAX_VALUES *PCM_HAL_MAX_VALUES; 227*ba62d9d3SAndroid Build Coastguard Worker 228*ba62d9d3SAndroid Build Coastguard Worker //--------------------------------------------------------------------------- 229*ba62d9d3SAndroid Build Coastguard Worker //! HAL CM Max Values extention which has more entries which are not included 230*ba62d9d3SAndroid Build Coastguard Worker //! in CM_HAL_MAX_VALUES 231*ba62d9d3SAndroid Build Coastguard Worker //--------------------------------------------------------------------------- 232*ba62d9d3SAndroid Build Coastguard Worker struct CM_HAL_MAX_VALUES_EX 233*ba62d9d3SAndroid Build Coastguard Worker { 234*ba62d9d3SAndroid Build Coastguard Worker uint32_t max2DUPSurfaceTableSize; // [in] Max 2D UP surface table Size 235*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxSampler8x8TableSize; // [in] Max sampler 8x8 table size 236*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxCURBESizePerKernel; // [in] Max CURBE size per kernel 237*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxCURBESizePerTask; // [in] Max CURBE size per task 238*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxIndirectDataSizePerKernel; // [in] Max indirect data size per kernel 239*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxUserThreadsPerMediaWalker; // [in] Max user threads per media walker 240*ba62d9d3SAndroid Build Coastguard Worker uint32_t maxUserThreadsPerThreadGroup; // [in] Max user threads per thread group 241*ba62d9d3SAndroid Build Coastguard Worker }; 242*ba62d9d3SAndroid Build Coastguard Worker typedef CM_HAL_MAX_VALUES_EX *PCM_HAL_MAX_VALUES_EX; 243*ba62d9d3SAndroid Build Coastguard Worker 244*ba62d9d3SAndroid Build Coastguard Worker class CLock 245*ba62d9d3SAndroid Build Coastguard Worker { 246*ba62d9d3SAndroid Build Coastguard Worker public: CLock(CSync & refSync)247*ba62d9d3SAndroid Build Coastguard Worker CLock(CSync &refSync) : m_refSync(refSync) { Lock(); } ~CLock()248*ba62d9d3SAndroid Build Coastguard Worker ~CLock() { Unlock(); } 249*ba62d9d3SAndroid Build Coastguard Worker 250*ba62d9d3SAndroid Build Coastguard Worker private: 251*ba62d9d3SAndroid Build Coastguard Worker CSync &m_refSync; // Synchronization object 252*ba62d9d3SAndroid Build Coastguard Worker 253*ba62d9d3SAndroid Build Coastguard Worker CLock(const CLock &refcSource); 254*ba62d9d3SAndroid Build Coastguard Worker CLock &operator=(const CLock &refcSource); Lock()255*ba62d9d3SAndroid Build Coastguard Worker void Lock() { m_refSync.Acquire(); } Unlock()256*ba62d9d3SAndroid Build Coastguard Worker void Unlock() { m_refSync.Release(); } 257*ba62d9d3SAndroid Build Coastguard Worker }; 258*ba62d9d3SAndroid Build Coastguard Worker 259*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SAMPLER_STATE 260*ba62d9d3SAndroid Build Coastguard Worker { 261*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE minFilterType; 262*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE magFilterType; 263*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressU; 264*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressV; 265*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressW; 266*ba62d9d3SAndroid Build Coastguard Worker } CM_SAMPLER_STATE; 267*ba62d9d3SAndroid Build Coastguard Worker 268*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_PIXEL_TYPE 269*ba62d9d3SAndroid Build Coastguard Worker { 270*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_UINT, 271*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_SINT, 272*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_OTHER 273*ba62d9d3SAndroid Build Coastguard Worker } CM_PIXEL_TYPE; 274*ba62d9d3SAndroid Build Coastguard Worker 275*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SAMPLER_STATE_EX 276*ba62d9d3SAndroid Build Coastguard Worker { 277*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE minFilterType; 278*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE magFilterType; 279*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressU; 280*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressV; 281*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressW; 282*ba62d9d3SAndroid Build Coastguard Worker 283*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_TYPE surfaceFormat; 284*ba62d9d3SAndroid Build Coastguard Worker union 285*ba62d9d3SAndroid Build Coastguard Worker { 286*ba62d9d3SAndroid Build Coastguard Worker uint32_t borderColorRedU; 287*ba62d9d3SAndroid Build Coastguard Worker int32_t borderColorRedS; 288*ba62d9d3SAndroid Build Coastguard Worker float borderColorRedF; 289*ba62d9d3SAndroid Build Coastguard Worker }; 290*ba62d9d3SAndroid Build Coastguard Worker union 291*ba62d9d3SAndroid Build Coastguard Worker { 292*ba62d9d3SAndroid Build Coastguard Worker uint32_t borderColorGreenU; 293*ba62d9d3SAndroid Build Coastguard Worker int32_t borderColorGreenS; 294*ba62d9d3SAndroid Build Coastguard Worker float borderColorGreenF; 295*ba62d9d3SAndroid Build Coastguard Worker }; 296*ba62d9d3SAndroid Build Coastguard Worker union 297*ba62d9d3SAndroid Build Coastguard Worker { 298*ba62d9d3SAndroid Build Coastguard Worker uint32_t borderColorBlueU; 299*ba62d9d3SAndroid Build Coastguard Worker int32_t borderColorBlueS; 300*ba62d9d3SAndroid Build Coastguard Worker float borderColorBlueF; 301*ba62d9d3SAndroid Build Coastguard Worker }; 302*ba62d9d3SAndroid Build Coastguard Worker union 303*ba62d9d3SAndroid Build Coastguard Worker { 304*ba62d9d3SAndroid Build Coastguard Worker uint32_t borderColorAlphaU; 305*ba62d9d3SAndroid Build Coastguard Worker int32_t borderColorAlphaS; 306*ba62d9d3SAndroid Build Coastguard Worker float borderColorAlphaF; 307*ba62d9d3SAndroid Build Coastguard Worker }; 308*ba62d9d3SAndroid Build Coastguard Worker } CM_SAMPLER_STATE_EX; 309*ba62d9d3SAndroid Build Coastguard Worker 310*ba62d9d3SAndroid Build Coastguard Worker //struct used by both CmDevice and CmSampler8x8 311*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_COEFF_TABLE 312*ba62d9d3SAndroid Build Coastguard Worker { 313*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_0; 314*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_1; 315*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_2; 316*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_3; 317*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_4; 318*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_5; 319*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_6; 320*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_7; 321*ba62d9d3SAndroid Build Coastguard Worker } CM_AVS_COEFF_TABLE; 322*ba62d9d3SAndroid Build Coastguard Worker 323*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_COEFF_ROWS 17 324*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_COEFF_ROWS_SKL 32 325*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_NONPIPLINED_STATE 326*ba62d9d3SAndroid Build Coastguard Worker { 327*ba62d9d3SAndroid Build Coastguard Worker bool bypassXAF; 328*ba62d9d3SAndroid Build Coastguard Worker bool bypassYAF; 329*ba62d9d3SAndroid Build Coastguard Worker uint8_t defaultSharpLvl; 330*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxDerivative4Pixels; 331*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxDerivative8Pixels; 332*ba62d9d3SAndroid Build Coastguard Worker uint8_t transitionArea4Pixels; 333*ba62d9d3SAndroid Build Coastguard Worker uint8_t transitionArea8Pixels; 334*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl0X[ CM_NUM_COEFF_ROWS_SKL ]; 335*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl0Y[ CM_NUM_COEFF_ROWS_SKL ]; 336*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl1X[ CM_NUM_COEFF_ROWS_SKL ]; 337*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl1Y[ CM_NUM_COEFF_ROWS_SKL ]; 338*ba62d9d3SAndroid Build Coastguard Worker bool enableRgbAdaptive; 339*ba62d9d3SAndroid Build Coastguard Worker bool adaptiveFilterAllChannels; 340*ba62d9d3SAndroid Build Coastguard Worker } CM_AVS_NONPIPLINED_STATE; 341*ba62d9d3SAndroid Build Coastguard Worker 342*ba62d9d3SAndroid Build Coastguard Worker enum CM_SAMPLER_STATE_TYPE { 343*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_AVS = 0, 344*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV = 1, 345*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_MISC = 3, 346*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV1DH = 4, 347*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV1DV = 5, 348*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_AVS_EX = 6, 349*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_NONE 350*ba62d9d3SAndroid Build Coastguard Worker }; 351*ba62d9d3SAndroid Build Coastguard Worker 352*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_STATE_MSG 353*ba62d9d3SAndroid Build Coastguard Worker { 354*ba62d9d3SAndroid Build Coastguard Worker bool avsType; //true nearest, false adaptive 355*ba62d9d3SAndroid Build Coastguard Worker bool eightTapAFEnable; //HSW+ 356*ba62d9d3SAndroid Build Coastguard Worker bool bypassIEF; //ignored for BWL, moved to sampler8x8 payload. 357*ba62d9d3SAndroid Build Coastguard Worker bool shuffleOutputWriteback; //SKL mode only to be set when AVS msg sequence is 4x4 or 8x4 358*ba62d9d3SAndroid Build Coastguard Worker bool hdcDirectWriteEnable; 359*ba62d9d3SAndroid Build Coastguard Worker unsigned short gainFactor; 360*ba62d9d3SAndroid Build Coastguard Worker unsigned char globalNoiseEstm; 361*ba62d9d3SAndroid Build Coastguard Worker unsigned char strongEdgeThr; 362*ba62d9d3SAndroid Build Coastguard Worker unsigned char weakEdgeThr; 363*ba62d9d3SAndroid Build Coastguard Worker unsigned char strongEdgeWght; 364*ba62d9d3SAndroid Build Coastguard Worker unsigned char regularWght; 365*ba62d9d3SAndroid Build Coastguard Worker unsigned char nonEdgeWght; 366*ba62d9d3SAndroid Build Coastguard Worker unsigned short r3xCoefficient; 367*ba62d9d3SAndroid Build Coastguard Worker unsigned short r3cCoefficient; 368*ba62d9d3SAndroid Build Coastguard Worker unsigned short r5xCoefficient; 369*ba62d9d3SAndroid Build Coastguard Worker unsigned short r5cxCoefficient; 370*ba62d9d3SAndroid Build Coastguard Worker unsigned short r5cCoefficient; 371*ba62d9d3SAndroid Build Coastguard Worker //For Non-piplined states 372*ba62d9d3SAndroid Build Coastguard Worker unsigned short stateID; 373*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_NONPIPLINED_STATE * avsState; 374*ba62d9d3SAndroid Build Coastguard Worker } CM_AVS_STATE_MSG; 375*ba62d9d3SAndroid Build Coastguard Worker 376*ba62d9d3SAndroid Build Coastguard Worker //*----------------------------------------------------------------------------- 377*ba62d9d3SAndroid Build Coastguard Worker //| CM Convolve type for SKL+ 378*ba62d9d3SAndroid Build Coastguard Worker //*----------------------------------------------------------------------------- 379*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_CONVOLVE_SKL_TYPE 380*ba62d9d3SAndroid Build Coastguard Worker { 381*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_2D = 0, 382*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_1D = 1, 383*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_1P = 2 384*ba62d9d3SAndroid Build Coastguard Worker } CM_CONVOLVE_SKL_TYPE; 385*ba62d9d3SAndroid Build Coastguard Worker 386*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_CONVOLVE_COEFF_TABLE 387*ba62d9d3SAndroid Build Coastguard Worker { 388*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_0; 389*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_1; 390*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_2; 391*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_3; 392*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_4; 393*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_5; 394*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_6; 395*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_7; 396*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_8; 397*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_9; 398*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_10; 399*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_11; 400*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_12; 401*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_13; 402*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_14; 403*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_15; 404*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_16; 405*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_17; 406*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_18; 407*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_19; 408*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_20; 409*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_21; 410*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_22; 411*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_23; 412*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_24; 413*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_25; 414*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_26; 415*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_27; 416*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_28; 417*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_29; 418*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_30; 419*ba62d9d3SAndroid Build Coastguard Worker float filterCoeff_0_31; 420*ba62d9d3SAndroid Build Coastguard Worker } CM_CONVOLVE_COEFF_TABLE; 421*ba62d9d3SAndroid Build Coastguard Worker 422*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_CONVOLVE_ROWS 16 423*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_CONVOLVE_ROWS_SKL 32 424*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_CONVOLVE_STATE_MSG 425*ba62d9d3SAndroid Build Coastguard Worker { 426*ba62d9d3SAndroid Build Coastguard Worker bool coeffSize; //true 16-bit, false 8-bit 427*ba62d9d3SAndroid Build Coastguard Worker int8_t sclDwnValue; //Scale down value 428*ba62d9d3SAndroid Build Coastguard Worker int8_t width; //Kernel Width 429*ba62d9d3SAndroid Build Coastguard Worker int8_t height; //Kernel Height 430*ba62d9d3SAndroid Build Coastguard Worker //SKL mode 431*ba62d9d3SAndroid Build Coastguard Worker bool isVertical32Mode; 432*ba62d9d3SAndroid Build Coastguard Worker bool isHorizontal32Mode; 433*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE nConvolveType; 434*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_COEFF_TABLE table[CM_NUM_CONVOLVE_ROWS_SKL]; 435*ba62d9d3SAndroid Build Coastguard Worker } CM_CONVOLVE_STATE_MSG; 436*ba62d9d3SAndroid Build Coastguard Worker 437*ba62d9d3SAndroid Build Coastguard Worker struct CM_AVS_STATE_MSG_EX 438*ba62d9d3SAndroid Build Coastguard Worker { 439*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API CM_AVS_STATE_MSG_EX(); 440*ba62d9d3SAndroid Build Coastguard Worker 441*ba62d9d3SAndroid Build Coastguard Worker bool enableAllChannelAdaptiveFilter; // adaptive filter for all channels. validValues => [true..false] 442*ba62d9d3SAndroid Build Coastguard Worker bool enableRgbAdaptiveFilter; // adaptive filter for all channels. validValues => [true..false] 443*ba62d9d3SAndroid Build Coastguard Worker bool enable8TapAdaptiveFilter; // enable 8-tap filter. validValues => [true..false] 444*ba62d9d3SAndroid Build Coastguard Worker bool enableUV8TapFilter; // enable 8-tap filter on UV/RB channels. validValues => [true..false] 445*ba62d9d3SAndroid Build Coastguard Worker bool writebackFormat; // true sampleunorm, false standard. validValues => [true..false] 446*ba62d9d3SAndroid Build Coastguard Worker bool writebackMode; // true avs, false ief. validValues => [true..false] 447*ba62d9d3SAndroid Build Coastguard Worker uint8_t stateSelection; // 0=>first,1=>second scaler8x8 state. validValues => [0..1] 448*ba62d9d3SAndroid Build Coastguard Worker 449*ba62d9d3SAndroid Build Coastguard Worker // Image enhancement filter settings. 450*ba62d9d3SAndroid Build Coastguard Worker bool enableIef; // image enhancement filter enable. validValues => [true..false] 451*ba62d9d3SAndroid Build Coastguard Worker bool iefType; // true "basic" or false "advanced". validValues => [true..false] 452*ba62d9d3SAndroid Build Coastguard Worker bool enableIefSmooth; // true based on 3x3, false based on 5x5 validValues => [true..false] 453*ba62d9d3SAndroid Build Coastguard Worker float r3cCoefficient; // smoothing coeffient. Valid values => [0.0..0.96875] 454*ba62d9d3SAndroid Build Coastguard Worker float r3xCoefficient; // smoothing coeffient. Valid values => [0.0..0.96875] 455*ba62d9d3SAndroid Build Coastguard Worker float r5cCoefficient; // smoothing coeffient. validValues => [0.0..0.96875] 456*ba62d9d3SAndroid Build Coastguard Worker float r5cxCoefficient; // smoothing coeffient. validValues => [0.0..0.96875] 457*ba62d9d3SAndroid Build Coastguard Worker float r5xCoefficient; // smoothing coeffient. validValues => [0.0..0.96875] 458*ba62d9d3SAndroid Build Coastguard Worker 459*ba62d9d3SAndroid Build Coastguard Worker // Edge processing settings. 460*ba62d9d3SAndroid Build Coastguard Worker uint8_t strongEdgeThreshold; // validValues => [0..64] 461*ba62d9d3SAndroid Build Coastguard Worker uint8_t strongEdgeWeight; // Sharpening strength when a strong edge. validValues => [0..7] 462*ba62d9d3SAndroid Build Coastguard Worker uint8_t weakEdgeThreshold; // validValues => [0..64] 463*ba62d9d3SAndroid Build Coastguard Worker uint8_t regularEdgeWeight; // Sharpening strength when a weak edge. validValues => [0..7] 464*ba62d9d3SAndroid Build Coastguard Worker uint8_t nonEdgeWeight; // Sharpening strength when no edge. validValues => [0..7] 465*ba62d9d3SAndroid Build Coastguard Worker 466*ba62d9d3SAndroid Build Coastguard Worker // Chroma key. 467*ba62d9d3SAndroid Build Coastguard Worker bool enableChromaKey; // Chroma keying be performed. validValues => [true..false] 468*ba62d9d3SAndroid Build Coastguard Worker uint8_t chromaKeyIndex; // ChromaKey Table entry. validValues => [0..3] 469*ba62d9d3SAndroid Build Coastguard Worker 470*ba62d9d3SAndroid Build Coastguard Worker // Skin tone settings. 471*ba62d9d3SAndroid Build Coastguard Worker bool enableSkinTone; // SkinToneTunedIEF_Enable. validValues => [true..false] 472*ba62d9d3SAndroid Build Coastguard Worker bool enableVySkinToneDetection; // Enables STD in the VY subspace. validValues => [true..false] 473*ba62d9d3SAndroid Build Coastguard Worker bool skinDetailFactor; // validValues => [true..false] 474*ba62d9d3SAndroid Build Coastguard Worker uint8_t skinTypesMargin; // validValues => [0..255] 475*ba62d9d3SAndroid Build Coastguard Worker uint8_t skinTypesThreshold; // validValues => [0..255] 476*ba62d9d3SAndroid Build Coastguard Worker 477*ba62d9d3SAndroid Build Coastguard Worker // Miscellaneous settings. 478*ba62d9d3SAndroid Build Coastguard Worker uint8_t gainFactor; // validValues => [0..63] 479*ba62d9d3SAndroid Build Coastguard Worker uint8_t globalNoiseEstimation; // validValues => [0..255] 480*ba62d9d3SAndroid Build Coastguard Worker bool mrBoost; // validValues => [true..false] 481*ba62d9d3SAndroid Build Coastguard Worker uint8_t mrSmoothThreshold; // validValues => [0..3] 482*ba62d9d3SAndroid Build Coastguard Worker uint8_t mrThreshold; 483*ba62d9d3SAndroid Build Coastguard Worker bool steepnessBoost; // validValues => [true..false] 484*ba62d9d3SAndroid Build Coastguard Worker uint8_t steepnessThreshold; // validValues => [0..15] 485*ba62d9d3SAndroid Build Coastguard Worker bool textureCoordinateMode; // true: clamp, false: mirror. validValues => [true..false] 486*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxHue; // Rectangle half width. validValued => [0..63] 487*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxSaturation; // Rectangle half length. validValued => [0..63] 488*ba62d9d3SAndroid Build Coastguard Worker int angles; // validValued => [0..360] 489*ba62d9d3SAndroid Build Coastguard Worker uint8_t diamondMargin ; // validValues => [0..7] 490*ba62d9d3SAndroid Build Coastguard Worker char diamondDu; // Rhombus center shift in the sat-direction. validValues => [-64..63] 491*ba62d9d3SAndroid Build Coastguard Worker char diamondDv; // Rhombus center shift in the hue-direction. validValues => [-64..63] 492*ba62d9d3SAndroid Build Coastguard Worker float diamondAlpha; // validValues => [0.0..4.0] 493*ba62d9d3SAndroid Build Coastguard Worker uint8_t diamondThreshold; // validValues => [0..63] 494*ba62d9d3SAndroid Build Coastguard Worker uint8_t rectangleMargin; // validValues => [0..7] 495*ba62d9d3SAndroid Build Coastguard Worker uint8_t rectangleMidpoint[2]; // validValues => [[0..255, 0..255]] 496*ba62d9d3SAndroid Build Coastguard Worker float vyInverseMargin[2]; // validValues => [[0.0..1.0, 0.0..1.0]] 497*ba62d9d3SAndroid Build Coastguard Worker 498*ba62d9d3SAndroid Build Coastguard Worker // Piecewise linear function settings. 499*ba62d9d3SAndroid Build Coastguard Worker uint8_t piecewiseLinearYPoints[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 500*ba62d9d3SAndroid Build Coastguard Worker float piecewiseLinearYSlopes[2]; // validValues => [[-4.0...4.0, -4.0...4.0]] 501*ba62d9d3SAndroid Build Coastguard Worker uint8_t piecewiseLinearPointsLower[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 502*ba62d9d3SAndroid Build Coastguard Worker uint8_t piecewiseLinearPointsUpper[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 503*ba62d9d3SAndroid Build Coastguard Worker float piecewiseLinearSlopesLower[4]; // validValues => [[-4.0...4.0, -4.0...4.0, -4.0...4.0, -4.0...4.0]] 504*ba62d9d3SAndroid Build Coastguard Worker float piecewiseLinearSlopesUpper[4]; // validValues => [[-4.0...4.0, -4.0...4.0, -4.0...4.0, -4.0...4.0]] 505*ba62d9d3SAndroid Build Coastguard Worker uint8_t piecewiseLinearBiasesLower[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 506*ba62d9d3SAndroid Build Coastguard Worker uint8_t piecewiseLinearBiasesUpper[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 507*ba62d9d3SAndroid Build Coastguard Worker 508*ba62d9d3SAndroid Build Coastguard Worker // AVS non-pipelined states. 509*ba62d9d3SAndroid Build Coastguard Worker uint8_t defaultSharpnessLevel; // default coefficient between smooth and sharp filtering. validValues => [0..255] 510*ba62d9d3SAndroid Build Coastguard Worker bool enableXAdaptiveFilter; // validValues => [true, false] 511*ba62d9d3SAndroid Build Coastguard Worker bool enableYAdaptiveFilter; // validValues => [true, false] 512*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxDerivative4Pixels; // lower boundary of the smooth 4 pixel area. validValues => [0..255] 513*ba62d9d3SAndroid Build Coastguard Worker uint8_t maxDerivative8Pixels; // lower boundary of the smooth 8 pixel area. validValues => [0..255] 514*ba62d9d3SAndroid Build Coastguard Worker uint8_t transitionArea4Pixels; // used in adaptive filtering to specify the width of the transition area for the 4 pixel calculation. validValues => [0..8] 515*ba62d9d3SAndroid Build Coastguard Worker uint8_t transitionArea8Pixels; // Used in adaptive filtering to specify the width of the transition area for the 8 pixel calculation. validValues => [0..8] 516*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table0X[CM_NUM_COEFF_ROWS_SKL]; 517*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table0Y[CM_NUM_COEFF_ROWS_SKL]; 518*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table1X[CM_NUM_COEFF_ROWS_SKL]; 519*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table1Y[CM_NUM_COEFF_ROWS_SKL]; 520*ba62d9d3SAndroid Build Coastguard Worker }; 521*ba62d9d3SAndroid Build Coastguard Worker 522*ba62d9d3SAndroid Build Coastguard Worker /* 523*ba62d9d3SAndroid Build Coastguard Worker * MISC SAMPLER8x8 State 524*ba62d9d3SAndroid Build Coastguard Worker */ 525*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_MISC_STATE 526*ba62d9d3SAndroid Build Coastguard Worker { 527*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 1 528*ba62d9d3SAndroid Build Coastguard Worker union 529*ba62d9d3SAndroid Build Coastguard Worker { 530*ba62d9d3SAndroid Build Coastguard Worker struct 531*ba62d9d3SAndroid Build Coastguard Worker { 532*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row0 : 16; 533*ba62d9d3SAndroid Build Coastguard Worker uint32_t Reserved : 8; 534*ba62d9d3SAndroid Build Coastguard Worker uint32_t Width : 4; 535*ba62d9d3SAndroid Build Coastguard Worker uint32_t Height : 4; 536*ba62d9d3SAndroid Build Coastguard Worker }; 537*ba62d9d3SAndroid Build Coastguard Worker struct 538*ba62d9d3SAndroid Build Coastguard Worker { 539*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 540*ba62d9d3SAndroid Build Coastguard Worker }; 541*ba62d9d3SAndroid Build Coastguard Worker } DW0; 542*ba62d9d3SAndroid Build Coastguard Worker 543*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 1 544*ba62d9d3SAndroid Build Coastguard Worker union 545*ba62d9d3SAndroid Build Coastguard Worker { 546*ba62d9d3SAndroid Build Coastguard Worker struct 547*ba62d9d3SAndroid Build Coastguard Worker { 548*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row1 : 16; 549*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row2 : 16; 550*ba62d9d3SAndroid Build Coastguard Worker }; 551*ba62d9d3SAndroid Build Coastguard Worker struct 552*ba62d9d3SAndroid Build Coastguard Worker { 553*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 554*ba62d9d3SAndroid Build Coastguard Worker }; 555*ba62d9d3SAndroid Build Coastguard Worker } DW1; 556*ba62d9d3SAndroid Build Coastguard Worker 557*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 2 558*ba62d9d3SAndroid Build Coastguard Worker union 559*ba62d9d3SAndroid Build Coastguard Worker { 560*ba62d9d3SAndroid Build Coastguard Worker struct 561*ba62d9d3SAndroid Build Coastguard Worker { 562*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row3 : 16; 563*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row4 : 16; 564*ba62d9d3SAndroid Build Coastguard Worker }; 565*ba62d9d3SAndroid Build Coastguard Worker struct 566*ba62d9d3SAndroid Build Coastguard Worker { 567*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 568*ba62d9d3SAndroid Build Coastguard Worker }; 569*ba62d9d3SAndroid Build Coastguard Worker } DW2; 570*ba62d9d3SAndroid Build Coastguard Worker 571*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 3 572*ba62d9d3SAndroid Build Coastguard Worker union 573*ba62d9d3SAndroid Build Coastguard Worker { 574*ba62d9d3SAndroid Build Coastguard Worker struct 575*ba62d9d3SAndroid Build Coastguard Worker { 576*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row5 : 16; 577*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row6 : 16; 578*ba62d9d3SAndroid Build Coastguard Worker }; 579*ba62d9d3SAndroid Build Coastguard Worker struct 580*ba62d9d3SAndroid Build Coastguard Worker { 581*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 582*ba62d9d3SAndroid Build Coastguard Worker }; 583*ba62d9d3SAndroid Build Coastguard Worker } DW3; 584*ba62d9d3SAndroid Build Coastguard Worker 585*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 4 586*ba62d9d3SAndroid Build Coastguard Worker union 587*ba62d9d3SAndroid Build Coastguard Worker { 588*ba62d9d3SAndroid Build Coastguard Worker struct 589*ba62d9d3SAndroid Build Coastguard Worker { 590*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row7 : 16; 591*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row8 : 16; 592*ba62d9d3SAndroid Build Coastguard Worker }; 593*ba62d9d3SAndroid Build Coastguard Worker struct 594*ba62d9d3SAndroid Build Coastguard Worker { 595*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 596*ba62d9d3SAndroid Build Coastguard Worker }; 597*ba62d9d3SAndroid Build Coastguard Worker } DW4; 598*ba62d9d3SAndroid Build Coastguard Worker 599*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 5 600*ba62d9d3SAndroid Build Coastguard Worker union 601*ba62d9d3SAndroid Build Coastguard Worker { 602*ba62d9d3SAndroid Build Coastguard Worker struct 603*ba62d9d3SAndroid Build Coastguard Worker { 604*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row9 : 16; 605*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row10 : 16; 606*ba62d9d3SAndroid Build Coastguard Worker }; 607*ba62d9d3SAndroid Build Coastguard Worker struct 608*ba62d9d3SAndroid Build Coastguard Worker { 609*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 610*ba62d9d3SAndroid Build Coastguard Worker }; 611*ba62d9d3SAndroid Build Coastguard Worker } DW5; 612*ba62d9d3SAndroid Build Coastguard Worker 613*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 6 614*ba62d9d3SAndroid Build Coastguard Worker union 615*ba62d9d3SAndroid Build Coastguard Worker { 616*ba62d9d3SAndroid Build Coastguard Worker struct 617*ba62d9d3SAndroid Build Coastguard Worker { 618*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row11 : 16; 619*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row12 : 16; 620*ba62d9d3SAndroid Build Coastguard Worker }; 621*ba62d9d3SAndroid Build Coastguard Worker struct 622*ba62d9d3SAndroid Build Coastguard Worker { 623*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 624*ba62d9d3SAndroid Build Coastguard Worker }; 625*ba62d9d3SAndroid Build Coastguard Worker } DW6; 626*ba62d9d3SAndroid Build Coastguard Worker 627*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 7 628*ba62d9d3SAndroid Build Coastguard Worker union 629*ba62d9d3SAndroid Build Coastguard Worker { 630*ba62d9d3SAndroid Build Coastguard Worker struct 631*ba62d9d3SAndroid Build Coastguard Worker { 632*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row13 : 16; 633*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row14 : 16; 634*ba62d9d3SAndroid Build Coastguard Worker }; 635*ba62d9d3SAndroid Build Coastguard Worker struct 636*ba62d9d3SAndroid Build Coastguard Worker { 637*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 638*ba62d9d3SAndroid Build Coastguard Worker }; 639*ba62d9d3SAndroid Build Coastguard Worker } DW7; 640*ba62d9d3SAndroid Build Coastguard Worker } CM_MISC_STATE; 641*ba62d9d3SAndroid Build Coastguard Worker 642*ba62d9d3SAndroid Build Coastguard Worker /* 643*ba62d9d3SAndroid Build Coastguard Worker * CONVOLVE STATE DATA STRUCTURES 644*ba62d9d3SAndroid Build Coastguard Worker */ 645*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_MISC_STATE_MSG 646*ba62d9d3SAndroid Build Coastguard Worker { 647*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 0 648*ba62d9d3SAndroid Build Coastguard Worker union 649*ba62d9d3SAndroid Build Coastguard Worker { 650*ba62d9d3SAndroid Build Coastguard Worker struct 651*ba62d9d3SAndroid Build Coastguard Worker { 652*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row0 : 16; 653*ba62d9d3SAndroid Build Coastguard Worker uint32_t Reserved : 8; 654*ba62d9d3SAndroid Build Coastguard Worker uint32_t Width : 4; 655*ba62d9d3SAndroid Build Coastguard Worker uint32_t Height : 4; 656*ba62d9d3SAndroid Build Coastguard Worker }; 657*ba62d9d3SAndroid Build Coastguard Worker struct 658*ba62d9d3SAndroid Build Coastguard Worker { 659*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 660*ba62d9d3SAndroid Build Coastguard Worker }; 661*ba62d9d3SAndroid Build Coastguard Worker }DW0; 662*ba62d9d3SAndroid Build Coastguard Worker 663*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 1 664*ba62d9d3SAndroid Build Coastguard Worker union 665*ba62d9d3SAndroid Build Coastguard Worker { 666*ba62d9d3SAndroid Build Coastguard Worker struct 667*ba62d9d3SAndroid Build Coastguard Worker { 668*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row1 : 16; 669*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row2 : 16; 670*ba62d9d3SAndroid Build Coastguard Worker }; 671*ba62d9d3SAndroid Build Coastguard Worker struct 672*ba62d9d3SAndroid Build Coastguard Worker { 673*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 674*ba62d9d3SAndroid Build Coastguard Worker }; 675*ba62d9d3SAndroid Build Coastguard Worker } DW1; 676*ba62d9d3SAndroid Build Coastguard Worker 677*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 2 678*ba62d9d3SAndroid Build Coastguard Worker union 679*ba62d9d3SAndroid Build Coastguard Worker { 680*ba62d9d3SAndroid Build Coastguard Worker struct 681*ba62d9d3SAndroid Build Coastguard Worker { 682*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row3 : 16; 683*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row4 : 16; 684*ba62d9d3SAndroid Build Coastguard Worker }; 685*ba62d9d3SAndroid Build Coastguard Worker struct 686*ba62d9d3SAndroid Build Coastguard Worker { 687*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 688*ba62d9d3SAndroid Build Coastguard Worker }; 689*ba62d9d3SAndroid Build Coastguard Worker } DW2; 690*ba62d9d3SAndroid Build Coastguard Worker 691*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 3 692*ba62d9d3SAndroid Build Coastguard Worker union 693*ba62d9d3SAndroid Build Coastguard Worker { 694*ba62d9d3SAndroid Build Coastguard Worker struct 695*ba62d9d3SAndroid Build Coastguard Worker { 696*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row5 : 16; 697*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row6 : 16; 698*ba62d9d3SAndroid Build Coastguard Worker }; 699*ba62d9d3SAndroid Build Coastguard Worker struct 700*ba62d9d3SAndroid Build Coastguard Worker { 701*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 702*ba62d9d3SAndroid Build Coastguard Worker }; 703*ba62d9d3SAndroid Build Coastguard Worker } DW3; 704*ba62d9d3SAndroid Build Coastguard Worker 705*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 4 706*ba62d9d3SAndroid Build Coastguard Worker union 707*ba62d9d3SAndroid Build Coastguard Worker { 708*ba62d9d3SAndroid Build Coastguard Worker struct 709*ba62d9d3SAndroid Build Coastguard Worker { 710*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row7 : 16; 711*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row8 : 16; 712*ba62d9d3SAndroid Build Coastguard Worker }; 713*ba62d9d3SAndroid Build Coastguard Worker struct 714*ba62d9d3SAndroid Build Coastguard Worker { 715*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 716*ba62d9d3SAndroid Build Coastguard Worker }; 717*ba62d9d3SAndroid Build Coastguard Worker } DW4; 718*ba62d9d3SAndroid Build Coastguard Worker 719*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 5 720*ba62d9d3SAndroid Build Coastguard Worker union 721*ba62d9d3SAndroid Build Coastguard Worker { 722*ba62d9d3SAndroid Build Coastguard Worker struct 723*ba62d9d3SAndroid Build Coastguard Worker { 724*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row9 : 16; 725*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row10 : 16; 726*ba62d9d3SAndroid Build Coastguard Worker }; 727*ba62d9d3SAndroid Build Coastguard Worker struct 728*ba62d9d3SAndroid Build Coastguard Worker { 729*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 730*ba62d9d3SAndroid Build Coastguard Worker }; 731*ba62d9d3SAndroid Build Coastguard Worker } DW5; 732*ba62d9d3SAndroid Build Coastguard Worker 733*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 6 734*ba62d9d3SAndroid Build Coastguard Worker union 735*ba62d9d3SAndroid Build Coastguard Worker { 736*ba62d9d3SAndroid Build Coastguard Worker struct 737*ba62d9d3SAndroid Build Coastguard Worker { 738*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row11 : 16; 739*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row12 : 16; 740*ba62d9d3SAndroid Build Coastguard Worker }; 741*ba62d9d3SAndroid Build Coastguard Worker struct 742*ba62d9d3SAndroid Build Coastguard Worker { 743*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 744*ba62d9d3SAndroid Build Coastguard Worker }; 745*ba62d9d3SAndroid Build Coastguard Worker } DW6; 746*ba62d9d3SAndroid Build Coastguard Worker 747*ba62d9d3SAndroid Build Coastguard Worker //uint32_t 7 748*ba62d9d3SAndroid Build Coastguard Worker union 749*ba62d9d3SAndroid Build Coastguard Worker { 750*ba62d9d3SAndroid Build Coastguard Worker struct 751*ba62d9d3SAndroid Build Coastguard Worker { 752*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row13 : 16; 753*ba62d9d3SAndroid Build Coastguard Worker uint32_t Row14 : 16; 754*ba62d9d3SAndroid Build Coastguard Worker }; 755*ba62d9d3SAndroid Build Coastguard Worker struct 756*ba62d9d3SAndroid Build Coastguard Worker { 757*ba62d9d3SAndroid Build Coastguard Worker uint32_t value; 758*ba62d9d3SAndroid Build Coastguard Worker }; 759*ba62d9d3SAndroid Build Coastguard Worker } DW7; 760*ba62d9d3SAndroid Build Coastguard Worker } CM_MISC_STATE_MSG; 761*ba62d9d3SAndroid Build Coastguard Worker 762*ba62d9d3SAndroid Build Coastguard Worker struct CM_SAMPLER_8X8_DESCR 763*ba62d9d3SAndroid Build Coastguard Worker { 764*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER_STATE_TYPE stateType; 765*ba62d9d3SAndroid Build Coastguard Worker union 766*ba62d9d3SAndroid Build Coastguard Worker { 767*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_STATE_MSG *avs; 768*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_STATE_MSG_EX *avsEx; 769*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_STATE_MSG *conv; 770*ba62d9d3SAndroid Build Coastguard Worker CM_MISC_STATE_MSG *misc; //ERODE/DILATE/MINMAX 771*ba62d9d3SAndroid Build Coastguard Worker }; 772*ba62d9d3SAndroid Build Coastguard Worker }; 773*ba62d9d3SAndroid Build Coastguard Worker #endif // #ifndef CMRTLIB_AGNOSTIC_SHARE_CM_DEF_H_ 774