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 //! 23*ba62d9d3SAndroid Build Coastguard Worker //! \file cm_rt.h 24*ba62d9d3SAndroid Build Coastguard Worker //! \brief Contains all exposed APIs and Definitions for CM 25*ba62d9d3SAndroid Build Coastguard Worker //! 26*ba62d9d3SAndroid Build Coastguard Worker 27*ba62d9d3SAndroid Build Coastguard Worker #ifndef __CM_RT_H__ 28*ba62d9d3SAndroid Build Coastguard Worker #define __CM_RT_H__ 29*ba62d9d3SAndroid Build Coastguard Worker 30*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 31*ba62d9d3SAndroid Build Coastguard Worker // Version 32*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 33*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_1_0 34*ba62d9d3SAndroid Build Coastguard Worker #define CM_1_0 100 35*ba62d9d3SAndroid Build Coastguard Worker #endif 36*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_2_0 37*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_0 200 38*ba62d9d3SAndroid Build Coastguard Worker #endif 39*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_2_1 40*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_1 201 41*ba62d9d3SAndroid Build Coastguard Worker #endif 42*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_2_2 43*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_2 202 44*ba62d9d3SAndroid Build Coastguard Worker #endif 45*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_2_3 46*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_3 203 47*ba62d9d3SAndroid Build Coastguard Worker #endif 48*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_2_4 49*ba62d9d3SAndroid Build Coastguard Worker #define CM_2_4 204 50*ba62d9d3SAndroid Build Coastguard Worker #endif 51*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_3_0 52*ba62d9d3SAndroid Build Coastguard Worker #define CM_3_0 300 53*ba62d9d3SAndroid Build Coastguard Worker #endif 54*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_4_0 55*ba62d9d3SAndroid Build Coastguard Worker #define CM_4_0 400 56*ba62d9d3SAndroid Build Coastguard Worker #endif 57*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_5_0 58*ba62d9d3SAndroid Build Coastguard Worker #define CM_5_0 500 59*ba62d9d3SAndroid Build Coastguard Worker #endif 60*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_6_0 61*ba62d9d3SAndroid Build Coastguard Worker #define CM_6_0 600 62*ba62d9d3SAndroid Build Coastguard Worker #endif 63*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_7_0 64*ba62d9d3SAndroid Build Coastguard Worker #define CM_7_0 700 65*ba62d9d3SAndroid Build Coastguard Worker #endif 66*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_7_2 67*ba62d9d3SAndroid Build Coastguard Worker #define CM_7_2 702 //for MDFRT API refreshment. 68*ba62d9d3SAndroid Build Coastguard Worker #endif 69*ba62d9d3SAndroid Build Coastguard Worker 70*ba62d9d3SAndroid Build Coastguard Worker //Legacy MACRO, will be removed later 71*ba62d9d3SAndroid Build Coastguard Worker #ifndef __INTEL_MDF 72*ba62d9d3SAndroid Build Coastguard Worker #define __INTEL_MDF (CM_7_2) 73*ba62d9d3SAndroid Build Coastguard Worker #endif 74*ba62d9d3SAndroid Build Coastguard Worker 75*ba62d9d3SAndroid Build Coastguard Worker //New MACRO 76*ba62d9d3SAndroid Build Coastguard Worker #ifndef __INTEL_CM 77*ba62d9d3SAndroid Build Coastguard Worker #define __INTEL_CM (CM_7_2) 78*ba62d9d3SAndroid Build Coastguard Worker #endif 79*ba62d9d3SAndroid Build Coastguard Worker 80*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 81*ba62d9d3SAndroid Build Coastguard Worker // external headers 82*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 83*ba62d9d3SAndroid Build Coastguard Worker #include <stdint.h> 84*ba62d9d3SAndroid Build Coastguard Worker 85*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 86*ba62d9d3SAndroid Build Coastguard Worker // Macros 87*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 88*ba62d9d3SAndroid Build Coastguard Worker #ifdef __cplusplus 89*ba62d9d3SAndroid Build Coastguard Worker #define EXTERN_C extern "C" 90*ba62d9d3SAndroid Build Coastguard Worker #else 91*ba62d9d3SAndroid Build Coastguard Worker #define EXTERN_C 92*ba62d9d3SAndroid Build Coastguard Worker #endif 93*ba62d9d3SAndroid Build Coastguard Worker #define CM_RT_API 94*ba62d9d3SAndroid Build Coastguard Worker #define CM_KERNEL_FUNCTION(...) CM_KERNEL_FUNCTION2(__VA_ARGS__) 95*ba62d9d3SAndroid Build Coastguard Worker 96*ba62d9d3SAndroid Build Coastguard Worker #define _NAME_MERGE_(x, y) x ## y 97*ba62d9d3SAndroid Build Coastguard Worker #define _NAME_LABEL_(name, id) _NAME_MERGE_(name, id) 98*ba62d9d3SAndroid Build Coastguard Worker #define __CODEGEN_UNIQUE(name) _NAME_LABEL_(name, __LINE__) 99*ba62d9d3SAndroid Build Coastguard Worker #define BITFIELD_RANGE( startbit, endbit ) ((endbit)-(startbit)+1) 100*ba62d9d3SAndroid Build Coastguard Worker #define BITFIELD_BIT(bit) 1 101*ba62d9d3SAndroid Build Coastguard Worker 102*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_WIDTH 1 103*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_HEIGHT 1 104*ba62d9d3SAndroid Build Coastguard Worker #define CM_MIN_SURF_DEPTH 2 105*ba62d9d3SAndroid Build Coastguard Worker 106*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_1D_SURF_WIDTH 0x80000000 // 2^31 2 GB 107*ba62d9d3SAndroid Build Coastguard Worker 108*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_2D_SURF_WIDTH 16384 109*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_2D_SURF_HEIGHT 16384 110*ba62d9d3SAndroid Build Coastguard Worker 111*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_WIDTH 2048 112*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_HEIGHT 2048 113*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_3D_SURF_DEPTH 2048 114*ba62d9d3SAndroid Build Coastguard Worker 115*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_OPTION_SIZE_IN_BYTE 512 116*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_KERNEL_NAME_SIZE_IN_BYTE 256 117*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_ISA_FILE_NAME_SIZE_IN_BYTE 256 118*ba62d9d3SAndroid Build Coastguard Worker 119*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_WIDTH_FOR_MW 511 120*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_HEIGHT_FOR_MW 511 121*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_WIDTH_FOR_MO 512 122*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_HEIGHT_FOR_MO 512 123*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_WIDTH_SKLUP_FOR_MW 2047 124*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_THREADSPACE_HEIGHT_SKLUP_FOR_MW 2047 125*ba62d9d3SAndroid Build Coastguard Worker 126*ba62d9d3SAndroid Build Coastguard Worker 127*ba62d9d3SAndroid Build Coastguard Worker //Time in seconds before kernel should timeout 128*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_TIMEOUT 2 129*ba62d9d3SAndroid Build Coastguard Worker //Time in milliseconds before kernel should timeout 130*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_TIMEOUT_MS CM_MAX_TIMEOUT*1000 131*ba62d9d3SAndroid Build Coastguard Worker 132*ba62d9d3SAndroid Build Coastguard Worker #define CM_NO_EVENT ((CmEvent *)(-1)) //NO Event 133*ba62d9d3SAndroid Build Coastguard Worker 134*ba62d9d3SAndroid Build Coastguard Worker // Cm Device Create Option 135*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CREATE_OPTION_SCRATCH_SPACE_DISABLE 1 136*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CREATE_OPTION_TDR_DISABLE 64 137*ba62d9d3SAndroid Build Coastguard Worker 138*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_DISABLE_TASKFLUSHEDSEMAPHORE_OFFSET 6 139*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_DISABLE_TASKFLUSHEDSEMAPHORE_MASK (1<<CM_DEVICE_CONFIG_DISABLE_TASKFLUSHEDSEMAPHORE_OFFSET) 140*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CREATE_OPTION_TASKFLUSHEDSEMAPHORE_DISABLE 1 //to disable the semaphore for task flushed 141*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_MIDTHREADPREEMPTION_OFFSET 22 142*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_MIDTHREADPREEMPTION_DISENABLE (1 << CM_DEVICE_CONFIG_MIDTHREADPREEMPTION_OFFSET) 143*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_KERNEL_DEBUG_OFFSET 23 144*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_KERNEL_DEBUG_ENABLE (1 << CM_DEVICE_CONFIG_KERNEL_DEBUG_OFFSET) 145*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_VEBOX_OFFSET 28 146*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_VEBOX_DISABLE (1 << CM_DEVICE_CONFIG_VEBOX_OFFSET) 147*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_GPUCOPY_OFFSET 29 148*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_GPUCOPY_DISABLE (1 << CM_DEVICE_CONFIG_GPUCOPY_OFFSET) 149*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_FAST_PATH_OFFSET 30 150*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CONFIG_FAST_PATH_ENABLE (1 << CM_DEVICE_CONFIG_FAST_PATH_OFFSET) 151*ba62d9d3SAndroid Build Coastguard Worker 152*ba62d9d3SAndroid Build Coastguard Worker #define CM_DEVICE_CREATE_OPTION_DEFAULT CM_DEVICE_CONFIG_FAST_PATH_ENABLE 153*ba62d9d3SAndroid Build Coastguard Worker 154*ba62d9d3SAndroid Build Coastguard Worker #define CM_MAX_DEPENDENCY_COUNT 8 155*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_DWORD_FOR_MW_PARAM 16 156*ba62d9d3SAndroid Build Coastguard Worker 157*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_COEFF_ROWS 17 158*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_COEFF_ROWS_SKL 32 159*ba62d9d3SAndroid Build Coastguard Worker 160*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_CONVOLVE_ROWS 16 161*ba62d9d3SAndroid Build Coastguard Worker #define CM_NUM_CONVOLVE_ROWS_SKL 32 162*ba62d9d3SAndroid Build Coastguard Worker 163*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_NONE 0, 164*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_HORZ_LEFT 1 << 0 165*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_HORZ_CENTER 1 << 1 166*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_HORZ_RIGHT 1 << 2 167*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_VERT_TOP 1 << 4 168*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_VERT_CENTER 1 << 5 169*ba62d9d3SAndroid Build Coastguard Worker #define CM_CHROMA_SITING_VERT_BOTTOM 1 << 6 170*ba62d9d3SAndroid Build Coastguard Worker 171*ba62d9d3SAndroid Build Coastguard Worker #define CM_NULL_SURFACE 0xFFFF 172*ba62d9d3SAndroid Build Coastguard Worker 173*ba62d9d3SAndroid Build Coastguard Worker #define CM_FUSED_EU_DISABLE 0 174*ba62d9d3SAndroid Build Coastguard Worker #define CM_FUSED_EU_ENABLE 1 175*ba62d9d3SAndroid Build Coastguard Worker #define CM_FUSED_EU_DEFAULT CM_FUSED_EU_DISABLE 176*ba62d9d3SAndroid Build Coastguard Worker 177*ba62d9d3SAndroid Build Coastguard Worker #define CM_TURBO_BOOST_DISABLE 0 178*ba62d9d3SAndroid Build Coastguard Worker #define CM_TURBO_BOOST_ENABLE 1 179*ba62d9d3SAndroid Build Coastguard Worker #define CM_TURBO_BOOST_DEFAULT CM_TURBO_BOOST_ENABLE 180*ba62d9d3SAndroid Build Coastguard Worker 181*ba62d9d3SAndroid Build Coastguard Worker #define CM_CALLBACK __cdecl 182*ba62d9d3SAndroid Build Coastguard Worker 183*ba62d9d3SAndroid Build Coastguard Worker // SVM buffer access flags definition 184*ba62d9d3SAndroid Build Coastguard Worker #define CM_SVM_ACCESS_FLAG_COARSE_GRAINED (0) //Coarse-grained SVM buffer, IA/GT cache coherency disabled 185*ba62d9d3SAndroid Build Coastguard Worker #define CM_SVM_ACCESS_FLAG_FINE_GRAINED (1 << 0) //Fine-grained SVM buffer, IA/GT cache coherency enabled 186*ba62d9d3SAndroid Build Coastguard Worker #define CM_SVM_ACCESS_FLAG_ATOMICS (1 << 1) //Crosse IA/GT atomics supported SVM buffer, need CM_SVM_ACCESS_FLAG_FINE_GRAINED flag is set as well 187*ba62d9d3SAndroid Build Coastguard Worker #define CM_SVM_ACCESS_FLAG_DEFAULT CM_SVM_ACCESS_FLAG_COARSE_GRAINED //default is coarse-grained SVM buffer 188*ba62d9d3SAndroid Build Coastguard Worker 189*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_GFX_MEM 0 190*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_SYS_MEM 1 191*ba62d9d3SAndroid Build Coastguard Worker #define CM_BUFFER_STATELESS_CREATE_OPTION_DEGAULT CM_BUFFER_STATELESS_CREATE_OPTION_GFX_MEM 192*ba62d9d3SAndroid Build Coastguard Worker 193*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 194*ba62d9d3SAndroid Build Coastguard Worker // OS-specific includings and types 195*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 196*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_def_os.h" 197*ba62d9d3SAndroid Build Coastguard Worker 198*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 199*ba62d9d3SAndroid Build Coastguard Worker // Enumerations 200*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 201*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_RETURN_CODE 202*ba62d9d3SAndroid Build Coastguard Worker { 203*ba62d9d3SAndroid Build Coastguard Worker CM_SUCCESS = 0, 204*ba62d9d3SAndroid Build Coastguard Worker /* 205*ba62d9d3SAndroid Build Coastguard Worker * RANGE -1 ~ -9999 FOR EXTERNAL ERROR CODE 206*ba62d9d3SAndroid Build Coastguard Worker */ 207*ba62d9d3SAndroid Build Coastguard Worker CM_FAILURE = -1, 208*ba62d9d3SAndroid Build Coastguard Worker CM_NOT_IMPLEMENTED = -2, 209*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_ALLOCATION_FAILURE = -3, 210*ba62d9d3SAndroid Build Coastguard Worker CM_OUT_OF_HOST_MEMORY = -4, 211*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_FORMAT_NOT_SUPPORTED = -5, 212*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_SURFACE_AMOUNT = -6, 213*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_KERNEL_ARG_AMOUNT = -7, 214*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_KERNEL_ARG_SIZE_IN_BYTE = -8, 215*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_INDEX = -9, 216*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_VALUE = -10, 217*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_ARG_SIZE = -11, 218*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_INDEX = -12, 219*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_WIDTH = -13, 220*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_HEIGHT = -14, 221*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_DEPTH = -15, 222*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_COMMON_ISA = -16, 223*ba62d9d3SAndroid Build Coastguard Worker CM_OPEN_VIDEO_DEVICE_FAILURE = -17, 224*ba62d9d3SAndroid Build Coastguard Worker CM_VIDEO_DEVICE_LOCKED = -18, // Video device is already locked. 225*ba62d9d3SAndroid Build Coastguard Worker CM_LOCK_VIDEO_DEVICE_FAILURE = -19, // Video device is not locked but can't be locked. 226*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_SAMPLER_AMOUNT = -20, 227*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_KERNEL_PER_ENQUEUE = -21, 228*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_KERNEL_SIZE_IN_BYTE = -22, 229*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_THREAD_AMOUNT_PER_ENQUEUE = -23, 230*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_VME_STATE_G6_AMOUNT = -24, 231*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_SPACE = -25, 232*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_TIMEOUT = -26, 233*ba62d9d3SAndroid Build Coastguard Worker CM_JITDLL_LOAD_FAILURE = -27, 234*ba62d9d3SAndroid Build Coastguard Worker CM_JIT_COMPILE_FAILURE = -28, 235*ba62d9d3SAndroid Build Coastguard Worker CM_JIT_COMPILESIM_FAILURE = -29, 236*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_THREAD_GROUP_SPACE = -30, 237*ba62d9d3SAndroid Build Coastguard Worker CM_THREAD_ARG_NOT_ALLOWED = -31, 238*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GLOBAL_BUFFER_INDEX = -32, 239*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_BUFFER_HANDLER = -33, 240*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_SLM_SIZE = -34, 241*ba62d9d3SAndroid Build Coastguard Worker CM_JITDLL_OLDER_THAN_ISA = -35, 242*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_HARDWARE_THREAD_NUMBER = -36, 243*ba62d9d3SAndroid Build Coastguard Worker CM_GTPIN_INVOKE_FAILURE = -37, 244*ba62d9d3SAndroid Build Coastguard Worker CM_INVALIDE_L3_CONFIGURATION = -38, 245*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_TEXTURE2D_USAGE = -39, 246*ba62d9d3SAndroid Build Coastguard Worker CM_INTEL_GFX_NOTFOUND = -40, 247*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SYSMEM = -41, 248*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_WIDTH = -42, 249*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_STRIDE = -43, 250*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_DRIVEN_FAILURE = -44, 251*ba62d9d3SAndroid Build Coastguard Worker CM_LOCK_SURFACE_FAIL = -45, // Lock surface failed 252*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GENX_BINARY = -46, 253*ba62d9d3SAndroid Build Coastguard Worker CM_FEATURE_NOT_SUPPORTED_IN_DRIVER = -47, // driver out-of-sync 254*ba62d9d3SAndroid Build Coastguard Worker CM_QUERY_DLL_VERSION_FAILURE = -48, //Fail in getting DLL file version 255*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_PERTHREADARG_MUTEX_FAIL = -49, 256*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_PERKERNELARG_MUTEX_FAIL = -50, 257*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SETTING_FAILURE = -51, 258*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SURFACE_INVALID_BTINDEX = -52, 259*ba62d9d3SAndroid Build Coastguard Worker CM_NOT_SET_KERNEL_ARGUMENT = -53, 260*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SURFACES = -54, 261*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_INVALID_SIZE = -55, 262*ba62d9d3SAndroid Build Coastguard Worker CM_GPUCOPY_OUT_OF_RESOURCE = -56, 263*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VIDEO_DEVICE = -57, 264*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_DELAY_DESTROY = -58, 265*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VEBOX_STATE = -59, 266*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_VEBOX_SURFACE = -60, 267*ba62d9d3SAndroid Build Coastguard Worker CM_FEATURE_NOT_SUPPORTED_BY_HARDWARE = -61, 268*ba62d9d3SAndroid Build Coastguard Worker CM_RESOURCE_USAGE_NOT_SUPPORT_READWRITE = -62, 269*ba62d9d3SAndroid Build Coastguard Worker CM_MULTIPLE_MIPLEVELS_NOT_SUPPORTED = -63, 270*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_UMD_CONTEXT = -64, 271*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_LIBVA_SURFACE = -65, 272*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_LIBVA_INITIALIZE = -66, 273*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_NOT_SET = -67, 274*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_THREADSPACE = -68, 275*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_THREADS_NOT_ASSOCIATED= -69, 276*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_THREADSPACE_INTEGRITY_FAILED = -70, 277*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_USERPROVIDED_GENBINARY = -71, 278*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PRIVATE_DATA = -72, 279*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_MOS_RESOURCE_HANDLE = -73, 280*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_CACHED = -74, 281*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_IN_USE = -75, 282*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GPUCOPY_KERNEL = -76, 283*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_DEPENDENCY_WITH_WALKING_PATTERN = -77, 284*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_MEDIA_WALKING_PATTERN = -78, 285*ba62d9d3SAndroid Build Coastguard Worker CM_FAILED_TO_ALLOCATE_SVM_BUFFER = -79, 286*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_POWER_OPTION_FOR_PLATFORM = -80, 287*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_THREADGROUPSPACE = -81, 288*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_SPILL_CODE = -82, 289*ba62d9d3SAndroid Build Coastguard Worker CM_UMD_DRIVER_NOT_SUPPORTED = -83, 290*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_GPU_FREQUENCY_VALUE = -84, 291*ba62d9d3SAndroid Build Coastguard Worker CM_SYSTEM_MEMORY_NOT_4KPAGE_ALIGNED = -85, 292*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_ARG_SETTING_FAILED = -86, 293*ba62d9d3SAndroid Build Coastguard Worker CM_NO_AVAILABLE_SURFACE = -87, 294*ba62d9d3SAndroid Build Coastguard Worker CM_VA_SURFACE_NOT_SUPPORTED = -88, 295*ba62d9d3SAndroid Build Coastguard Worker CM_TOO_MUCH_THREADS = -89, 296*ba62d9d3SAndroid Build Coastguard Worker CM_NULL_POINTER = -90, 297*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_NUM_2D_ALIASES = -91, 298*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PARAM_SIZE = -92, 299*ba62d9d3SAndroid Build Coastguard Worker CM_GT_UNSUPPORTED = -93, 300*ba62d9d3SAndroid Build Coastguard Worker CM_GTPIN_FLAG_NO_LONGER_SUPPORTED = -94, 301*ba62d9d3SAndroid Build Coastguard Worker CM_PLATFORM_UNSUPPORTED_FOR_API = -95, 302*ba62d9d3SAndroid Build Coastguard Worker CM_TASK_MEDIA_RESET = -96, 303*ba62d9d3SAndroid Build Coastguard Worker CM_KERNELPAYLOAD_SAMPLER_INVALID_BTINDEX = -97, 304*ba62d9d3SAndroid Build Coastguard Worker CM_EXCEED_MAX_NUM_BUFFER_ALIASES = -98, 305*ba62d9d3SAndroid Build Coastguard Worker CM_SYSTEM_MEMORY_NOT_4PIXELS_ALIGNED = -99, 306*ba62d9d3SAndroid Build Coastguard Worker CM_FAILED_TO_CREATE_CURBE_SURFACE = -100, 307*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_CAP_NAME = -101, 308*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_PARAM_FOR_CREATE_QUEUE_EX = -102, 309*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_CREATE_OPTION_FOR_BUFFER_STATELESS = -103, 310*ba62d9d3SAndroid Build Coastguard Worker CM_INVALID_KERNEL_ARG_POINTER = -104, 311*ba62d9d3SAndroid Build Coastguard Worker CM_LOAD_LIBRARY_FAILED = -105, 312*ba62d9d3SAndroid Build Coastguard Worker CM_NO_SUPPORTED_ADAPTER = -106, 313*ba62d9d3SAndroid Build Coastguard Worker 314*ba62d9d3SAndroid Build Coastguard Worker /* 315*ba62d9d3SAndroid Build Coastguard Worker * RANGE <=-10000 FOR INTERNAL ERROR CODE 316*ba62d9d3SAndroid Build Coastguard Worker */ 317*ba62d9d3SAndroid Build Coastguard Worker CM_INTERNAL_ERROR_CODE_OFFSET = -10000, 318*ba62d9d3SAndroid Build Coastguard Worker } CM_RETURN_CODE; 319*ba62d9d3SAndroid Build Coastguard Worker 320*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_STATUS 321*ba62d9d3SAndroid Build Coastguard Worker { 322*ba62d9d3SAndroid Build Coastguard Worker CM_STATUS_QUEUED = 0, 323*ba62d9d3SAndroid Build Coastguard Worker CM_STATUS_FLUSHED = 1, 324*ba62d9d3SAndroid Build Coastguard Worker CM_STATUS_FINISHED = 2, 325*ba62d9d3SAndroid Build Coastguard Worker CM_STATUS_STARTED = 3, 326*ba62d9d3SAndroid Build Coastguard Worker CM_STATUS_RESET = 4 327*ba62d9d3SAndroid Build Coastguard Worker 328*ba62d9d3SAndroid Build Coastguard Worker } CM_STATUS; 329*ba62d9d3SAndroid Build Coastguard Worker 330*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_PIXEL_TYPE 331*ba62d9d3SAndroid Build Coastguard Worker { 332*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_UINT, 333*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_SINT, 334*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_OTHER 335*ba62d9d3SAndroid Build Coastguard Worker } CM_PIXEL_TYPE; 336*ba62d9d3SAndroid Build Coastguard Worker 337*ba62d9d3SAndroid Build Coastguard Worker enum GPU_PLATFORM{ 338*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_UNKNOWN = 0, 339*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_BDW = 4, 340*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_SKL = 7, 341*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_BXT = 8, 342*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_KBL = 11, 343*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_ICLLP = 13, 344*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_TGLLP = 15, 345*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GLK = 16, 346*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_CFL = 17, 347*ba62d9d3SAndroid Build Coastguard Worker }; 348*ba62d9d3SAndroid Build Coastguard Worker 349*ba62d9d3SAndroid Build Coastguard Worker enum GPU_GT_PLATFORM{ 350*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT_UNKNOWN = 0, 351*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT1 = 1, 352*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT2 = 2, 353*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT3 = 3, 354*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT4 = 4, 355*ba62d9d3SAndroid Build Coastguard Worker PLATFORM_INTEL_GT1_5 = 10 356*ba62d9d3SAndroid Build Coastguard Worker }; 357*ba62d9d3SAndroid Build Coastguard Worker 358*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_DEVICE_CAP_NAME 359*ba62d9d3SAndroid Build Coastguard Worker { 360*ba62d9d3SAndroid Build Coastguard Worker CAP_KERNEL_COUNT_PER_TASK, 361*ba62d9d3SAndroid Build Coastguard Worker CAP_KERNEL_BINARY_SIZE, 362*ba62d9d3SAndroid Build Coastguard Worker CAP_SAMPLER_COUNT , 363*ba62d9d3SAndroid Build Coastguard Worker CAP_SAMPLER_COUNT_PER_KERNEL, 364*ba62d9d3SAndroid Build Coastguard Worker CAP_BUFFER_COUNT , 365*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE2D_COUNT, 366*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE3D_COUNT, 367*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE_COUNT_PER_KERNEL, 368*ba62d9d3SAndroid Build Coastguard Worker CAP_ARG_COUNT_PER_KERNEL, 369*ba62d9d3SAndroid Build Coastguard Worker CAP_ARG_SIZE_PER_KERNEL , 370*ba62d9d3SAndroid Build Coastguard Worker CAP_USER_DEFINED_THREAD_COUNT_PER_TASK, 371*ba62d9d3SAndroid Build Coastguard Worker CAP_HW_THREAD_COUNT, 372*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE2D_FORMAT_COUNT, 373*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE2D_FORMATS, 374*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE3D_FORMAT_COUNT, 375*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE3D_FORMATS, 376*ba62d9d3SAndroid Build Coastguard Worker CAP_VME_STATE_COUNT, 377*ba62d9d3SAndroid Build Coastguard Worker CAP_GPU_PLATFORM, 378*ba62d9d3SAndroid Build Coastguard Worker CAP_GT_PLATFORM, 379*ba62d9d3SAndroid Build Coastguard Worker CAP_MIN_FREQUENCY, 380*ba62d9d3SAndroid Build Coastguard Worker CAP_MAX_FREQUENCY, 381*ba62d9d3SAndroid Build Coastguard Worker CAP_L3_CONFIG, 382*ba62d9d3SAndroid Build Coastguard Worker CAP_GPU_CURRENT_FREQUENCY, 383*ba62d9d3SAndroid Build Coastguard Worker CAP_USER_DEFINED_THREAD_COUNT_PER_TASK_NO_THREAD_ARG, 384*ba62d9d3SAndroid Build Coastguard Worker CAP_USER_DEFINED_THREAD_COUNT_PER_MEDIA_WALKER, 385*ba62d9d3SAndroid Build Coastguard Worker CAP_USER_DEFINED_THREAD_COUNT_PER_THREAD_GROUP, 386*ba62d9d3SAndroid Build Coastguard Worker CAP_SURFACE2DUP_COUNT, 387*ba62d9d3SAndroid Build Coastguard Worker CAP_PLATFORM_INFO, 388*ba62d9d3SAndroid Build Coastguard Worker CAP_MAX_BUFFER_SIZE, 389*ba62d9d3SAndroid Build Coastguard Worker CAP_MAX_SUBDEV_COUNT //for app to retrieve the total count of sub devices 390*ba62d9d3SAndroid Build Coastguard Worker } CM_DEVICE_CAP_NAME; 391*ba62d9d3SAndroid Build Coastguard Worker 392*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_FASTCOPY_OPTION 393*ba62d9d3SAndroid Build Coastguard Worker { 394*ba62d9d3SAndroid Build Coastguard Worker CM_FASTCOPY_OPTION_NONBLOCKING = 0x00, 395*ba62d9d3SAndroid Build Coastguard Worker CM_FASTCOPY_OPTION_BLOCKING = 0x01 396*ba62d9d3SAndroid Build Coastguard Worker } CM_FASTCOPY_OPTION; 397*ba62d9d3SAndroid Build Coastguard Worker 398*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_DEPENDENCY_PATTERN 399*ba62d9d3SAndroid Build Coastguard Worker { 400*ba62d9d3SAndroid Build Coastguard Worker CM_NONE_DEPENDENCY = 0, //All threads run parallel, scanline dispatch 401*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT = 1, 402*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT26 = 2, 403*ba62d9d3SAndroid Build Coastguard Worker CM_VERTICAL_WAVE = 3, 404*ba62d9d3SAndroid Build Coastguard Worker CM_HORIZONTAL_WAVE = 4, 405*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT26Z = 5, 406*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT26X = 6, 407*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT26ZIG = 7, 408*ba62d9d3SAndroid Build Coastguard Worker CM_WAVEFRONT26ZI = 8 409*ba62d9d3SAndroid Build Coastguard Worker } CM_DEPENDENCY_PATTERN; 410*ba62d9d3SAndroid Build Coastguard Worker 411*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_WALKING_PATTERN 412*ba62d9d3SAndroid Build Coastguard Worker { 413*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_DEFAULT = 0, 414*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT = 1, 415*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT26 = 2, 416*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_VERTICAL = 3, 417*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_HORIZONTAL = 4, 418*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT26X = 5, 419*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT26ZIG = 6, 420*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT45D = 7, 421*ba62d9d3SAndroid Build Coastguard Worker CM_WALK_WAVEFRONT45XD_2 = 8 422*ba62d9d3SAndroid Build Coastguard Worker } CM_WALKING_PATTERN; 423*ba62d9d3SAndroid Build Coastguard Worker 424*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_26ZI_DISPATCH_PATTERN 425*ba62d9d3SAndroid Build Coastguard Worker { 426*ba62d9d3SAndroid Build Coastguard Worker VVERTICAL_HVERTICAL_26 = 0, 427*ba62d9d3SAndroid Build Coastguard Worker VVERTICAL_HHORIZONTAL_26 = 1, 428*ba62d9d3SAndroid Build Coastguard Worker VVERTICAL26_HHORIZONTAL26 = 2, 429*ba62d9d3SAndroid Build Coastguard Worker VVERTICAL1X26_HHORIZONTAL1X26 = 3 430*ba62d9d3SAndroid Build Coastguard Worker } CM_26ZI_DISPATCH_PATTERN; 431*ba62d9d3SAndroid Build Coastguard Worker 432*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_MW_GROUP_SELECT 433*ba62d9d3SAndroid Build Coastguard Worker { 434*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_NONE = 0, 435*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_COLORLOOP = 1, 436*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_INNERLOCAL = 2, 437*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_MIDLOCAL = 3, 438*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_OUTERLOCAL = 4, 439*ba62d9d3SAndroid Build Coastguard Worker CM_MW_GROUP_INNERGLOBAL = 5, 440*ba62d9d3SAndroid Build Coastguard Worker } CM_MW_GROUP_SELECT; 441*ba62d9d3SAndroid Build Coastguard Worker 442*ba62d9d3SAndroid Build Coastguard Worker /**************** L3/Cache ***************/ 443*ba62d9d3SAndroid Build Coastguard Worker enum MEMORY_OBJECT_CONTROL 444*ba62d9d3SAndroid Build Coastguard Worker { 445*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_DEFAULT = 0, 446*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_L3, 447*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_LLC_ELLC, 448*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_LLC, 449*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_ELLC, 450*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_LLC_L3, 451*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_ELLC_L3, 452*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_NO_CACHE, 453*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_SKL_COUNT, 454*ba62d9d3SAndroid Build Coastguard Worker 455*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_DEFAULT = 0, 456*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_L3, 457*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_LLC_ELLC, 458*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_LLC, 459*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_ELLC, 460*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_LLC_L3, 461*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_ELLC_L3, 462*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_NO_CACHE, 463*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_CNL_COUNT, 464*ba62d9d3SAndroid Build Coastguard Worker 465*ba62d9d3SAndroid Build Coastguard Worker // Unified memory object control type for SKL+ 466*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_DEFAULT = 0x0, 467*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_L3, 468*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_LLC_ELLC, 469*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_LLC, 470*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_ELLC, 471*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_LLC_L3, 472*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_ELLC_L3, 473*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_NO_CACHE, 474*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_L1_ENABLED, 475*ba62d9d3SAndroid Build Coastguard Worker 476*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL_UNKNOWN = 0xff 477*ba62d9d3SAndroid Build Coastguard Worker }; 478*ba62d9d3SAndroid Build Coastguard Worker 479*ba62d9d3SAndroid Build Coastguard Worker typedef enum _MEMORY_TYPE { 480*ba62d9d3SAndroid Build Coastguard Worker CM_USE_PTE, 481*ba62d9d3SAndroid Build Coastguard Worker CM_UN_CACHEABLE, 482*ba62d9d3SAndroid Build Coastguard Worker CM_WRITE_THROUGH, 483*ba62d9d3SAndroid Build Coastguard Worker CM_WRITE_BACK, 484*ba62d9d3SAndroid Build Coastguard Worker 485*ba62d9d3SAndroid Build Coastguard Worker // BDW 486*ba62d9d3SAndroid Build Coastguard Worker MEMORY_TYPE_BDW_UC_WITH_FENCE = 0, 487*ba62d9d3SAndroid Build Coastguard Worker MEMORY_TYPE_BDW_UC, 488*ba62d9d3SAndroid Build Coastguard Worker MEMORY_TYPE_BDW_WT, 489*ba62d9d3SAndroid Build Coastguard Worker MEMORY_TYPE_BDW_WB 490*ba62d9d3SAndroid Build Coastguard Worker 491*ba62d9d3SAndroid Build Coastguard Worker } MEMORY_TYPE; 492*ba62d9d3SAndroid Build Coastguard Worker 493*ba62d9d3SAndroid Build Coastguard Worker typedef enum _L3_SUGGEST_CONFIG 494*ba62d9d3SAndroid Build Coastguard Worker { 495*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_DEFAULT = 0, 496*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_1, 497*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_2, 498*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_3, 499*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_4, 500*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_5, 501*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_6, 502*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_7, 503*ba62d9d3SAndroid Build Coastguard Worker CM_L3_PLANE_8, 504*ba62d9d3SAndroid Build Coastguard Worker } L3_SUGGEST_CONFIG; 505*ba62d9d3SAndroid Build Coastguard Worker 506*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_SAMPLER8x8_SURFACE_ 507*ba62d9d3SAndroid Build Coastguard Worker { 508*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_SURFACE = 0, 509*ba62d9d3SAndroid Build Coastguard Worker CM_VA_SURFACE = 1 510*ba62d9d3SAndroid Build Coastguard Worker }CM_SAMPLER8x8_SURFACE; 511*ba62d9d3SAndroid Build Coastguard Worker 512*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_SURFACE_ADDRESS_CONTROL_MODE_ 513*ba62d9d3SAndroid Build Coastguard Worker { 514*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_CLAMP = 0, 515*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_MIRROR = 1 516*ba62d9d3SAndroid Build Coastguard Worker }CM_SURFACE_ADDRESS_CONTROL_MODE; 517*ba62d9d3SAndroid Build Coastguard Worker 518*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_MESSAGE_SEQUENCE_ 519*ba62d9d3SAndroid Build Coastguard Worker { 520*ba62d9d3SAndroid Build Coastguard Worker CM_MS_1x1 = 0, 521*ba62d9d3SAndroid Build Coastguard Worker CM_MS_16x1 = 1, 522*ba62d9d3SAndroid Build Coastguard Worker CM_MS_16x4 = 2, 523*ba62d9d3SAndroid Build Coastguard Worker CM_MS_32x1 = 3, 524*ba62d9d3SAndroid Build Coastguard Worker CM_MS_32x4 = 4, 525*ba62d9d3SAndroid Build Coastguard Worker CM_MS_64x1 = 5, 526*ba62d9d3SAndroid Build Coastguard Worker CM_MS_64x4 = 6 527*ba62d9d3SAndroid Build Coastguard Worker }CM_MESSAGE_SEQUENCE; 528*ba62d9d3SAndroid Build Coastguard Worker 529*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_MIN_MAX_FILTER_CONTROL_ 530*ba62d9d3SAndroid Build Coastguard Worker { 531*ba62d9d3SAndroid Build Coastguard Worker CM_MIN_FILTER = 0, 532*ba62d9d3SAndroid Build Coastguard Worker CM_MAX_FILTER = 1, 533*ba62d9d3SAndroid Build Coastguard Worker CM_BOTH_FILTER = 3 534*ba62d9d3SAndroid Build Coastguard Worker }CM_MIN_MAX_FILTER_CONTROL; 535*ba62d9d3SAndroid Build Coastguard Worker 536*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_VA_FUNCTION_ 537*ba62d9d3SAndroid Build Coastguard Worker { 538*ba62d9d3SAndroid Build Coastguard Worker CM_VA_MINMAXFILTER = 0, 539*ba62d9d3SAndroid Build Coastguard Worker CM_VA_DILATE = 1, 540*ba62d9d3SAndroid Build Coastguard Worker CM_VA_ERODE = 2 541*ba62d9d3SAndroid Build Coastguard Worker } CM_VA_FUNCTION; 542*ba62d9d3SAndroid Build Coastguard Worker 543*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_EVENT_PROFILING_INFO 544*ba62d9d3SAndroid Build Coastguard Worker { 545*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_HWSTART, 546*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_HWEND, 547*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_SUBMIT, 548*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_COMPLETE, 549*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_KERNELCOUNT, 550*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_KERNELNAMES, 551*ba62d9d3SAndroid Build Coastguard Worker CM_EVENT_PROFILING_THREADSPACE 552*ba62d9d3SAndroid Build Coastguard Worker }CM_EVENT_PROFILING_INFO; 553*ba62d9d3SAndroid Build Coastguard Worker 554*ba62d9d3SAndroid Build Coastguard Worker // CM Convolve type for SKL+ 555*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_CONVOLVE_SKL_TYPE 556*ba62d9d3SAndroid Build Coastguard Worker { 557*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_2D = 0, 558*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_1D = 1, 559*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE_1P = 2 560*ba62d9d3SAndroid Build Coastguard Worker } CM_CONVOLVE_SKL_TYPE; 561*ba62d9d3SAndroid Build Coastguard Worker 562*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_ROTATION 563*ba62d9d3SAndroid Build Coastguard Worker { 564*ba62d9d3SAndroid Build Coastguard Worker CM_ROTATION_IDENTITY = 0, //!< Rotation 0 degrees 565*ba62d9d3SAndroid Build Coastguard Worker CM_ROTATION_90, //!< Rotation 90 degrees 566*ba62d9d3SAndroid Build Coastguard Worker CM_ROTATION_180, //!< Rotation 180 degrees 567*ba62d9d3SAndroid Build Coastguard Worker CM_ROTATION_270, //!< Rotation 270 degrees 568*ba62d9d3SAndroid Build Coastguard Worker } CM_ROTATION; 569*ba62d9d3SAndroid Build Coastguard Worker 570*ba62d9d3SAndroid Build Coastguard Worker // to define frame type for interlace frame support 571*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_FRAME_TYPE 572*ba62d9d3SAndroid Build Coastguard Worker { 573*ba62d9d3SAndroid Build Coastguard Worker CM_FRAME, // singe frame, not interlaced 574*ba62d9d3SAndroid Build Coastguard Worker CM_TOP_FIELD, 575*ba62d9d3SAndroid Build Coastguard Worker CM_BOTTOM_FIELD, 576*ba62d9d3SAndroid Build Coastguard Worker MAX_FRAME_TYPE 577*ba62d9d3SAndroid Build Coastguard Worker } CM_FRAME_TYPE; 578*ba62d9d3SAndroid Build Coastguard Worker 579*ba62d9d3SAndroid Build Coastguard Worker enum CM_QUEUE_TYPE 580*ba62d9d3SAndroid Build Coastguard Worker { 581*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_TYPE_NONE = 0, 582*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_TYPE_RENDER = 1, 583*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_TYPE_COMPUTE = 2 584*ba62d9d3SAndroid Build Coastguard Worker }; 585*ba62d9d3SAndroid Build Coastguard Worker 586*ba62d9d3SAndroid Build Coastguard Worker enum CM_QUEUE_SSEU_USAGE_HINT_TYPE 587*ba62d9d3SAndroid Build Coastguard Worker { 588*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_SSEU_USAGE_HINT_DEFAULT = 0, 589*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_SSEU_USAGE_HINT_VME = 1 590*ba62d9d3SAndroid Build Coastguard Worker }; 591*ba62d9d3SAndroid Build Coastguard Worker 592*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 593*ba62d9d3SAndroid Build Coastguard Worker // Structures 594*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 595*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SAMPLER_STATE 596*ba62d9d3SAndroid Build Coastguard Worker { 597*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE minFilterType; 598*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE magFilterType; 599*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressU; 600*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressV; 601*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressW; 602*ba62d9d3SAndroid Build Coastguard Worker } CM_SAMPLER_STATE; 603*ba62d9d3SAndroid Build Coastguard Worker 604*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SAMPLER_STATE_EX 605*ba62d9d3SAndroid Build Coastguard Worker { 606*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE minFilterType; 607*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_FILTER_TYPE magFilterType; 608*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressU; 609*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressV; 610*ba62d9d3SAndroid Build Coastguard Worker CM_TEXTURE_ADDRESS_TYPE addressW; 611*ba62d9d3SAndroid Build Coastguard Worker 612*ba62d9d3SAndroid Build Coastguard Worker CM_PIXEL_TYPE SurfaceFormat; 613*ba62d9d3SAndroid Build Coastguard Worker union { 614*ba62d9d3SAndroid Build Coastguard Worker DWORD BorderColorRedU; 615*ba62d9d3SAndroid Build Coastguard Worker INT BorderColorRedS; 616*ba62d9d3SAndroid Build Coastguard Worker FLOAT BorderColorRedF; 617*ba62d9d3SAndroid Build Coastguard Worker }; 618*ba62d9d3SAndroid Build Coastguard Worker 619*ba62d9d3SAndroid Build Coastguard Worker union { 620*ba62d9d3SAndroid Build Coastguard Worker DWORD BorderColorGreenU; 621*ba62d9d3SAndroid Build Coastguard Worker INT BorderColorGreenS; 622*ba62d9d3SAndroid Build Coastguard Worker FLOAT BorderColorGreenF; 623*ba62d9d3SAndroid Build Coastguard Worker }; 624*ba62d9d3SAndroid Build Coastguard Worker 625*ba62d9d3SAndroid Build Coastguard Worker union { 626*ba62d9d3SAndroid Build Coastguard Worker DWORD BorderColorBlueU; 627*ba62d9d3SAndroid Build Coastguard Worker INT BorderColorBlueS; 628*ba62d9d3SAndroid Build Coastguard Worker FLOAT BorderColorBlueF; 629*ba62d9d3SAndroid Build Coastguard Worker }; 630*ba62d9d3SAndroid Build Coastguard Worker 631*ba62d9d3SAndroid Build Coastguard Worker union { 632*ba62d9d3SAndroid Build Coastguard Worker DWORD BorderColorAlphaU; 633*ba62d9d3SAndroid Build Coastguard Worker INT BorderColorAlphaS; 634*ba62d9d3SAndroid Build Coastguard Worker FLOAT BorderColorAlphaF; 635*ba62d9d3SAndroid Build Coastguard Worker }; 636*ba62d9d3SAndroid Build Coastguard Worker } CM_SAMPLER_STATE_EX; 637*ba62d9d3SAndroid Build Coastguard Worker 638*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_PLATFORM_INFO 639*ba62d9d3SAndroid Build Coastguard Worker { 640*ba62d9d3SAndroid Build Coastguard Worker UINT numSlices; 641*ba62d9d3SAndroid Build Coastguard Worker UINT numSubSlices; 642*ba62d9d3SAndroid Build Coastguard Worker UINT numEUsPerSubSlice; 643*ba62d9d3SAndroid Build Coastguard Worker UINT numHWThreadsPerEU; 644*ba62d9d3SAndroid Build Coastguard Worker UINT numMaxEUsPerPool; 645*ba62d9d3SAndroid Build Coastguard Worker }CM_PLATFORM_INFO, *PCM_PLATFORM_INFO; 646*ba62d9d3SAndroid Build Coastguard Worker 647*ba62d9d3SAndroid Build Coastguard Worker // CM RT DLL File Version 648*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_DLL_FILE_VERSION 649*ba62d9d3SAndroid Build Coastguard Worker { 650*ba62d9d3SAndroid Build Coastguard Worker WORD wMANVERSION; 651*ba62d9d3SAndroid Build Coastguard Worker WORD wMANREVISION; 652*ba62d9d3SAndroid Build Coastguard Worker WORD wSUBREVISION; 653*ba62d9d3SAndroid Build Coastguard Worker WORD wBUILD_NUMBER; 654*ba62d9d3SAndroid Build Coastguard Worker //Version constructed as : "wMANVERSION.wMANREVISION.wSUBREVISION.wBUILD_NUMBER" 655*ba62d9d3SAndroid Build Coastguard Worker } CM_DLL_FILE_VERSION, *PCM_DLL_FILE_VERSION; 656*ba62d9d3SAndroid Build Coastguard Worker 657*ba62d9d3SAndroid Build Coastguard Worker // parameters used to set the surface state of the CmSurface 658*ba62d9d3SAndroid Build Coastguard Worker struct CM_VME_SURFACE_STATE_PARAM 659*ba62d9d3SAndroid Build Coastguard Worker { 660*ba62d9d3SAndroid Build Coastguard Worker UINT width; 661*ba62d9d3SAndroid Build Coastguard Worker UINT height; 662*ba62d9d3SAndroid Build Coastguard Worker }; 663*ba62d9d3SAndroid Build Coastguard Worker 664*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_WALKING_PARAMETERS 665*ba62d9d3SAndroid Build Coastguard Worker { 666*ba62d9d3SAndroid Build Coastguard Worker DWORD Value[CM_NUM_DWORD_FOR_MW_PARAM]; 667*ba62d9d3SAndroid Build Coastguard Worker } CM_WALKING_PARAMETERS, *PCM_WALKING_PARAMETERS; 668*ba62d9d3SAndroid Build Coastguard Worker 669*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_DEPENDENCY 670*ba62d9d3SAndroid Build Coastguard Worker { 671*ba62d9d3SAndroid Build Coastguard Worker UINT count; 672*ba62d9d3SAndroid Build Coastguard Worker INT deltaX[CM_MAX_DEPENDENCY_COUNT]; 673*ba62d9d3SAndroid Build Coastguard Worker INT deltaY[CM_MAX_DEPENDENCY_COUNT]; 674*ba62d9d3SAndroid Build Coastguard Worker }CM_DEPENDENCY; 675*ba62d9d3SAndroid Build Coastguard Worker 676*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_COORDINATE 677*ba62d9d3SAndroid Build Coastguard Worker { 678*ba62d9d3SAndroid Build Coastguard Worker INT x; 679*ba62d9d3SAndroid Build Coastguard Worker INT y; 680*ba62d9d3SAndroid Build Coastguard Worker } CM_COORDINATE, *PCM_COORDINATE; 681*ba62d9d3SAndroid Build Coastguard Worker 682*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_THREAD_PARAM 683*ba62d9d3SAndroid Build Coastguard Worker { 684*ba62d9d3SAndroid Build Coastguard Worker CM_COORDINATE scoreboardCoordinates; 685*ba62d9d3SAndroid Build Coastguard Worker BYTE scoreboardColor; 686*ba62d9d3SAndroid Build Coastguard Worker BYTE sliceDestinationSelect; 687*ba62d9d3SAndroid Build Coastguard Worker BYTE subSliceDestinationSelect; 688*ba62d9d3SAndroid Build Coastguard Worker } CM_THREAD_PARAM, *PCM_THREAD_PARAM; 689*ba62d9d3SAndroid Build Coastguard Worker 690*ba62d9d3SAndroid Build Coastguard Worker struct L3ConfigRegisterValues 691*ba62d9d3SAndroid Build Coastguard Worker { 692*ba62d9d3SAndroid Build Coastguard Worker unsigned int config_register0; 693*ba62d9d3SAndroid Build Coastguard Worker unsigned int config_register1; 694*ba62d9d3SAndroid Build Coastguard Worker unsigned int config_register2; 695*ba62d9d3SAndroid Build Coastguard Worker unsigned int config_register3; 696*ba62d9d3SAndroid Build Coastguard Worker }; 697*ba62d9d3SAndroid Build Coastguard Worker 698*ba62d9d3SAndroid Build Coastguard Worker //GT-PIN 699*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SURFACE_DETAILS{ 700*ba62d9d3SAndroid Build Coastguard Worker UINT width; 701*ba62d9d3SAndroid Build Coastguard Worker UINT height; 702*ba62d9d3SAndroid Build Coastguard Worker UINT depth; 703*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_FORMAT format; 704*ba62d9d3SAndroid Build Coastguard Worker UINT planeIndex; 705*ba62d9d3SAndroid Build Coastguard Worker UINT pitch; 706*ba62d9d3SAndroid Build Coastguard Worker UINT slicePitch; 707*ba62d9d3SAndroid Build Coastguard Worker UINT SurfaceBaseAddress; 708*ba62d9d3SAndroid Build Coastguard Worker UINT8 TiledSurface; 709*ba62d9d3SAndroid Build Coastguard Worker UINT8 TileWalk; 710*ba62d9d3SAndroid Build Coastguard Worker UINT XOffset; 711*ba62d9d3SAndroid Build Coastguard Worker UINT YOffset; 712*ba62d9d3SAndroid Build Coastguard Worker 713*ba62d9d3SAndroid Build Coastguard Worker }CM_SURFACE_DETAILS; 714*ba62d9d3SAndroid Build Coastguard Worker 715*ba62d9d3SAndroid Build Coastguard Worker /* 716*ba62d9d3SAndroid Build Coastguard Worker * AVS SAMPLER8x8 STATE 717*ba62d9d3SAndroid Build Coastguard Worker */ 718*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_COEFF_TABLE{ 719*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_0; 720*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_1; 721*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_2; 722*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_3; 723*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_4; 724*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_5; 725*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_6; 726*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_7; 727*ba62d9d3SAndroid Build Coastguard Worker }CM_AVS_COEFF_TABLE; 728*ba62d9d3SAndroid Build Coastguard Worker 729*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_INTERNEL_COEFF_TABLE{ 730*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_0; 731*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_1; 732*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_2; 733*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_3; 734*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_4; 735*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_5; 736*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_6; 737*ba62d9d3SAndroid Build Coastguard Worker BYTE FilterCoeff_0_7; 738*ba62d9d3SAndroid Build Coastguard Worker }CM_AVS_INTERNEL_COEFF_TABLE; 739*ba62d9d3SAndroid Build Coastguard Worker 740*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_NONPIPLINED_STATE{ 741*ba62d9d3SAndroid Build Coastguard Worker bool BypassXAF; 742*ba62d9d3SAndroid Build Coastguard Worker bool BypassYAF; 743*ba62d9d3SAndroid Build Coastguard Worker BYTE DefaultSharpLvl; 744*ba62d9d3SAndroid Build Coastguard Worker BYTE maxDerivative4Pixels; 745*ba62d9d3SAndroid Build Coastguard Worker BYTE maxDerivative8Pixels; 746*ba62d9d3SAndroid Build Coastguard Worker BYTE transitionArea4Pixels; 747*ba62d9d3SAndroid Build Coastguard Worker BYTE transitionArea8Pixels; 748*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl0X[ CM_NUM_COEFF_ROWS_SKL ]; 749*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl0Y[ CM_NUM_COEFF_ROWS_SKL ]; 750*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl1X[ CM_NUM_COEFF_ROWS_SKL ]; 751*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE Tbl1Y[ CM_NUM_COEFF_ROWS_SKL ]; 752*ba62d9d3SAndroid Build Coastguard Worker bool bEnableRGBAdaptive; 753*ba62d9d3SAndroid Build Coastguard Worker bool bAdaptiveFilterAllChannels; 754*ba62d9d3SAndroid Build Coastguard Worker }CM_AVS_NONPIPLINED_STATE; 755*ba62d9d3SAndroid Build Coastguard Worker 756*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_INTERNEL_NONPIPLINED_STATE{ 757*ba62d9d3SAndroid Build Coastguard Worker bool BypassXAF; 758*ba62d9d3SAndroid Build Coastguard Worker bool BypassYAF; 759*ba62d9d3SAndroid Build Coastguard Worker BYTE DefaultSharpLvl; 760*ba62d9d3SAndroid Build Coastguard Worker BYTE maxDerivative4Pixels; 761*ba62d9d3SAndroid Build Coastguard Worker BYTE maxDerivative8Pixels; 762*ba62d9d3SAndroid Build Coastguard Worker BYTE transitionArea4Pixels; 763*ba62d9d3SAndroid Build Coastguard Worker BYTE transitionArea8Pixels; 764*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_INTERNEL_COEFF_TABLE Tbl0X[ CM_NUM_COEFF_ROWS_SKL ]; 765*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_INTERNEL_COEFF_TABLE Tbl0Y[ CM_NUM_COEFF_ROWS_SKL ]; 766*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_INTERNEL_COEFF_TABLE Tbl1X[ CM_NUM_COEFF_ROWS_SKL ]; 767*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_INTERNEL_COEFF_TABLE Tbl1Y[ CM_NUM_COEFF_ROWS_SKL ]; 768*ba62d9d3SAndroid Build Coastguard Worker bool bEnableRGBAdaptive; 769*ba62d9d3SAndroid Build Coastguard Worker bool bAdaptiveFilterAllChannels; 770*ba62d9d3SAndroid Build Coastguard Worker }CM_AVS_INTERNEL_NONPIPLINED_STATE; 771*ba62d9d3SAndroid Build Coastguard Worker 772*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_AVS_STATE_MSG{ 773*ba62d9d3SAndroid Build Coastguard Worker bool AVSTYPE; //true nearest, false adaptive 774*ba62d9d3SAndroid Build Coastguard Worker bool EightTapAFEnable; //HSW+ 775*ba62d9d3SAndroid Build Coastguard Worker bool BypassIEF; //ignored for BWL, moved to sampler8x8 payload. 776*ba62d9d3SAndroid Build Coastguard Worker bool ShuffleOutputWriteback; //SKL mode only to be set when AVS msg sequence is 4x4 or 8x4 777*ba62d9d3SAndroid Build Coastguard Worker bool HDCDirectWriteEnable; 778*ba62d9d3SAndroid Build Coastguard Worker unsigned short GainFactor; 779*ba62d9d3SAndroid Build Coastguard Worker unsigned char GlobalNoiseEstm; 780*ba62d9d3SAndroid Build Coastguard Worker unsigned char StrongEdgeThr; 781*ba62d9d3SAndroid Build Coastguard Worker unsigned char WeakEdgeThr; 782*ba62d9d3SAndroid Build Coastguard Worker unsigned char StrongEdgeWght; 783*ba62d9d3SAndroid Build Coastguard Worker unsigned char RegularWght; 784*ba62d9d3SAndroid Build Coastguard Worker unsigned char NonEdgeWght; 785*ba62d9d3SAndroid Build Coastguard Worker unsigned short wR3xCoefficient; 786*ba62d9d3SAndroid Build Coastguard Worker unsigned short wR3cCoefficient; 787*ba62d9d3SAndroid Build Coastguard Worker unsigned short wR5xCoefficient; 788*ba62d9d3SAndroid Build Coastguard Worker unsigned short wR5cxCoefficient; 789*ba62d9d3SAndroid Build Coastguard Worker unsigned short wR5cCoefficient; 790*ba62d9d3SAndroid Build Coastguard Worker //For Non-piplined states 791*ba62d9d3SAndroid Build Coastguard Worker unsigned short stateID; 792*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_NONPIPLINED_STATE * AvsState; 793*ba62d9d3SAndroid Build Coastguard Worker } CM_AVS_STATE_MSG; 794*ba62d9d3SAndroid Build Coastguard Worker 795*ba62d9d3SAndroid Build Coastguard Worker struct CM_AVS_STATE_MSG_EX { 796*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_STATE_MSG_EX(); 797*ba62d9d3SAndroid Build Coastguard Worker 798*ba62d9d3SAndroid Build Coastguard Worker bool enable_all_channel_adaptive_filter; // adaptive filter for all channels. validValues => [true..false] 799*ba62d9d3SAndroid Build Coastguard Worker bool enable_rgb_adaptive_filter; // adaptive filter for all channels. validValues => [true..false] 800*ba62d9d3SAndroid Build Coastguard Worker bool enable_8_tap_adaptive_filter; // enable 8-tap filter. validValues => [true..false] 801*ba62d9d3SAndroid Build Coastguard Worker bool enable_uv_8_tap_filter; // enable 8-tap filter on UV/RB channels. validValues => [true..false] 802*ba62d9d3SAndroid Build Coastguard Worker bool writeback_format; // true sampleunorm, false standard. validValues => [true..false] 803*ba62d9d3SAndroid Build Coastguard Worker bool writeback_mode; // true vsa, false ief. validValues => [true..false] 804*ba62d9d3SAndroid Build Coastguard Worker BYTE state_selection; // 0=>first,1=>second scaler8x8 state. validValues => [0..1] 805*ba62d9d3SAndroid Build Coastguard Worker 806*ba62d9d3SAndroid Build Coastguard Worker // Image enhancement filter settings. 807*ba62d9d3SAndroid Build Coastguard Worker bool enable_ief; // image enhancement filter enable. validValues => [true..false] 808*ba62d9d3SAndroid Build Coastguard Worker bool ief_type; // true "basic" or false "advanced". validValues => [true..false] 809*ba62d9d3SAndroid Build Coastguard Worker bool enable_ief_smooth; // true based on 3x3, false based on 5x5 validValues => [true..false] 810*ba62d9d3SAndroid Build Coastguard Worker float r3c_coefficient; // smoothing coeffient. Valid values => [0.0..0.96875] 811*ba62d9d3SAndroid Build Coastguard Worker float r3x_coefficient; // smoothing coeffient. Valid values => [0.0..0.96875] 812*ba62d9d3SAndroid Build Coastguard Worker float r5c_coefficient; // smoothing coeffient. validValues => [0.0..0.96875] 813*ba62d9d3SAndroid Build Coastguard Worker float r5cx_coefficient; // smoothing coeffient. validValues => [0.0..0.96875] 814*ba62d9d3SAndroid Build Coastguard Worker float r5x_coefficient; // smoothing coeffient. validValues => [0.0..0.96875] 815*ba62d9d3SAndroid Build Coastguard Worker 816*ba62d9d3SAndroid Build Coastguard Worker // Edge processing settings. 817*ba62d9d3SAndroid Build Coastguard Worker BYTE strong_edge_threshold; // validValues => [0..64] 818*ba62d9d3SAndroid Build Coastguard Worker BYTE strong_edge_weight; // Sharpening strength when a strong edge. validValues => [0..7] 819*ba62d9d3SAndroid Build Coastguard Worker BYTE weak_edge_threshold; // validValues => [0..64] 820*ba62d9d3SAndroid Build Coastguard Worker BYTE regular_edge_weight; // Sharpening strength when a weak edge. validValues => [0..7] 821*ba62d9d3SAndroid Build Coastguard Worker BYTE non_edge_weight; // Sharpening strength when no edge. validValues => [0..7] 822*ba62d9d3SAndroid Build Coastguard Worker 823*ba62d9d3SAndroid Build Coastguard Worker // Chroma key. 824*ba62d9d3SAndroid Build Coastguard Worker bool enable_chroma_key; // Chroma keying be performed. validValues => [true..false] 825*ba62d9d3SAndroid Build Coastguard Worker BYTE chroma_key_index; // ChromaKey Table entry. validValues => [0..3] 826*ba62d9d3SAndroid Build Coastguard Worker 827*ba62d9d3SAndroid Build Coastguard Worker // Skin tone settings. 828*ba62d9d3SAndroid Build Coastguard Worker bool enable_skin_tone; // SkinToneTunedIEF_Enable. validValues => [true..false] 829*ba62d9d3SAndroid Build Coastguard Worker bool enable_vy_skin_tone_detection; // Enables STD in the VY subspace. validValues => [true..false] 830*ba62d9d3SAndroid Build Coastguard Worker bool skin_detail_factor; // validValues => [true..false] 831*ba62d9d3SAndroid Build Coastguard Worker BYTE skin_types_margin; // validValues => [0..255] 832*ba62d9d3SAndroid Build Coastguard Worker BYTE skin_types_threshold; // validValues => [0..255] 833*ba62d9d3SAndroid Build Coastguard Worker 834*ba62d9d3SAndroid Build Coastguard Worker // Miscellaneous settings. 835*ba62d9d3SAndroid Build Coastguard Worker BYTE gain_factor; // validValues => [0..63] 836*ba62d9d3SAndroid Build Coastguard Worker BYTE global_noise_estimation; // validValues => [0..255] 837*ba62d9d3SAndroid Build Coastguard Worker bool mr_boost; // validValues => [true..false] 838*ba62d9d3SAndroid Build Coastguard Worker BYTE mr_smooth_threshold; // validValues => [0..3] 839*ba62d9d3SAndroid Build Coastguard Worker BYTE mr_threshold; 840*ba62d9d3SAndroid Build Coastguard Worker bool steepness_boost; // validValues => [true..false] 841*ba62d9d3SAndroid Build Coastguard Worker BYTE steepness_threshold; // validValues => [0..15] 842*ba62d9d3SAndroid Build Coastguard Worker bool texture_coordinate_mode; // true: clamp, false: mirror. validValues => [true..false] 843*ba62d9d3SAndroid Build Coastguard Worker BYTE max_hue; // Rectangle half width. validValued => [0..63] 844*ba62d9d3SAndroid Build Coastguard Worker BYTE max_saturation; // Rectangle half length. validValued => [0..63] 845*ba62d9d3SAndroid Build Coastguard Worker int angles; // validValued => [0..360] 846*ba62d9d3SAndroid Build Coastguard Worker BYTE diamond_margin ; // validValues => [0..7] 847*ba62d9d3SAndroid Build Coastguard Worker char diamond_du; // Rhombus center shift in the sat-direction. validValues => [-64..63] 848*ba62d9d3SAndroid Build Coastguard Worker char diamond_dv; // Rhombus center shift in the hue-direction. validValues => [-64..63] 849*ba62d9d3SAndroid Build Coastguard Worker float diamond_alpha; // validValues => [0.0..4.0] 850*ba62d9d3SAndroid Build Coastguard Worker BYTE diamond_threshold; // validValues => [0..63] 851*ba62d9d3SAndroid Build Coastguard Worker BYTE rectangle_margin; // validValues => [0..7] 852*ba62d9d3SAndroid Build Coastguard Worker BYTE rectangle_midpoint[2]; // validValues => [[0..255, 0..255]] 853*ba62d9d3SAndroid Build Coastguard Worker float vy_inverse_margin[2]; // validValues => [[0.0..1.0, 0.0..1.0]] 854*ba62d9d3SAndroid Build Coastguard Worker 855*ba62d9d3SAndroid Build Coastguard Worker // Piecewise linear function settings. 856*ba62d9d3SAndroid Build Coastguard Worker BYTE piecewise_linear_y_points[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 857*ba62d9d3SAndroid Build Coastguard Worker float piecewise_linear_y_slopes[2]; // validValues => [[-4.0...4.0, -4.0...4.0]] 858*ba62d9d3SAndroid Build Coastguard Worker BYTE piecewise_linear_points_lower[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 859*ba62d9d3SAndroid Build Coastguard Worker BYTE piecewise_linear_points_upper[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 860*ba62d9d3SAndroid Build Coastguard Worker float piecewise_linear_slopes_lower[4]; // validValues => [[-4.0...4.0, -4.0...4.0, -4.0...4.0, -4.0...4.0]] 861*ba62d9d3SAndroid Build Coastguard Worker float piecewise_linear_slopes_upper[4]; // validValues => [[-4.0...4.0, -4.0...4.0, -4.0...4.0, -4.0...4.0]] 862*ba62d9d3SAndroid Build Coastguard Worker BYTE piecewise_linear_biases_lower[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 863*ba62d9d3SAndroid Build Coastguard Worker BYTE piecewise_linear_biases_upper[4]; // validValues => [[0..255, 0..255, 0..255, 0..255]] 864*ba62d9d3SAndroid Build Coastguard Worker 865*ba62d9d3SAndroid Build Coastguard Worker // AVS non-pipelined states. 866*ba62d9d3SAndroid Build Coastguard Worker BYTE default_sharpness_level; // default coefficient between smooth and sharp filtering. validValues => [0..255] 867*ba62d9d3SAndroid Build Coastguard Worker bool enable_x_adaptive_filter; // validValues => [true, false] 868*ba62d9d3SAndroid Build Coastguard Worker bool enable_y_adaptive_filter; // validValues => [true, false] 869*ba62d9d3SAndroid Build Coastguard Worker BYTE max_derivative_4_pixels; // lower boundary of the smooth 4 pixel area. validValues => [0..255] 870*ba62d9d3SAndroid Build Coastguard Worker BYTE max_derivative_8_pixels; // lower boundary of the smooth 8 pixel area. validValues => [0..255] 871*ba62d9d3SAndroid Build Coastguard Worker BYTE transition_area_4_pixels; // used in adaptive filtering to specify the width of the transition area for the 4 pixel calculation. validValues => [0..8] 872*ba62d9d3SAndroid Build Coastguard Worker BYTE transition_area_8_pixels; // Used in adaptive filtering to specify the width of the transition area for the 8 pixel calculation. validValues => [0..8] 873*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table0_x[CM_NUM_COEFF_ROWS_SKL]; 874*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table0_y[CM_NUM_COEFF_ROWS_SKL]; 875*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table1_x[CM_NUM_COEFF_ROWS_SKL]; 876*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_COEFF_TABLE table1_y[CM_NUM_COEFF_ROWS_SKL]; 877*ba62d9d3SAndroid Build Coastguard Worker }; 878*ba62d9d3SAndroid Build Coastguard Worker 879*ba62d9d3SAndroid Build Coastguard Worker /* 880*ba62d9d3SAndroid Build Coastguard Worker * CONVOLVE STATE DATA STRUCTURES 881*ba62d9d3SAndroid Build Coastguard Worker */ 882*ba62d9d3SAndroid Build Coastguard Worker 883*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_CONVOLVE_COEFF_TABLE{ 884*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_0; 885*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_1; 886*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_2; 887*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_3; 888*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_4; 889*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_5; 890*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_6; 891*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_7; 892*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_8; 893*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_9; 894*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_10; 895*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_11; 896*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_12; 897*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_13; 898*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_14; 899*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_15; 900*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_16; 901*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_17; 902*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_18; 903*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_19; 904*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_20; 905*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_21; 906*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_22; 907*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_23; 908*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_24; 909*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_25; 910*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_26; 911*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_27; 912*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_28; 913*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_29; 914*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_30; 915*ba62d9d3SAndroid Build Coastguard Worker float FilterCoeff_0_31; 916*ba62d9d3SAndroid Build Coastguard Worker }CM_CONVOLVE_COEFF_TABLE; 917*ba62d9d3SAndroid Build Coastguard Worker 918*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_CONVOLVE_STATE_MSG{ 919*ba62d9d3SAndroid Build Coastguard Worker bool CoeffSize; //true 16-bit, false 8-bit 920*ba62d9d3SAndroid Build Coastguard Worker byte SclDwnValue; //Scale down value 921*ba62d9d3SAndroid Build Coastguard Worker byte Width; //Kernel Width 922*ba62d9d3SAndroid Build Coastguard Worker byte Height; //Kernel Height 923*ba62d9d3SAndroid Build Coastguard Worker //SKL mode 924*ba62d9d3SAndroid Build Coastguard Worker bool isVertical32Mode; 925*ba62d9d3SAndroid Build Coastguard Worker bool isHorizontal32Mode; 926*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_SKL_TYPE nConvolveType; 927*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_COEFF_TABLE Table[CM_NUM_CONVOLVE_ROWS_SKL]; 928*ba62d9d3SAndroid Build Coastguard Worker } CM_CONVOLVE_STATE_MSG; 929*ba62d9d3SAndroid Build Coastguard Worker 930*ba62d9d3SAndroid Build Coastguard Worker /* 931*ba62d9d3SAndroid Build Coastguard Worker * MISC SAMPLER8x8 State 932*ba62d9d3SAndroid Build Coastguard Worker */ 933*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_MISC_STATE { 934*ba62d9d3SAndroid Build Coastguard Worker //DWORD 0 935*ba62d9d3SAndroid Build Coastguard Worker union{ 936*ba62d9d3SAndroid Build Coastguard Worker struct{ 937*ba62d9d3SAndroid Build Coastguard Worker DWORD Row0 : 16; 938*ba62d9d3SAndroid Build Coastguard Worker DWORD Reserved : 8; 939*ba62d9d3SAndroid Build Coastguard Worker DWORD Width : 4; 940*ba62d9d3SAndroid Build Coastguard Worker DWORD Height : 4; 941*ba62d9d3SAndroid Build Coastguard Worker }; 942*ba62d9d3SAndroid Build Coastguard Worker struct{ 943*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 944*ba62d9d3SAndroid Build Coastguard Worker }; 945*ba62d9d3SAndroid Build Coastguard Worker } DW0; 946*ba62d9d3SAndroid Build Coastguard Worker 947*ba62d9d3SAndroid Build Coastguard Worker //DWORD 1 948*ba62d9d3SAndroid Build Coastguard Worker union{ 949*ba62d9d3SAndroid Build Coastguard Worker struct{ 950*ba62d9d3SAndroid Build Coastguard Worker DWORD Row1 : 16; 951*ba62d9d3SAndroid Build Coastguard Worker DWORD Row2 : 16; 952*ba62d9d3SAndroid Build Coastguard Worker }; 953*ba62d9d3SAndroid Build Coastguard Worker struct{ 954*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 955*ba62d9d3SAndroid Build Coastguard Worker }; 956*ba62d9d3SAndroid Build Coastguard Worker } DW1; 957*ba62d9d3SAndroid Build Coastguard Worker 958*ba62d9d3SAndroid Build Coastguard Worker //DWORD 2 959*ba62d9d3SAndroid Build Coastguard Worker union{ 960*ba62d9d3SAndroid Build Coastguard Worker struct{ 961*ba62d9d3SAndroid Build Coastguard Worker DWORD Row3 : 16; 962*ba62d9d3SAndroid Build Coastguard Worker DWORD Row4 : 16; 963*ba62d9d3SAndroid Build Coastguard Worker }; 964*ba62d9d3SAndroid Build Coastguard Worker struct{ 965*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 966*ba62d9d3SAndroid Build Coastguard Worker }; 967*ba62d9d3SAndroid Build Coastguard Worker } DW2; 968*ba62d9d3SAndroid Build Coastguard Worker 969*ba62d9d3SAndroid Build Coastguard Worker //DWORD 3 970*ba62d9d3SAndroid Build Coastguard Worker union{ 971*ba62d9d3SAndroid Build Coastguard Worker struct{ 972*ba62d9d3SAndroid Build Coastguard Worker DWORD Row5 : 16; 973*ba62d9d3SAndroid Build Coastguard Worker DWORD Row6 : 16; 974*ba62d9d3SAndroid Build Coastguard Worker }; 975*ba62d9d3SAndroid Build Coastguard Worker struct{ 976*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 977*ba62d9d3SAndroid Build Coastguard Worker }; 978*ba62d9d3SAndroid Build Coastguard Worker } DW3; 979*ba62d9d3SAndroid Build Coastguard Worker 980*ba62d9d3SAndroid Build Coastguard Worker //DWORD 4 981*ba62d9d3SAndroid Build Coastguard Worker union{ 982*ba62d9d3SAndroid Build Coastguard Worker struct{ 983*ba62d9d3SAndroid Build Coastguard Worker DWORD Row7 : 16; 984*ba62d9d3SAndroid Build Coastguard Worker DWORD Row8 : 16; 985*ba62d9d3SAndroid Build Coastguard Worker }; 986*ba62d9d3SAndroid Build Coastguard Worker struct{ 987*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 988*ba62d9d3SAndroid Build Coastguard Worker }; 989*ba62d9d3SAndroid Build Coastguard Worker } DW4; 990*ba62d9d3SAndroid Build Coastguard Worker 991*ba62d9d3SAndroid Build Coastguard Worker //DWORD 5 992*ba62d9d3SAndroid Build Coastguard Worker union{ 993*ba62d9d3SAndroid Build Coastguard Worker struct{ 994*ba62d9d3SAndroid Build Coastguard Worker DWORD Row9 : 16; 995*ba62d9d3SAndroid Build Coastguard Worker DWORD Row10 : 16; 996*ba62d9d3SAndroid Build Coastguard Worker }; 997*ba62d9d3SAndroid Build Coastguard Worker struct{ 998*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 999*ba62d9d3SAndroid Build Coastguard Worker }; 1000*ba62d9d3SAndroid Build Coastguard Worker } DW5; 1001*ba62d9d3SAndroid Build Coastguard Worker 1002*ba62d9d3SAndroid Build Coastguard Worker //DWORD 6 1003*ba62d9d3SAndroid Build Coastguard Worker union{ 1004*ba62d9d3SAndroid Build Coastguard Worker struct{ 1005*ba62d9d3SAndroid Build Coastguard Worker DWORD Row11 : 16; 1006*ba62d9d3SAndroid Build Coastguard Worker DWORD Row12 : 16; 1007*ba62d9d3SAndroid Build Coastguard Worker }; 1008*ba62d9d3SAndroid Build Coastguard Worker struct{ 1009*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1010*ba62d9d3SAndroid Build Coastguard Worker }; 1011*ba62d9d3SAndroid Build Coastguard Worker } DW6; 1012*ba62d9d3SAndroid Build Coastguard Worker 1013*ba62d9d3SAndroid Build Coastguard Worker //DWORD 7 1014*ba62d9d3SAndroid Build Coastguard Worker union{ 1015*ba62d9d3SAndroid Build Coastguard Worker struct{ 1016*ba62d9d3SAndroid Build Coastguard Worker DWORD Row13 : 16; 1017*ba62d9d3SAndroid Build Coastguard Worker DWORD Row14 : 16; 1018*ba62d9d3SAndroid Build Coastguard Worker }; 1019*ba62d9d3SAndroid Build Coastguard Worker struct{ 1020*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1021*ba62d9d3SAndroid Build Coastguard Worker }; 1022*ba62d9d3SAndroid Build Coastguard Worker } DW7; 1023*ba62d9d3SAndroid Build Coastguard Worker } CM_MISC_STATE; 1024*ba62d9d3SAndroid Build Coastguard Worker 1025*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_MISC_STATE_MSG{ 1026*ba62d9d3SAndroid Build Coastguard Worker //DWORD 0 1027*ba62d9d3SAndroid Build Coastguard Worker union{ 1028*ba62d9d3SAndroid Build Coastguard Worker struct{ 1029*ba62d9d3SAndroid Build Coastguard Worker DWORD Row0 : 16; 1030*ba62d9d3SAndroid Build Coastguard Worker DWORD Reserved : 8; 1031*ba62d9d3SAndroid Build Coastguard Worker DWORD Width : 4; 1032*ba62d9d3SAndroid Build Coastguard Worker DWORD Height : 4; 1033*ba62d9d3SAndroid Build Coastguard Worker }; 1034*ba62d9d3SAndroid Build Coastguard Worker struct{ 1035*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1036*ba62d9d3SAndroid Build Coastguard Worker }; 1037*ba62d9d3SAndroid Build Coastguard Worker }DW0; 1038*ba62d9d3SAndroid Build Coastguard Worker 1039*ba62d9d3SAndroid Build Coastguard Worker //DWORD 1 1040*ba62d9d3SAndroid Build Coastguard Worker union{ 1041*ba62d9d3SAndroid Build Coastguard Worker struct{ 1042*ba62d9d3SAndroid Build Coastguard Worker DWORD Row1 : 16; 1043*ba62d9d3SAndroid Build Coastguard Worker DWORD Row2 : 16; 1044*ba62d9d3SAndroid Build Coastguard Worker }; 1045*ba62d9d3SAndroid Build Coastguard Worker struct{ 1046*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1047*ba62d9d3SAndroid Build Coastguard Worker }; 1048*ba62d9d3SAndroid Build Coastguard Worker }DW1; 1049*ba62d9d3SAndroid Build Coastguard Worker 1050*ba62d9d3SAndroid Build Coastguard Worker //DWORD 2 1051*ba62d9d3SAndroid Build Coastguard Worker union{ 1052*ba62d9d3SAndroid Build Coastguard Worker struct{ 1053*ba62d9d3SAndroid Build Coastguard Worker DWORD Row3 : 16; 1054*ba62d9d3SAndroid Build Coastguard Worker DWORD Row4 : 16; 1055*ba62d9d3SAndroid Build Coastguard Worker }; 1056*ba62d9d3SAndroid Build Coastguard Worker struct{ 1057*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1058*ba62d9d3SAndroid Build Coastguard Worker }; 1059*ba62d9d3SAndroid Build Coastguard Worker }DW2; 1060*ba62d9d3SAndroid Build Coastguard Worker 1061*ba62d9d3SAndroid Build Coastguard Worker //DWORD 3 1062*ba62d9d3SAndroid Build Coastguard Worker union{ 1063*ba62d9d3SAndroid Build Coastguard Worker struct{ 1064*ba62d9d3SAndroid Build Coastguard Worker DWORD Row5 : 16; 1065*ba62d9d3SAndroid Build Coastguard Worker DWORD Row6 : 16; 1066*ba62d9d3SAndroid Build Coastguard Worker }; 1067*ba62d9d3SAndroid Build Coastguard Worker struct{ 1068*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1069*ba62d9d3SAndroid Build Coastguard Worker }; 1070*ba62d9d3SAndroid Build Coastguard Worker }DW3; 1071*ba62d9d3SAndroid Build Coastguard Worker 1072*ba62d9d3SAndroid Build Coastguard Worker //DWORD 4 1073*ba62d9d3SAndroid Build Coastguard Worker union{ 1074*ba62d9d3SAndroid Build Coastguard Worker struct{ 1075*ba62d9d3SAndroid Build Coastguard Worker DWORD Row7 : 16; 1076*ba62d9d3SAndroid Build Coastguard Worker DWORD Row8 : 16; 1077*ba62d9d3SAndroid Build Coastguard Worker }; 1078*ba62d9d3SAndroid Build Coastguard Worker struct{ 1079*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1080*ba62d9d3SAndroid Build Coastguard Worker }; 1081*ba62d9d3SAndroid Build Coastguard Worker }DW4; 1082*ba62d9d3SAndroid Build Coastguard Worker 1083*ba62d9d3SAndroid Build Coastguard Worker //DWORD 5 1084*ba62d9d3SAndroid Build Coastguard Worker union{ 1085*ba62d9d3SAndroid Build Coastguard Worker struct{ 1086*ba62d9d3SAndroid Build Coastguard Worker DWORD Row9 : 16; 1087*ba62d9d3SAndroid Build Coastguard Worker DWORD Row10 : 16; 1088*ba62d9d3SAndroid Build Coastguard Worker }; 1089*ba62d9d3SAndroid Build Coastguard Worker struct{ 1090*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1091*ba62d9d3SAndroid Build Coastguard Worker }; 1092*ba62d9d3SAndroid Build Coastguard Worker }DW5; 1093*ba62d9d3SAndroid Build Coastguard Worker 1094*ba62d9d3SAndroid Build Coastguard Worker //DWORD 6 1095*ba62d9d3SAndroid Build Coastguard Worker union{ 1096*ba62d9d3SAndroid Build Coastguard Worker struct{ 1097*ba62d9d3SAndroid Build Coastguard Worker DWORD Row11 : 16; 1098*ba62d9d3SAndroid Build Coastguard Worker DWORD Row12 : 16; 1099*ba62d9d3SAndroid Build Coastguard Worker }; 1100*ba62d9d3SAndroid Build Coastguard Worker struct{ 1101*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1102*ba62d9d3SAndroid Build Coastguard Worker }; 1103*ba62d9d3SAndroid Build Coastguard Worker }DW6; 1104*ba62d9d3SAndroid Build Coastguard Worker 1105*ba62d9d3SAndroid Build Coastguard Worker //DWORD 7 1106*ba62d9d3SAndroid Build Coastguard Worker union{ 1107*ba62d9d3SAndroid Build Coastguard Worker struct{ 1108*ba62d9d3SAndroid Build Coastguard Worker DWORD Row13 : 16; 1109*ba62d9d3SAndroid Build Coastguard Worker DWORD Row14 : 16; 1110*ba62d9d3SAndroid Build Coastguard Worker }; 1111*ba62d9d3SAndroid Build Coastguard Worker struct{ 1112*ba62d9d3SAndroid Build Coastguard Worker DWORD value; 1113*ba62d9d3SAndroid Build Coastguard Worker }; 1114*ba62d9d3SAndroid Build Coastguard Worker }DW7; 1115*ba62d9d3SAndroid Build Coastguard Worker } CM_MISC_STATE_MSG; 1116*ba62d9d3SAndroid Build Coastguard Worker 1117*ba62d9d3SAndroid Build Coastguard Worker enum CM_SAMPLER_STATE_TYPE { 1118*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_AVS = 0, 1119*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV = 1, 1120*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_MISC = 3, 1121*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV1DH = 4, 1122*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_CONV1DV = 5, 1123*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_AVS_EX = 6, 1124*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER8X8_NONE 1125*ba62d9d3SAndroid Build Coastguard Worker }; 1126*ba62d9d3SAndroid Build Coastguard Worker 1127*ba62d9d3SAndroid Build Coastguard Worker struct CM_SAMPLER_8X8_DESCR { 1128*ba62d9d3SAndroid Build Coastguard Worker CM_SAMPLER_STATE_TYPE stateType; 1129*ba62d9d3SAndroid Build Coastguard Worker union { 1130*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_STATE_MSG *avs; 1131*ba62d9d3SAndroid Build Coastguard Worker CM_AVS_STATE_MSG_EX *avs_ex; 1132*ba62d9d3SAndroid Build Coastguard Worker CM_CONVOLVE_STATE_MSG *conv; 1133*ba62d9d3SAndroid Build Coastguard Worker CM_MISC_STATE_MSG *misc; //ERODE/DILATE/MINMAX 1134*ba62d9d3SAndroid Build Coastguard Worker }; 1135*ba62d9d3SAndroid Build Coastguard Worker }; 1136*ba62d9d3SAndroid Build Coastguard Worker 1137*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_VEBOX_STATE 1138*ba62d9d3SAndroid Build Coastguard Worker { 1139*ba62d9d3SAndroid Build Coastguard Worker 1140*ba62d9d3SAndroid Build Coastguard Worker DWORD ColorGamutExpansionEnable : 1; 1141*ba62d9d3SAndroid Build Coastguard Worker DWORD ColorGamutCompressionEnable : 1; 1142*ba62d9d3SAndroid Build Coastguard Worker DWORD GlobalIECPEnable : 1; 1143*ba62d9d3SAndroid Build Coastguard Worker DWORD DNEnable : 1; 1144*ba62d9d3SAndroid Build Coastguard Worker DWORD DIEnable : 1; 1145*ba62d9d3SAndroid Build Coastguard Worker DWORD DNDIFirstFrame : 1; 1146*ba62d9d3SAndroid Build Coastguard Worker DWORD DownsampleMethod422to420 : 1; 1147*ba62d9d3SAndroid Build Coastguard Worker DWORD DownsampleMethod444to422 : 1; 1148*ba62d9d3SAndroid Build Coastguard Worker DWORD DIOutputFrames : 2; 1149*ba62d9d3SAndroid Build Coastguard Worker DWORD DemosaicEnable : 1; 1150*ba62d9d3SAndroid Build Coastguard Worker DWORD VignetteEnable : 1; 1151*ba62d9d3SAndroid Build Coastguard Worker DWORD AlphaPlaneEnable : 1; 1152*ba62d9d3SAndroid Build Coastguard Worker DWORD HotPixelFilteringEnable : 1; 1153*ba62d9d3SAndroid Build Coastguard Worker DWORD SingleSliceVeboxEnable : 1; 1154*ba62d9d3SAndroid Build Coastguard Worker DWORD LaceCorrectionEnable : BITFIELD_BIT(16); 1155*ba62d9d3SAndroid Build Coastguard Worker DWORD DisableEncoderStatistics : BITFIELD_BIT(17); 1156*ba62d9d3SAndroid Build Coastguard Worker DWORD DisableTemporalDenoiseFilter : BITFIELD_BIT(18); 1157*ba62d9d3SAndroid Build Coastguard Worker DWORD SinglePipeEnable : BITFIELD_BIT(19); 1158*ba62d9d3SAndroid Build Coastguard Worker DWORD __CODEGEN_UNIQUE(Reserved) : BITFIELD_BIT(20); 1159*ba62d9d3SAndroid Build Coastguard Worker DWORD ForwardGammaCorrectionEnable : BITFIELD_BIT(21); 1160*ba62d9d3SAndroid Build Coastguard Worker DWORD __CODEGEN_UNIQUE(Reserved) : BITFIELD_RANGE(22, 24); 1161*ba62d9d3SAndroid Build Coastguard Worker DWORD StateSurfaceControlBits : BITFIELD_RANGE(25, 31); 1162*ba62d9d3SAndroid Build Coastguard Worker } CM_VEBOX_STATE, *PCM_VEBOX_STATE; 1163*ba62d9d3SAndroid Build Coastguard Worker 1164*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_POWER_OPTION 1165*ba62d9d3SAndroid Build Coastguard Worker { 1166*ba62d9d3SAndroid Build Coastguard Worker USHORT nSlice; // set number of slice to use: 0(default number), 1, 2... 1167*ba62d9d3SAndroid Build Coastguard Worker USHORT nSubSlice; // set number of subslice to use: 0(default number), 1, 2... 1168*ba62d9d3SAndroid Build Coastguard Worker USHORT nEU; // set number of EU to use: 0(default number), 1, 2... 1169*ba62d9d3SAndroid Build Coastguard Worker } CM_POWER_OPTION, *PCM_POWER_OPTION; 1170*ba62d9d3SAndroid Build Coastguard Worker 1171*ba62d9d3SAndroid Build Coastguard Worker // to support new flag with current API 1172*ba62d9d3SAndroid Build Coastguard Worker // new flag/field could be add to the end of this structure 1173*ba62d9d3SAndroid Build Coastguard Worker // 1174*ba62d9d3SAndroid Build Coastguard Worker struct CM_FLAG { 1175*ba62d9d3SAndroid Build Coastguard Worker CM_FLAG(); 1176*ba62d9d3SAndroid Build Coastguard Worker CM_ROTATION rotationFlag; 1177*ba62d9d3SAndroid Build Coastguard Worker INT chromaSiting; 1178*ba62d9d3SAndroid Build Coastguard Worker }; 1179*ba62d9d3SAndroid Build Coastguard Worker 1180*ba62d9d3SAndroid Build Coastguard Worker struct _CM_TASK_CONFIG { 1181*ba62d9d3SAndroid Build Coastguard Worker bool turboBoostFlag : 1; 1182*ba62d9d3SAndroid Build Coastguard Worker bool fusedEuDispatchFlag : 1; 1183*ba62d9d3SAndroid Build Coastguard Worker uint32_t reserved_bits :30; 1184*ba62d9d3SAndroid Build Coastguard Worker uint32_t reserved0; 1185*ba62d9d3SAndroid Build Coastguard Worker uint32_t reserved1; 1186*ba62d9d3SAndroid Build Coastguard Worker uint32_t reserved2; 1187*ba62d9d3SAndroid Build Coastguard Worker }; 1188*ba62d9d3SAndroid Build Coastguard Worker 1189*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_KERNEL_EXEC_MODE { 1190*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_EXECUTION_MODE_MONOPOLIZED = 0, // Kernel can occupy all DSS for execution */ 1191*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_EXECUTION_MODE_CONCURRENT, // Kernel can occupy part of DSS and concurrently execute together with other workloads. 1192*ba62d9d3SAndroid Build Coastguard Worker } CM_KERNEL_EXEC_MODE; 1193*ba62d9d3SAndroid Build Coastguard Worker 1194*ba62d9d3SAndroid Build Coastguard Worker struct CM_EXECUTION_CONFIG { 1195*ba62d9d3SAndroid Build Coastguard Worker CM_KERNEL_EXEC_MODE kernelExecutionMode = CM_KERNEL_EXECUTION_MODE_MONOPOLIZED; 1196*ba62d9d3SAndroid Build Coastguard Worker int concurrentPolicy = 0; // Reserve for future extension. 1197*ba62d9d3SAndroid Build Coastguard Worker }; 1198*ba62d9d3SAndroid Build Coastguard Worker 1199*ba62d9d3SAndroid Build Coastguard Worker #define CM_TASK_CONFIG _CM_TASK_CONFIG 1200*ba62d9d3SAndroid Build Coastguard Worker 1201*ba62d9d3SAndroid Build Coastguard Worker // parameters used to set the surface state of the buffer 1202*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SURFACE_MEM_OBJ_CTRL { 1203*ba62d9d3SAndroid Build Coastguard Worker MEMORY_OBJECT_CONTROL mem_ctrl; 1204*ba62d9d3SAndroid Build Coastguard Worker MEMORY_TYPE mem_type; 1205*ba62d9d3SAndroid Build Coastguard Worker INT age; 1206*ba62d9d3SAndroid Build Coastguard Worker } CM_SURFACE_MEM_OBJ_CTRL; 1207*ba62d9d3SAndroid Build Coastguard Worker 1208*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_BUFFER_STATE_PARAM 1209*ba62d9d3SAndroid Build Coastguard Worker { 1210*ba62d9d3SAndroid Build Coastguard Worker UINT uiSize; // the new size of the buffer, if it is 0, set it as the (original width - offset) 1211*ba62d9d3SAndroid Build Coastguard Worker UINT uiBaseAddressOffset; // offset should be 16-aligned 1212*ba62d9d3SAndroid Build Coastguard Worker CM_SURFACE_MEM_OBJ_CTRL mocs; // if not set (all zeros), then the aliases mocs setting is the same as the origin 1213*ba62d9d3SAndroid Build Coastguard Worker }CM_BUFFER_STATE_PARAM; 1214*ba62d9d3SAndroid Build Coastguard Worker 1215*ba62d9d3SAndroid Build Coastguard Worker typedef struct _CM_SURFACE2D_STATE_PARAM 1216*ba62d9d3SAndroid Build Coastguard Worker { 1217*ba62d9d3SAndroid Build Coastguard Worker UINT format; 1218*ba62d9d3SAndroid Build Coastguard Worker UINT width; 1219*ba62d9d3SAndroid Build Coastguard Worker UINT height; 1220*ba62d9d3SAndroid Build Coastguard Worker UINT depth; 1221*ba62d9d3SAndroid Build Coastguard Worker UINT pitch; 1222*ba62d9d3SAndroid Build Coastguard Worker WORD memory_object_control; 1223*ba62d9d3SAndroid Build Coastguard Worker UINT surface_x_offset; 1224*ba62d9d3SAndroid Build Coastguard Worker UINT surface_y_offset; 1225*ba62d9d3SAndroid Build Coastguard Worker UINT reserved[4]; // for future usage 1226*ba62d9d3SAndroid Build Coastguard Worker } CM_SURFACE2D_STATE_PARAM; 1227*ba62d9d3SAndroid Build Coastguard Worker 1228*ba62d9d3SAndroid Build Coastguard Worker struct _CM_QUEUE_CREATE_OPTION 1229*ba62d9d3SAndroid Build Coastguard Worker { 1230*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_TYPE QueueType : 3; 1231*ba62d9d3SAndroid Build Coastguard Worker bool RAMode : 1; 1232*ba62d9d3SAndroid Build Coastguard Worker unsigned int Reserved0 : 3; 1233*ba62d9d3SAndroid Build Coastguard Worker bool UserGPUContext : 1; // Is the user-provided GPU Context already created externally 1234*ba62d9d3SAndroid Build Coastguard Worker unsigned int GPUContext : 8; // user-provided GPU Context ordinal 1235*ba62d9d3SAndroid Build Coastguard Worker CM_QUEUE_SSEU_USAGE_HINT_TYPE SseuUsageHint : 3; 1236*ba62d9d3SAndroid Build Coastguard Worker unsigned int Reserved1 : 1; 1237*ba62d9d3SAndroid Build Coastguard Worker unsigned int Reserved2 : 12; 1238*ba62d9d3SAndroid Build Coastguard Worker }; 1239*ba62d9d3SAndroid Build Coastguard Worker #define CM_QUEUE_CREATE_OPTION _CM_QUEUE_CREATE_OPTION 1240*ba62d9d3SAndroid Build Coastguard Worker 1241*ba62d9d3SAndroid Build Coastguard Worker typedef enum _CM_CONDITIONAL_END_OPERATOR_CODE { 1242*ba62d9d3SAndroid Build Coastguard Worker MAD_GREATER_THAN_IDD = 0, 1243*ba62d9d3SAndroid Build Coastguard Worker MAD_GREATER_THAN_OR_EQUAL_IDD, 1244*ba62d9d3SAndroid Build Coastguard Worker MAD_LESS_THAN_IDD, 1245*ba62d9d3SAndroid Build Coastguard Worker MAD_LESS_THAN_OR_EQUAL_IDD, 1246*ba62d9d3SAndroid Build Coastguard Worker MAD_EQUAL_IDD, 1247*ba62d9d3SAndroid Build Coastguard Worker MAD_NOT_EQUAL_IDD 1248*ba62d9d3SAndroid Build Coastguard Worker } CM_CONDITIONAL_END_OPERATOR_CODE; 1249*ba62d9d3SAndroid Build Coastguard Worker 1250*ba62d9d3SAndroid Build Coastguard Worker struct CM_CONDITIONAL_END_PARAM { 1251*ba62d9d3SAndroid Build Coastguard Worker DWORD opValue; 1252*ba62d9d3SAndroid Build Coastguard Worker CM_CONDITIONAL_END_OPERATOR_CODE opCode; 1253*ba62d9d3SAndroid Build Coastguard Worker bool opMask; 1254*ba62d9d3SAndroid Build Coastguard Worker bool opLevel; 1255*ba62d9d3SAndroid Build Coastguard Worker }; 1256*ba62d9d3SAndroid Build Coastguard Worker 1257*ba62d9d3SAndroid Build Coastguard Worker struct CM_KERNEL_SYNC_CONFIG { 1258*ba62d9d3SAndroid Build Coastguard Worker bool dataCacheFlush : 1; // true: cache will be flushed; 1259*ba62d9d3SAndroid Build Coastguard Worker uint32_t reserved : 31; 1260*ba62d9d3SAndroid Build Coastguard Worker }; 1261*ba62d9d3SAndroid Build Coastguard Worker 1262*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1263*ba62d9d3SAndroid Build Coastguard Worker // Classes forward declarations 1264*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1265*ba62d9d3SAndroid Build Coastguard Worker class CmSampler8x8; 1266*ba62d9d3SAndroid Build Coastguard Worker class CmEvent; 1267*ba62d9d3SAndroid Build Coastguard Worker class CmThreadGroupSpace; 1268*ba62d9d3SAndroid Build Coastguard Worker class CmKernel; 1269*ba62d9d3SAndroid Build Coastguard Worker class CmTask; 1270*ba62d9d3SAndroid Build Coastguard Worker class CmProgram; 1271*ba62d9d3SAndroid Build Coastguard Worker class CmBuffer; 1272*ba62d9d3SAndroid Build Coastguard Worker class CmBufferUP; 1273*ba62d9d3SAndroid Build Coastguard Worker class CmBufferSVM; 1274*ba62d9d3SAndroid Build Coastguard Worker class CmBufferStateless; 1275*ba62d9d3SAndroid Build Coastguard Worker class CmSurface2D; 1276*ba62d9d3SAndroid Build Coastguard Worker class CmSurface2DUP; 1277*ba62d9d3SAndroid Build Coastguard Worker class CmSurface2DStateless; 1278*ba62d9d3SAndroid Build Coastguard Worker class CmSurface3D; 1279*ba62d9d3SAndroid Build Coastguard Worker class CmSampler; 1280*ba62d9d3SAndroid Build Coastguard Worker class CmThreadSpace; 1281*ba62d9d3SAndroid Build Coastguard Worker class CmVebox; 1282*ba62d9d3SAndroid Build Coastguard Worker class CmQueue; 1283*ba62d9d3SAndroid Build Coastguard Worker class SurfaceIndex; 1284*ba62d9d3SAndroid Build Coastguard Worker class SamplerIndex; 1285*ba62d9d3SAndroid Build Coastguard Worker 1286*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1287*ba62d9d3SAndroid Build Coastguard Worker // Extended definitions if any 1288*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1289*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_extension.h" 1290*ba62d9d3SAndroid Build Coastguard Worker 1291*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1292*ba62d9d3SAndroid Build Coastguard Worker // Constants 1293*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1294*ba62d9d3SAndroid Build Coastguard Worker const CM_QUEUE_CREATE_OPTION CM_DEFAULT_QUEUE_CREATE_OPTION = { CM_QUEUE_TYPE_RENDER, false, 0, false, 0, CM_QUEUE_SSEU_USAGE_HINT_DEFAULT, 0, 0 }; 1295*ba62d9d3SAndroid Build Coastguard Worker 1296*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1297*ba62d9d3SAndroid Build Coastguard Worker // Classes 1298*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1299*ba62d9d3SAndroid Build Coastguard Worker class CmSampler8x8 1300*ba62d9d3SAndroid Build Coastguard Worker { 1301*ba62d9d3SAndroid Build Coastguard Worker public: 1302*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SamplerIndex* & pIndex ) = 0 ; 1303*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmSampler8x8()1304*ba62d9d3SAndroid Build Coastguard Worker ~CmSampler8x8(){}; 1305*ba62d9d3SAndroid Build Coastguard Worker }; 1306*ba62d9d3SAndroid Build Coastguard Worker 1307*ba62d9d3SAndroid Build Coastguard Worker class CmEvent 1308*ba62d9d3SAndroid Build Coastguard Worker { 1309*ba62d9d3SAndroid Build Coastguard Worker public: 1310*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetStatus( CM_STATUS& status) = 0 ; 1311*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetExecutionTime(UINT64& time) = 0; 1312*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT WaitForTaskFinished(DWORD dwTimeOutMs = CM_MAX_TIMEOUT_MS) = 0 ; 1313*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetSurfaceDetails( UINT kernIndex, UINT surfBTI,CM_SURFACE_DETAILS& outDetails )=0; 1314*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetProfilingInfo(CM_EVENT_PROFILING_INFO infoType, size_t paramSize, PVOID pInputValue, PVOID pValue) = 0; 1315*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetExecutionTickTime(UINT64& ticks) = 0; 1316*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmEvent()1317*ba62d9d3SAndroid Build Coastguard Worker ~CmEvent(){}; 1318*ba62d9d3SAndroid Build Coastguard Worker }; 1319*ba62d9d3SAndroid Build Coastguard Worker 1320*ba62d9d3SAndroid Build Coastguard Worker class CmKernel 1321*ba62d9d3SAndroid Build Coastguard Worker { 1322*ba62d9d3SAndroid Build Coastguard Worker public: 1323*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetThreadCount(UINT count ) = 0; 1324*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetKernelArg(UINT index, size_t size, const void * pValue ) = 0; 1325*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetThreadArg(UINT threadId, UINT index, size_t size, const void * pValue ) = 0; 1326*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetStaticBuffer(UINT index, const void * pValue ) = 0; 1327*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSurfaceBTI(SurfaceIndex* pSurface, UINT BTIndex) = 0; 1328*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AssociateThreadSpace(CmThreadSpace* & pTS) = 0; 1329*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AssociateThreadGroupSpace(CmThreadGroupSpace* & pTGS) = 0; 1330*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSamplerBTI(SamplerIndex* pSampler, UINT nIndex) = 0; 1331*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT DeAssociateThreadSpace(CmThreadSpace* & pTS) = 0; 1332*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT DeAssociateThreadGroupSpace(CmThreadGroupSpace* & pTGS) = 0; 1333*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT QuerySpillSize(unsigned int &spillSize) = 0; 1334*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetKernelArgPointer(UINT index, size_t size, const void *pValue) = 0; 1335*ba62d9d3SAndroid Build Coastguard Worker 1336*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmKernel()1337*ba62d9d3SAndroid Build Coastguard Worker ~CmKernel(){}; 1338*ba62d9d3SAndroid Build Coastguard Worker }; 1339*ba62d9d3SAndroid Build Coastguard Worker 1340*ba62d9d3SAndroid Build Coastguard Worker class CmTask 1341*ba62d9d3SAndroid Build Coastguard Worker { 1342*ba62d9d3SAndroid Build Coastguard Worker public: 1343*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AddKernel(CmKernel *pKernel) = 0; 1344*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT Reset(void) = 0; 1345*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AddSync(void) = 0; 1346*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetPowerOption( PCM_POWER_OPTION pCmPowerOption ) = 0; 1347*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AddConditionalEnd(SurfaceIndex* pSurface, UINT offset, CM_CONDITIONAL_END_PARAM *pCondParam) = 0; 1348*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetProperty(const CM_TASK_CONFIG &taskConfig) = 0; 1349*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AddKernelWithConfig( CmKernel *pKernel, const CM_EXECUTION_CONFIG *config ) = 0; 1350*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetProperty(CM_TASK_CONFIG &taskConfig) = 0; 1351*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AddSyncEx(const CM_KERNEL_SYNC_CONFIG *config) = 0; 1352*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmTask()1353*ba62d9d3SAndroid Build Coastguard Worker ~CmTask(){}; 1354*ba62d9d3SAndroid Build Coastguard Worker }; 1355*ba62d9d3SAndroid Build Coastguard Worker 1356*ba62d9d3SAndroid Build Coastguard Worker class CmBuffer 1357*ba62d9d3SAndroid Build Coastguard Worker { 1358*ba62d9d3SAndroid Build Coastguard Worker public: 1359*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SurfaceIndex*& pIndex ) = 0; 1360*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT ReadSurface( unsigned char* pSysMem, CmEvent* pEvent, UINT64 sysMemSize = 0xFFFFFFFFFFFFFFFFULL ) = 0; 1361*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT WriteSurface( const unsigned char* pSysMem, CmEvent* pEvent, UINT64 sysMemSize = 0xFFFFFFFFFFFFFFFFULL ) = 0; 1362*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT InitSurface(const DWORD initValue, CmEvent* pEvent) = 0; 1363*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMemoryObjectControlSetting(MEMORY_OBJECT_CONTROL option) = 0; 1364*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSurfaceStateParam(SurfaceIndex *pSurfIndex, const CM_BUFFER_STATE_PARAM *pSSParam) = 0; 1365*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmBuffer()1366*ba62d9d3SAndroid Build Coastguard Worker ~CmBuffer(){}; 1367*ba62d9d3SAndroid Build Coastguard Worker }; 1368*ba62d9d3SAndroid Build Coastguard Worker 1369*ba62d9d3SAndroid Build Coastguard Worker class CmBufferUP 1370*ba62d9d3SAndroid Build Coastguard Worker { 1371*ba62d9d3SAndroid Build Coastguard Worker public: 1372*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SurfaceIndex*& pIndex ) = 0; 1373*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMemoryObjectControlSetting(MEMORY_OBJECT_CONTROL option) = 0; 1374*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmBufferUP()1375*ba62d9d3SAndroid Build Coastguard Worker ~CmBufferUP(){}; 1376*ba62d9d3SAndroid Build Coastguard Worker }; 1377*ba62d9d3SAndroid Build Coastguard Worker 1378*ba62d9d3SAndroid Build Coastguard Worker class CmBufferSVM 1379*ba62d9d3SAndroid Build Coastguard Worker { 1380*ba62d9d3SAndroid Build Coastguard Worker public: 1381*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SurfaceIndex*& pIndex ) = 0; 1382*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetAddress( void * &pAddr) = 0; 1383*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmBufferSVM()1384*ba62d9d3SAndroid Build Coastguard Worker ~CmBufferSVM(){}; 1385*ba62d9d3SAndroid Build Coastguard Worker }; 1386*ba62d9d3SAndroid Build Coastguard Worker 1387*ba62d9d3SAndroid Build Coastguard Worker class CmBufferStateless 1388*ba62d9d3SAndroid Build Coastguard Worker { 1389*ba62d9d3SAndroid Build Coastguard Worker public: 1390*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetGfxAddress(uint64_t &gfxAddr) = 0; 1391*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetSysAddress(void *&pSysAddr) = 0; 1392*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT ReadSurface(unsigned char *pSysMem, 1393*ba62d9d3SAndroid Build Coastguard Worker CmEvent *pEvent, 1394*ba62d9d3SAndroid Build Coastguard Worker uint64_t sysMemSize = 0xFFFFFFFFFFFFFFFFULL) = 0; 1395*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT WriteSurface(const unsigned char *pSysMem, 1396*ba62d9d3SAndroid Build Coastguard Worker CmEvent *pEvent, 1397*ba62d9d3SAndroid Build Coastguard Worker uint64_t sysMemSize = 0xFFFFFFFFFFFFFFFFULL) = 0; 1398*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmBufferStateless()1399*ba62d9d3SAndroid Build Coastguard Worker ~CmBufferStateless() {}; 1400*ba62d9d3SAndroid Build Coastguard Worker }; 1401*ba62d9d3SAndroid Build Coastguard Worker 1402*ba62d9d3SAndroid Build Coastguard Worker class CmSurface2DUP 1403*ba62d9d3SAndroid Build Coastguard Worker { 1404*ba62d9d3SAndroid Build Coastguard Worker public: 1405*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SurfaceIndex*& pIndex ) = 0; 1406*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMemoryObjectControlSetting(MEMORY_OBJECT_CONTROL option) = 0; 1407*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetProperty(CM_FRAME_TYPE frameType) = 0; 1408*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmSurface2DUP()1409*ba62d9d3SAndroid Build Coastguard Worker ~CmSurface2DUP(){}; 1410*ba62d9d3SAndroid Build Coastguard Worker }; 1411*ba62d9d3SAndroid Build Coastguard Worker 1412*ba62d9d3SAndroid Build Coastguard Worker class CmSurface2DStateless 1413*ba62d9d3SAndroid Build Coastguard Worker { 1414*ba62d9d3SAndroid Build Coastguard Worker public: 1415*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetGfxAddress(uint64_t &gfxAddr) = 0; 1416*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT ReadSurface(unsigned char *pSysMem, 1417*ba62d9d3SAndroid Build Coastguard Worker CmEvent *pEvent, 1418*ba62d9d3SAndroid Build Coastguard Worker uint64_t sysMemSize = 0xFFFFFFFFFFFFFFFFULL) = 0; 1419*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT WriteSurface(const unsigned char *pSysMem, 1420*ba62d9d3SAndroid Build Coastguard Worker CmEvent *pEvent, 1421*ba62d9d3SAndroid Build Coastguard Worker uint64_t sysMemSize = 0xFFFFFFFFFFFFFFFFULL) = 0; 1422*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmSurface2DStateless()1423*ba62d9d3SAndroid Build Coastguard Worker ~CmSurface2DStateless(){}; 1424*ba62d9d3SAndroid Build Coastguard Worker }; 1425*ba62d9d3SAndroid Build Coastguard Worker 1426*ba62d9d3SAndroid Build Coastguard Worker class CmSurface3D 1427*ba62d9d3SAndroid Build Coastguard Worker { 1428*ba62d9d3SAndroid Build Coastguard Worker public: 1429*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SurfaceIndex*& pIndex ) = 0; 1430*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT ReadSurface( unsigned char* pSysMem, CmEvent* pEvent, UINT64 sysMemSize = 0xFFFFFFFFFFFFFFFFULL ) = 0; 1431*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT WriteSurface( const unsigned char* pSysMem, CmEvent* pEvent, UINT64 sysMemSize = 0xFFFFFFFFFFFFFFFFULL ) = 0; 1432*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT InitSurface(const DWORD initValue, CmEvent* pEvent) = 0; 1433*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMemoryObjectControlSetting(MEMORY_OBJECT_CONTROL option) = 0; 1434*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmSurface3D()1435*ba62d9d3SAndroid Build Coastguard Worker ~CmSurface3D(){}; 1436*ba62d9d3SAndroid Build Coastguard Worker }; 1437*ba62d9d3SAndroid Build Coastguard Worker 1438*ba62d9d3SAndroid Build Coastguard Worker class CmSampler 1439*ba62d9d3SAndroid Build Coastguard Worker { 1440*ba62d9d3SAndroid Build Coastguard Worker public: 1441*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT GetIndex( SamplerIndex* & pIndex ) = 0 ; 1442*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmSampler()1443*ba62d9d3SAndroid Build Coastguard Worker ~CmSampler(){}; 1444*ba62d9d3SAndroid Build Coastguard Worker }; 1445*ba62d9d3SAndroid Build Coastguard Worker 1446*ba62d9d3SAndroid Build Coastguard Worker class CmThreadSpace 1447*ba62d9d3SAndroid Build Coastguard Worker { 1448*ba62d9d3SAndroid Build Coastguard Worker public: 1449*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AssociateThread( UINT x, UINT y, CmKernel* pKernel , UINT threadId ) = 0; 1450*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectThreadDependencyPattern ( CM_DEPENDENCY_PATTERN pattern ) = 0; 1451*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT AssociateThreadWithMask( UINT x, UINT y, CmKernel* pKernel , UINT threadId, BYTE nDependencyMask ) = 0; 1452*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetThreadSpaceColorCount( UINT colorCount ) = 0; 1453*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMediaWalkingPattern( CM_WALKING_PATTERN pattern ) = 0; 1454*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT Set26ZIDispatchPattern( CM_26ZI_DISPATCH_PATTERN pattern ) = 0; 1455*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT Set26ZIMacroBlockSize( UINT width, UINT height ) = 0; 1456*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetMediaWalkerGroupSelect(CM_MW_GROUP_SELECT groupSelect) = 0; 1457*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectMediaWalkingParameters( CM_WALKING_PARAMETERS paramaters ) = 0; 1458*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SelectThreadDependencyVectors( CM_DEPENDENCY dependVectors ) = 0; 1459*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetThreadSpaceOrder(UINT threadCount, PCM_THREAD_PARAM pThreadSpaceOrder) = 0; 1460*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmThreadSpace()1461*ba62d9d3SAndroid Build Coastguard Worker ~CmThreadSpace(){}; 1462*ba62d9d3SAndroid Build Coastguard Worker }; 1463*ba62d9d3SAndroid Build Coastguard Worker 1464*ba62d9d3SAndroid Build Coastguard Worker class CmVebox 1465*ba62d9d3SAndroid Build Coastguard Worker { 1466*ba62d9d3SAndroid Build Coastguard Worker public: 1467*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetState(CM_VEBOX_STATE& VeBoxState) = 0; 1468*ba62d9d3SAndroid Build Coastguard Worker 1469*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetCurFrameInputSurface( CmSurface2D* pSurf ) = 0; 1470*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetCurFrameInputSurfaceControlBits( const WORD ctrlBits ) = 0; 1471*ba62d9d3SAndroid Build Coastguard Worker 1472*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetPrevFrameInputSurface( CmSurface2D* pSurf ) = 0; 1473*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetPrevFrameInputSurfaceControlBits( const WORD ctrlBits ) = 0; 1474*ba62d9d3SAndroid Build Coastguard Worker 1475*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSTMMInputSurface( CmSurface2D* pSurf ) = 0; 1476*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSTMMInputSurfaceControlBits( const WORD ctrlBits ) = 0; 1477*ba62d9d3SAndroid Build Coastguard Worker 1478*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSTMMOutputSurface( CmSurface2D* pSurf ) = 0; 1479*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetSTMMOutputSurfaceControlBits( const WORD ctrlBits ) = 0; 1480*ba62d9d3SAndroid Build Coastguard Worker 1481*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetDenoisedCurFrameOutputSurface( CmSurface2D* pSurf ) = 0; 1482*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetDenoisedCurOutputSurfaceControlBits( const WORD ctrlBits ) = 0; 1483*ba62d9d3SAndroid Build Coastguard Worker 1484*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetCurFrameOutputSurface( CmSurface2D* pSurf ) = 0; 1485*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetCurFrameOutputSurfaceControlBits( const WORD ctrlBits ) = 0; 1486*ba62d9d3SAndroid Build Coastguard Worker 1487*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetPrevFrameOutputSurface( CmSurface2D* pSurf ) = 0; 1488*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetPrevFrameOutputSurfaceControlBits( const WORD ctrlBits ) = 0; 1489*ba62d9d3SAndroid Build Coastguard Worker 1490*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetStatisticsOutputSurface( CmSurface2D* pSurf ) = 0; 1491*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetStatisticsOutputSurfaceControlBits( const WORD ctrlBits ) = 0; 1492*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetParam(CmBufferUP *pParamBuffer) = 0; 1493*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmVebox()1494*ba62d9d3SAndroid Build Coastguard Worker ~CmVebox(){}; 1495*ba62d9d3SAndroid Build Coastguard Worker }; 1496*ba62d9d3SAndroid Build Coastguard Worker 1497*ba62d9d3SAndroid Build Coastguard Worker class CmQueue 1498*ba62d9d3SAndroid Build Coastguard Worker { 1499*ba62d9d3SAndroid Build Coastguard Worker public: 1500*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT Enqueue( CmTask* pTask, CmEvent* & pEvent, const CmThreadSpace* pTS = nullptr ) = 0; 1501*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT DestroyEvent( CmEvent* & pEvent ) = 0; 1502*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueWithGroup( CmTask* pTask, CmEvent* & pEvent, const CmThreadGroupSpace* pTGS = nullptr )=0; 1503*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyCPUToGPU( CmSurface2D* pSurface, const unsigned char* pSysMem, CmEvent* & pEvent ) = 0; 1504*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyGPUToCPU( CmSurface2D* pSurface, unsigned char* pSysMem, CmEvent* & pEvent ) = 0; 1505*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueInitSurface2D( CmSurface2D* pSurface, const DWORD initValue, CmEvent* &pEvent ) = 0; 1506*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyGPUToGPU( CmSurface2D* pOutputSurface, CmSurface2D* pInputSurface, UINT option, CmEvent* & pEvent ) = 0; 1507*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyCPUToCPU( unsigned char* pDstSysMem, unsigned char* pSrcSysMem, UINT size, UINT option, CmEvent* & pEvent ) = 0; 1508*ba62d9d3SAndroid Build Coastguard Worker 1509*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyCPUToGPUFullStride( CmSurface2D* pSurface, const unsigned char* pSysMem, const UINT widthStride, const UINT heightStride, const UINT option, CmEvent* & pEvent ) = 0; 1510*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyGPUToCPUFullStride( CmSurface2D* pSurface, unsigned char* pSysMem, const UINT widthStride, const UINT heightStride, const UINT option, CmEvent* & pEvent ) = 0; 1511*ba62d9d3SAndroid Build Coastguard Worker 1512*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyCPUToGPUFullStrideDup( CmSurface2D* pSurface, const unsigned char* pSysMem, const UINT widthStride, const UINT heightStride, const UINT option, CmEvent* & pEvent ) = 0; 1513*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueCopyGPUToCPUFullStrideDup( CmSurface2D* pSurface, unsigned char* pSysMem, const UINT widthStride, const UINT heightStride, const UINT option, CmEvent* & pEvent ) = 0; 1514*ba62d9d3SAndroid Build Coastguard Worker 1515*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueWithHints( CmTask* pTask, CmEvent* & pEvent, UINT hints = 0) = 0; 1516*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueVebox( CmVebox* pVebox, CmEvent* & pEvent ) = 0; 1517*ba62d9d3SAndroid Build Coastguard Worker 1518*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueFast(CmTask *task, 1519*ba62d9d3SAndroid Build Coastguard Worker CmEvent *&event, 1520*ba62d9d3SAndroid Build Coastguard Worker const CmThreadSpace *threadSpace = nullptr) = 0; 1521*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT DestroyEventFast(CmEvent *&event) = 0; 1522*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT EnqueueWithGroupFast(CmTask *task, 1523*ba62d9d3SAndroid Build Coastguard Worker CmEvent *&event, 1524*ba62d9d3SAndroid Build Coastguard Worker const CmThreadGroupSpace *threadGroupSpace = nullptr) = 0; 1525*ba62d9d3SAndroid Build Coastguard Worker 1526*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual int32_t EnqueueReadBuffer(CmBuffer* buffer, size_t offset, const unsigned char* sysMem, uint64_t sysMemSize, CmEvent* wait_event, CmEvent*& event, unsigned option) = 0; 1527*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual int32_t EnqueueWriteBuffer(CmBuffer* buffer, size_t offset, const unsigned char* sysMem, uint64_t sysMemSize, CmEvent* wait_event, CmEvent*& event, unsigned option) = 0; 1528*ba62d9d3SAndroid Build Coastguard Worker 1529*ba62d9d3SAndroid Build Coastguard Worker CM_RT_API virtual INT SetResidentGroupAndParallelThreadNum(uint32_t residentGroupNum, uint32_t parallelThreadNum) = 0; 1530*ba62d9d3SAndroid Build Coastguard Worker 1531*ba62d9d3SAndroid Build Coastguard Worker protected: ~CmQueue()1532*ba62d9d3SAndroid Build Coastguard Worker ~CmQueue(){}; 1533*ba62d9d3SAndroid Build Coastguard Worker }; 1534*ba62d9d3SAndroid Build Coastguard Worker 1535*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1536*ba62d9d3SAndroid Build Coastguard Worker // Function pointer types 1537*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1538*ba62d9d3SAndroid Build Coastguard Worker typedef void (CM_CALLBACK *callback_function)(CmEvent*, void *); 1539*ba62d9d3SAndroid Build Coastguard Worker typedef void (*IMG_WALKER_FUNTYPE)(void* img, void* arg); 1540*ba62d9d3SAndroid Build Coastguard Worker 1541*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1542*ba62d9d3SAndroid Build Coastguard Worker // OS-specific APIs and classes 1543*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1544*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_api_os.h" 1545*ba62d9d3SAndroid Build Coastguard Worker 1546*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1547*ba62d9d3SAndroid Build Coastguard Worker // Functions declaration 1548*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1549*ba62d9d3SAndroid Build Coastguard Worker EXTERN_C CM_RT_API INT DestroyCmDevice(CmDevice* &device); 1550*ba62d9d3SAndroid Build Coastguard Worker EXTERN_C CM_RT_API INT CMRT_Enqueue(CmQueue* queue, CmTask* task, CmEvent** event, const CmThreadSpace* threadSpace = nullptr); 1551*ba62d9d3SAndroid Build Coastguard Worker EXTERN_C CM_RT_API const char* GetCmErrorString(int errCode); 1552*ba62d9d3SAndroid Build Coastguard Worker 1553*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1554*ba62d9d3SAndroid Build Coastguard Worker // Platfom specific definitions 1555*ba62d9d3SAndroid Build Coastguard Worker //********************************************************************** 1556*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g8.h" 1557*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g9.h" 1558*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g10.h" 1559*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g11.h" 1560*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g12_tgl.h" 1561*ba62d9d3SAndroid Build Coastguard Worker #include "cm_rt_g12_dg1.h" 1562*ba62d9d3SAndroid Build Coastguard Worker 1563*ba62d9d3SAndroid Build Coastguard Worker #endif //__CM_RT_H__ 1564