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