xref: /aosp_15_r20/external/intel-media-driver/cmrtlib/linux/hardware/cm_device.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_LINUX_HARDWARE_CM_DEVICE_H_
23*ba62d9d3SAndroid Build Coastguard Worker #define CMRTLIB_LINUX_HARDWARE_CM_DEVICE_H_
24*ba62d9d3SAndroid Build Coastguard Worker 
25*ba62d9d3SAndroid Build Coastguard Worker #include "cm_device_base.h"
26*ba62d9d3SAndroid Build Coastguard Worker #include "cm_def_hw.h"
27*ba62d9d3SAndroid Build Coastguard Worker #include "cm_kernel_debugger.h"
28*ba62d9d3SAndroid Build Coastguard Worker #include <vector>
29*ba62d9d3SAndroid Build Coastguard Worker 
30*ba62d9d3SAndroid Build Coastguard Worker class CmQueue_RT;
31*ba62d9d3SAndroid Build Coastguard Worker class CmSurfaceManager;
32*ba62d9d3SAndroid Build Coastguard Worker 
33*ba62d9d3SAndroid Build Coastguard Worker class CmDevice_RT : public CmDevice
34*ba62d9d3SAndroid Build Coastguard Worker {
35*ba62d9d3SAndroid Build Coastguard Worker public:
36*ba62d9d3SAndroid Build Coastguard Worker     static int32_t GetSupportedAdapters(uint32_t& count);
37*ba62d9d3SAndroid Build Coastguard Worker     static int32_t CreateCmDeviceFromAdapter(CmDevice_RT*& pCmDev, int32_t adapterIndex, uint32_t createOption = 0);
38*ba62d9d3SAndroid Build Coastguard Worker     static int32_t GetPlatformInfo(uint32_t adapterIndex);
39*ba62d9d3SAndroid Build Coastguard Worker     static int32_t QueryAdapterInfo(uint32_t adapterIndex, AdapterInfoType infoName, void* info, uint32_t infoSize, uint32_t* outInfoSize);
40*ba62d9d3SAndroid Build Coastguard Worker 
41*ba62d9d3SAndroid Build Coastguard Worker     static int32_t Create( CmDevice_RT* &device, uint32_t createOption );
42*ba62d9d3SAndroid Build Coastguard Worker     static int32_t Destroy( CmDevice_RT* &device );
43*ba62d9d3SAndroid Build Coastguard Worker     static int32_t Create(VADisplay &vaDisplay, CmDevice_RT* &device,uint32_t createOption );
44*ba62d9d3SAndroid Build Coastguard Worker 
45*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateBuffer(uint32_t size, CmBuffer* &buffer);
46*ba62d9d3SAndroid Build Coastguard Worker 
47*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2D(uint32_t width, uint32_t height, CM_SURFACE_FORMAT format, CmSurface2D* &surface );
48*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface3D(uint32_t width, uint32_t height, uint32_t depth, CM_SURFACE_FORMAT format, CmSurface3D* &surface );
49*ba62d9d3SAndroid Build Coastguard Worker 
50*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2D( VASurfaceID vaSurface, CmSurface2D* &surface );
51*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2D( VASurfaceID* vaSurfaceArray, const uint32_t surfaceCount, CmSurface2D **surfaceArray);
52*ba62d9d3SAndroid Build Coastguard Worker 
53*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySurface( CmBuffer* &buffer);
54*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySurface( CmSurface2D* &surface2d);
55*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySurface( CmSurface3D* &surface3d);
56*ba62d9d3SAndroid Build Coastguard Worker 
57*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateQueue( CmQueue* & queue);
58*ba62d9d3SAndroid Build Coastguard Worker 
59*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t LoadProgram( void* commonISACode, const uint32_t size, CmProgram*& program,  const char* options = nullptr );
60*ba62d9d3SAndroid Build Coastguard Worker 
61*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateKernel( CmProgram* program, const char* kernelName, CmKernel* & kernel, const char* options = nullptr);
62*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateKernel( CmProgram* program, const char* kernelName, const void * fncPnt, CmKernel* & kernel, const char* options = nullptr) {return CM_FAILURE;}
63*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSampler( const CM_SAMPLER_STATE & sampleState, CmSampler* &sampler );
64*ba62d9d3SAndroid Build Coastguard Worker 
65*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateTask(CmTask *& task);
66*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t GetCaps(CM_DEVICE_CAP_NAME capName, size_t& capValueSize, void* capValue );
67*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateThreadSpace( uint32_t width, uint32_t height, CmThreadSpace* &threadSpace);
68*ba62d9d3SAndroid Build Coastguard Worker 
69*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyKernel( CmKernel*& kernel);
70*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySampler( CmSampler*& sampler );
71*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyProgram( CmProgram*& program );
72*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySampler8x8( CmSampler8x8 *& sampler );
73*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyThreadSpace( CmThreadSpace* &threadSpace);
74*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyTask(CmTask *& task);
75*ba62d9d3SAndroid Build Coastguard Worker 
76*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateVmeSurfaceG7_5 (CmSurface2D* currentSurface, CmSurface2D** forwardSurfaceArray, CmSurface2D** backwardSurfaceArray, const uint32_t surfaceCountForward, const uint32_t surfaceCountBackward, SurfaceIndex* & vmeSurfaceIndex );
77*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyVmeSurfaceG7_5(SurfaceIndex* & vmeSurfaceIndex);
78*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t SetVmeSurfaceStateParam(SurfaceIndex* vmeSurfaceIndex, CM_VME_SURFACE_STATE_PARAM *newState);
79*ba62d9d3SAndroid Build Coastguard Worker 
80*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateBufferUP(uint32_t size, void *sysMem, CmBufferUP* &buffer);
81*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyBufferUP( CmBufferUP* &buffer);
82*ba62d9d3SAndroid Build Coastguard Worker 
83*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t GetSurface2DInfo(uint32_t width, uint32_t height, CM_SURFACE_FORMAT format, uint32_t & pitch, uint32_t & physicalSize );
84*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2DUP( uint32_t width, uint32_t height, CM_SURFACE_FORMAT format, void* sysMem, CmSurface2DUP* &surface );
85*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySurface2DUP( CmSurface2DUP* &surface) ;
86*ba62d9d3SAndroid Build Coastguard Worker 
87*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSampler8x8(const CM_SAMPLER_8X8_DESCR  &samplerDescriptor, CmSampler8x8* &sampler);
88*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSampler8x8Surface(CmSurface2D* surface2d, SurfaceIndex* &sampler8x8SurfaceIndex, CM_SAMPLER8x8_SURFACE surfaceType, CM_SURFACE_ADDRESS_CONTROL_MODE addressControl = CM_SURFACE_CLAMP);
89*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySampler8x8Surface(SurfaceIndex* &sampler8x8SurfaceIndex);
90*ba62d9d3SAndroid Build Coastguard Worker 
91*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateThreadGroupSpace( uint32_t threadSpaceWidth, uint32_t threadSpaceHeight, uint32_t groupSpaceWidth, uint32_t groupSpaceHeight, CmThreadGroupSpace* &threadGroupSpace);
92*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyThreadGroupSpace(CmThreadGroupSpace* &threadGroupSpace);
93*ba62d9d3SAndroid Build Coastguard Worker 
94*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t SetL3Config(const L3ConfigRegisterValues *registerValues);
95*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t SetSuggestedL3Config( L3_SUGGEST_CONFIG configIndex);
96*ba62d9d3SAndroid Build Coastguard Worker 
97*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t SetCaps(CM_DEVICE_CAP_NAME capName, size_t capValueSize, void* capValue );
98*ba62d9d3SAndroid Build Coastguard Worker 
99*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSamplerSurface2D(CmSurface2D* surface2d, SurfaceIndex* & samplerSurface2dIndex);
100*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSamplerSurface3D(CmSurface3D* surface3d, SurfaceIndex* & samplerSurface3dIndex);
101*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySamplerSurface(SurfaceIndex* & samplerSurfaceIndex);
102*ba62d9d3SAndroid Build Coastguard Worker 
103*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t InitPrintBuffer(size_t size = CM_DEFAULT_PRINT_BUFFER_SIZE);
104*ba62d9d3SAndroid Build Coastguard Worker 
105*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t FlushPrintBuffer();
106*ba62d9d3SAndroid Build Coastguard Worker 
107*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateVebox( CmVebox* & vebox );
108*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyVebox(CmVebox* & vebox);
109*ba62d9d3SAndroid Build Coastguard Worker 
110*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateBufferSVM(uint32_t size, void* & sysMem, uint32_t accessFlag, CmBufferSVM* &buffer );
111*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyBufferSVM( CmBufferSVM* & buffer);
112*ba62d9d3SAndroid Build Coastguard Worker 
113*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CloneKernel( CmKernel * &destKernel, CmKernel *srcKernel );
114*ba62d9d3SAndroid Build Coastguard Worker 
115*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t GetVaDpy(VADisplay* &vaDisplay);
116*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateVaSurface2D( uint32_t width, uint32_t height, CM_SURFACE_FORMAT format, VASurfaceID & vaSurface, CmSurface2D* & surface);
117*ba62d9d3SAndroid Build Coastguard Worker 
118*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSamplerSurface2DUP(CmSurface2DUP* surface2dUP, SurfaceIndex* & samplerSurface2dUPIndex);
119*ba62d9d3SAndroid Build Coastguard Worker 
120*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2DAlias(CmSurface2D* originalSurface, SurfaceIndex* &aliasIndex);
121*ba62d9d3SAndroid Build Coastguard Worker 
122*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateHevcVmeSurfaceG10(CmSurface2D* currentSurface, CmSurface2D** forwardSurfaceArray, CmSurface2D** backwardSurfaceArray, const uint32_t surfaceCountForward, const uint32_t surfaceCountBackward, SurfaceIndex* & vmeSurfaceIndex);
123*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyHevcVmeSurfaceG10(SurfaceIndex* & vmeSurfaceIndex);
124*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSamplerEx( const CM_SAMPLER_STATE_EX & samplerState, CmSampler* & sampler ) ;
125*ba62d9d3SAndroid Build Coastguard Worker 
126*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t FlushPrintBufferIntoFile(const char *filename);
127*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateThreadGroupSpaceEx(uint32_t threadSpaceWidth, uint32_t threadSpaceHeight, uint32_t threadSpaceDepth, uint32_t groupSpaceWidth, uint32_t groupSpaceHeight, uint32_t groupSpaceDepth, CmThreadGroupSpace* &threadGroupSpace);
128*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSampler8x8SurfaceEx(CmSurface2D* surface2d, SurfaceIndex* &sampler8x8SurfaceIndex, CM_SAMPLER8x8_SURFACE surfaceType, CM_SURFACE_ADDRESS_CONTROL_MODE addressControl = CM_SURFACE_CLAMP, CM_FLAG* flag = nullptr);
129*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSamplerSurface2DEx(CmSurface2D* surface2d, SurfaceIndex* & samplerSurface2dIndex, CM_FLAG* flag);
130*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateBufferAlias(CmBuffer *originalBuffer, SurfaceIndex* &aliasIndex);
131*ba62d9d3SAndroid Build Coastguard Worker 
132*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t GetVISAVersion(uint32_t& majorVersion, uint32_t& minorVersion);
133*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateQueueEx(CmQueue *&queue, CM_QUEUE_CREATE_OPTION queueCreateOption = CM_DEFAULT_QUEUE_CREATE_OPTION);
134*ba62d9d3SAndroid Build Coastguard Worker 
135*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateBufferStateless(size_t size,
136*ba62d9d3SAndroid Build Coastguard Worker                                             uint32_t option,
137*ba62d9d3SAndroid Build Coastguard Worker                                             void *sysMem,
138*ba62d9d3SAndroid Build Coastguard Worker                                             CmBufferStateless *&pBufferStateless);
139*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroyBufferStateless(CmBufferStateless *&buffer);
140*ba62d9d3SAndroid Build Coastguard Worker 
DispatchTask()141*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DispatchTask() { return CM_SUCCESS; }
142*ba62d9d3SAndroid Build Coastguard Worker 
143*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t CreateSurface2DStateless(uint32_t width,
144*ba62d9d3SAndroid Build Coastguard Worker                                                uint32_t height,
145*ba62d9d3SAndroid Build Coastguard Worker                                                uint32_t &pitch,
146*ba62d9d3SAndroid Build Coastguard Worker                                                CmSurface2DStateless *&pSurface);
147*ba62d9d3SAndroid Build Coastguard Worker 
148*ba62d9d3SAndroid Build Coastguard Worker     CM_RT_API int32_t DestroySurface2DStateless(CmSurface2DStateless *&pSurface);
149*ba62d9d3SAndroid Build Coastguard Worker 
150*ba62d9d3SAndroid Build Coastguard Worker     int32_t CheckDdiVersionSupported(const uint32_t ddiVersion);
151*ba62d9d3SAndroid Build Coastguard Worker 
152*ba62d9d3SAndroid Build Coastguard Worker     int32_t OSALExtensionExecute(uint32_t functionId,
153*ba62d9d3SAndroid Build Coastguard Worker                                  void *inputData,
154*ba62d9d3SAndroid Build Coastguard Worker                                  uint32_t inputDataLength,
155*ba62d9d3SAndroid Build Coastguard Worker                                  void **resourceList = nullptr,
156*ba62d9d3SAndroid Build Coastguard Worker                                  uint32_t resourceCount = 0);
157*ba62d9d3SAndroid Build Coastguard Worker 
158*ba62d9d3SAndroid Build Coastguard Worker protected:
159*ba62d9d3SAndroid Build Coastguard Worker     CmDevice_RT(
160*ba62d9d3SAndroid Build Coastguard Worker         VADisplay vaDisplay,
161*ba62d9d3SAndroid Build Coastguard Worker         uint32_t createOption
162*ba62d9d3SAndroid Build Coastguard Worker     );
163*ba62d9d3SAndroid Build Coastguard Worker 
164*ba62d9d3SAndroid Build Coastguard Worker     ~CmDevice_RT( void );
165*ba62d9d3SAndroid Build Coastguard Worker 
166*ba62d9d3SAndroid Build Coastguard Worker     int32_t SetCapsInternal(CM_DEVICE_CAP_NAME capName, size_t capValueSize, void* capValue);
167*ba62d9d3SAndroid Build Coastguard Worker 
168*ba62d9d3SAndroid Build Coastguard Worker     int32_t CreateProgram(void* commonISACode,
169*ba62d9d3SAndroid Build Coastguard Worker                           const uint32_t size,
170*ba62d9d3SAndroid Build Coastguard Worker                           CmProgram*& program,
171*ba62d9d3SAndroid Build Coastguard Worker                           const char* options );
172*ba62d9d3SAndroid Build Coastguard Worker 
173*ba62d9d3SAndroid Build Coastguard Worker     int32_t CreateDeviceInUmd();
174*ba62d9d3SAndroid Build Coastguard Worker 
175*ba62d9d3SAndroid Build Coastguard Worker     int32_t FlushPrintBufferInternal(const char *filename);
176*ba62d9d3SAndroid Build Coastguard Worker 
177*ba62d9d3SAndroid Build Coastguard Worker     CmSurfaceManager *         m_surfaceManager;
178*ba62d9d3SAndroid Build Coastguard Worker 
179*ba62d9d3SAndroid Build Coastguard Worker     uint32_t m_cmVersion;
180*ba62d9d3SAndroid Build Coastguard Worker     void    *m_deviceInUmd;    //CmDevice pointer in UMD
181*ba62d9d3SAndroid Build Coastguard Worker     bool    m_cmCreated;
182*ba62d9d3SAndroid Build Coastguard Worker 
183*ba62d9d3SAndroid Build Coastguard Worker     int32_t Initialize(bool isCmCreated, uint32_t Index = 0);
184*ba62d9d3SAndroid Build Coastguard Worker     int32_t FreeResources();
185*ba62d9d3SAndroid Build Coastguard Worker #if USE_EXTENSION_CODE
186*ba62d9d3SAndroid Build Coastguard Worker     int32_t EnableGtpin( void );
187*ba62d9d3SAndroid Build Coastguard Worker     int32_t RegisterGtpinMarkerFunctions();
188*ba62d9d3SAndroid Build Coastguard Worker #endif
189*ba62d9d3SAndroid Build Coastguard Worker     int32_t CreateVmeSurface( CmSurface2D* currentSurface, CmSurface2D** forwardSurfaceArray, CmSurface2D** backwardSurfaceArray, const uint32_t surfaceCountForward, const uint32_t surfaceCountBackward, SurfaceIndex* & vmeSurfaceIndex, CM_FUNCTION_ID functionName);
190*ba62d9d3SAndroid Build Coastguard Worker     int32_t DestroyVmeSurface( SurfaceIndex* & vmeSurfaceIndex );
191*ba62d9d3SAndroid Build Coastguard Worker 
192*ba62d9d3SAndroid Build Coastguard Worker #ifndef ANDROID
193*ba62d9d3SAndroid Build Coastguard Worker     int32_t FreeLibvaDrm();
194*ba62d9d3SAndroid Build Coastguard Worker     int32_t GetLibvaDisplayDrm(VADisplay & vaDisplay);
195*ba62d9d3SAndroid Build Coastguard Worker #endif
196*ba62d9d3SAndroid Build Coastguard Worker 
197*ba62d9d3SAndroid Build Coastguard Worker     int32_t InitializeLibvaDisplay(uint32_t Index = 0);
198*ba62d9d3SAndroid Build Coastguard Worker     VADisplay m_vaDisplay;
199*ba62d9d3SAndroid Build Coastguard Worker     uint32_t m_drmIndex;
200*ba62d9d3SAndroid Build Coastguard Worker     pvaCmExtSendReqMsg    m_fvaCmExtSendReqMsg;
201*ba62d9d3SAndroid Build Coastguard Worker 
202*ba62d9d3SAndroid Build Coastguard Worker #if !defined(ANDROID)
203*ba62d9d3SAndroid Build Coastguard Worker     static uint32_t m_vaReferenceCount;
204*ba62d9d3SAndroid Build Coastguard Worker     static CSync m_vaReferenceCountCriticalSection;
205*ba62d9d3SAndroid Build Coastguard Worker     int32_t m_driFileDescriptor;
206*ba62d9d3SAndroid Build Coastguard Worker     static void  *m_vaDrm;
207*ba62d9d3SAndroid Build Coastguard Worker     static pfVAGetDisplayDRM m_vaGetDisplayDrm;
208*ba62d9d3SAndroid Build Coastguard Worker #else
209*ba62d9d3SAndroid Build Coastguard Worker     Display*  m_display;
210*ba62d9d3SAndroid Build Coastguard Worker #endif
211*ba62d9d3SAndroid Build Coastguard Worker 
212*ba62d9d3SAndroid Build Coastguard Worker     L3ConfigRegisterValues m_l3Config;
213*ba62d9d3SAndroid Build Coastguard Worker 
214*ba62d9d3SAndroid Build Coastguard Worker     // Variables used in GTPIN
215*ba62d9d3SAndroid Build Coastguard Worker     bool            m_gtpinEnabled;
216*ba62d9d3SAndroid Build Coastguard Worker     CmBufferUP*     m_gtpinBufferUP0;
217*ba62d9d3SAndroid Build Coastguard Worker     CmBufferUP*     m_gtpinBufferUP1;
218*ba62d9d3SAndroid Build Coastguard Worker     CmBufferUP*     m_gtpinBufferUP2;
219*ba62d9d3SAndroid Build Coastguard Worker 
220*ba62d9d3SAndroid Build Coastguard Worker     uint32_t       m_createOption;
221*ba62d9d3SAndroid Build Coastguard Worker     uint32_t       m_driverStoreEnabled;
222*ba62d9d3SAndroid Build Coastguard Worker 
223*ba62d9d3SAndroid Build Coastguard Worker     // Kernel debugger
224*ba62d9d3SAndroid Build Coastguard Worker     CmKernelDebugger *m_kernelDebugger;
225*ba62d9d3SAndroid Build Coastguard Worker 
226*ba62d9d3SAndroid Build Coastguard Worker     // Queue list and Queue critical section
227*ba62d9d3SAndroid Build Coastguard Worker     CSync          m_criticalSectionQueue;
228*ba62d9d3SAndroid Build Coastguard Worker     std::vector<CmQueue_RT *> m_queue;
229*ba62d9d3SAndroid Build Coastguard Worker 
230*ba62d9d3SAndroid Build Coastguard Worker private:
231*ba62d9d3SAndroid Build Coastguard Worker     CmDevice_RT(const CmDevice_RT &other);
232*ba62d9d3SAndroid Build Coastguard Worker     CmDevice_RT &operator=(const CmDevice_RT &other);
233*ba62d9d3SAndroid Build Coastguard Worker };
234*ba62d9d3SAndroid Build Coastguard Worker 
235*ba62d9d3SAndroid Build Coastguard Worker #endif  // #ifndef CMRTLIB_LINUX_HARDWARE_CM_DEVICE_H_
236