gc_hal_enum.h 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140
  1. /****************************************************************************
  2. *
  3. * Copyright (c) 2005 - 2021 by Vivante Corp. All rights reserved.
  4. *
  5. * The material in this file is confidential and contains trade secrets
  6. * of Vivante Corporation. This is proprietary information owned by
  7. * Vivante Corporation. No part of this work may be disclosed,
  8. * reproduced, copied, transmitted, or used in any way for any purpose,
  9. * without the express written permission of Vivante Corporation.
  10. *
  11. *****************************************************************************/
  12. #ifndef __gc_hal_enum_h_
  13. #define __gc_hal_enum_h_
  14. #include "gc_hal_options.h"
  15. #include "shared/gc_hal_enum_shared.h"
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /* dummy draw type.*/
  20. typedef enum _gceDUMMY_DRAW_TYPE
  21. {
  22. gcvDUMMY_DRAW_INVALID = 0,
  23. gcvDUMMY_DRAW_GC400,
  24. gcvDUMMY_DRAW_V60,
  25. }
  26. gceDUMMY_DRAW_TYPE;
  27. /* Option Set*/
  28. typedef enum _gceOPTION
  29. {
  30. /* HW setting. */
  31. gcvOPTION_PREFER_ZCONVERT_BYPASS = 0,
  32. gcvOPTION_PREFER_TILED_DISPLAY_BUFFER = 1,
  33. gcvOPTION_PREFER_GUARDBAND = 2,
  34. gcvOPTION_PREFER_TPG_TRIVIALMODEL = 3,
  35. gcvOPTION_PREFER_RA_DEPTH_WRITE = 4,
  36. gcvOPTION_PREFER_USC_RECONFIG = 5,
  37. gcvOPTION_PREFER_DISALBE_HZ = 6,
  38. /* SW options */
  39. gcvOPTION_HW_NULL = 50,
  40. gcvOPTION_PRINT_OPTION = 51,
  41. gcvOPTION_KERNEL_FENCE = 52,
  42. gcvOPTION_ASYNC_PIPE = 53,
  43. gcvOPTION_FBO_PREFER_MEM = 54,
  44. gcvOPTION_GPU_TEX_UPLOAD = 55,
  45. gcvOPTION_GPU_BUFOBJ_UPLOAD = 56,
  46. gcvOPTION_NO_Y_INVERT = 60,
  47. /* OCL option */
  48. gcvOPTION_OCL_ASYNC_BLT = 200,
  49. gcvOPTION_OCL_IN_THREAD,
  50. gcvOPTION_COMPRESSION_DEC400,
  51. gcvOPTION_OCL_VIR_SHADER,
  52. gcvOPTION_OCL_USE_MULTI_DEVICES,
  53. #if gcdUSE_VX
  54. /* OVX options that HAL could access */
  55. gcvOPTION_OVX_ENABLE_NN_ZDP3 = 500,
  56. gcvOPTION_OVX_ENABLE_NN_ZDP6,
  57. gcvOPTION_OVX_ENABLE_NN_STRIDE,
  58. gcvOPTION_OVX_USE_MULTI_DEVICES,
  59. gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_256B,
  60. gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_64B,
  61. #endif
  62. /* Insert option above this comment only */
  63. gcvOPTION_COUNT /* Not a OPTION*/
  64. }
  65. gceOPTION;
  66. typedef enum _gceFRAMEINFO
  67. {
  68. /* Total frame count in one run */
  69. gcvFRAMEINFO_FRAME_NUM = 0,
  70. /* Total draw count in current frame, including draw/compute */
  71. gcvFRAMEINFO_DRAW_NUM = 1,
  72. /* Total compute count in current frame, subset of drawNum */
  73. gcvFRAMEINFO_COMPUTE_NUM = 2,
  74. /* Total dual16 draw/compute count in current frame, subset of drawNum */
  75. gcvFRAMEINFO_DUAL16_NUM = 3,
  76. /* Current programID is being set. only valid for ES20 driver right now */
  77. gcvFRAMEINFO_PROGRAM_ID = 4,
  78. gcvFRAMEINFO_COUNT,
  79. }
  80. gceFRAMEINFO;
  81. typedef enum _gceFRAMEINFO_OP
  82. {
  83. gcvFRAMEINFO_OP_INC = 0,
  84. gcvFRAMEINFO_OP_DEC = 1,
  85. gcvFRAMEINFO_OP_ZERO = 2,
  86. gcvFRAMEINFO_OP_GET = 3,
  87. gcvFRAMEINFO_OP_SET = 4,
  88. gcvFRAMEINFO_OP_COUNT,
  89. }
  90. gceFRAMEINFO_OP;
  91. typedef enum _gceSURF_USAGE
  92. {
  93. gcvSURF_USAGE_UNKNOWN,
  94. gcvSURF_USAGE_RESOLVE_AFTER_CPU,
  95. gcvSURF_USAGE_RESOLVE_AFTER_3D
  96. }
  97. gceSURF_USAGE;
  98. typedef enum _gceSURF_COLOR_SPACE
  99. {
  100. gcvSURF_COLOR_SPACE_UNKNOWN,
  101. gcvSURF_COLOR_SPACE_LINEAR,
  102. gcvSURF_COLOR_SPACE_NONLINEAR,
  103. }
  104. gceSURF_COLOR_SPACE;
  105. typedef enum _gceSURF_COLOR_TYPE
  106. {
  107. gcvSURF_COLOR_UNKNOWN = 0,
  108. gcvSURF_COLOR_LINEAR = 0x01,
  109. gcvSURF_COLOR_ALPHA_PRE = 0x02,
  110. }
  111. gceSURF_COLOR_TYPE;
  112. /* Rotation. */
  113. typedef enum _gceSURF_ROTATION
  114. {
  115. gcvSURF_0_DEGREE = 0,
  116. gcvSURF_90_DEGREE,
  117. gcvSURF_180_DEGREE,
  118. gcvSURF_270_DEGREE,
  119. gcvSURF_FLIP_X,
  120. gcvSURF_FLIP_Y,
  121. gcvSURF_POST_FLIP_X = 0x40000000,
  122. gcvSURF_POST_FLIP_Y = 0x80000000,
  123. }
  124. gceSURF_ROTATION;
  125. /* Surface flag */
  126. typedef enum _gceSURF_FLAG
  127. {
  128. /* None flag */
  129. gcvSURF_FLAG_NONE = 0x0,
  130. /* content is preserved after swap */
  131. gcvSURF_FLAG_CONTENT_PRESERVED = 0x1,
  132. /* content is updated after swap*/
  133. gcvSURF_FLAG_CONTENT_UPDATED = 0x2,
  134. /* content is y inverted */
  135. gcvSURF_FLAG_CONTENT_YINVERTED = 0x4,
  136. /* surface has multiple nodes */
  137. gcvSURF_FLAG_MULTI_NODE = 0x8,
  138. /* surface no need do dither when resovle*/
  139. gcvSURF_FLAG_DITHER_DISABLED = 0x10,
  140. }
  141. gceSURF_FLAG;
  142. typedef enum _gceMIPMAP_IMAGE_FORMAT
  143. {
  144. gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2
  145. }
  146. gceMIPMAP_IMAGE_FORMAT;
  147. typedef enum _gceIMAGE_MEM_TYPE
  148. {
  149. gcvIMAGE_MEM_DEFAULT,
  150. gcvIMAGE_MEM_HOST_PTR,
  151. gcvIMAGE_MEM_HOST_PTR_UNCACHED,
  152. gcvIMAGE_MEM_HOST_PHY_PTR,
  153. gcvIMAGE_MEM_HOST_PHY_PTR_UNCACHED,
  154. }
  155. gceIMAGE_MEM_TYPE;
  156. typedef enum _gceSURF_YUV_COLOR_SPACE
  157. {
  158. gcvSURF_ITU_REC601,
  159. gcvSURF_ITU_REC709,
  160. gcvSURF_ITU_REC2020,
  161. }
  162. gceSURF_YUV_COLOR_SPACE;
  163. typedef enum _gceSURF_YUV_SAMPLE_RANGE
  164. {
  165. gcvSURF_YUV_FULL_RANGE,
  166. gcvSURF_YUV_NARROW_RANGE,
  167. }
  168. gceSURF_YUV_SAMPLE_RANGE;
  169. typedef enum _gceSURF_YUV_CHROMA_SITING
  170. {
  171. gcvSURF_YUV_CHROMA_SITING_0,
  172. gcvSURF_YUV_CHROMA_SITING_0_5,
  173. }
  174. gceSURF_YUV_CHROMA_SITING;
  175. typedef enum _gceSURF_INFO_TYPE
  176. {
  177. gcvSURF_INFO_UNKNOWN = 0,
  178. gcvSURF_INFO_LAYERSIZE = 1,
  179. gcvSURF_INFO_SLICESIZE = 2,
  180. }
  181. gceSURF_INFO_TYPE;
  182. /* Format modifiers. */
  183. typedef enum _gceSURF_FORMAT_MODE
  184. {
  185. gcvSURF_FORMAT_OCL = 0x80000000,
  186. gcvSURF_FORMAT_PATCH_BORDER = 0x40000000,
  187. }
  188. gceSURF_FORMAT_MODE;
  189. /* Pixel swizzle modes. */
  190. typedef enum _gceSURF_SWIZZLE
  191. {
  192. gcvSURF_NOSWIZZLE = 0,
  193. gcvSURF_ARGB,
  194. gcvSURF_ABGR,
  195. gcvSURF_RGBA,
  196. gcvSURF_BGRA
  197. }
  198. gceSURF_SWIZZLE;
  199. /* Transparency modes. */
  200. typedef enum _gceSURF_TRANSPARENCY
  201. {
  202. /* Valid only for PE 1.0 */
  203. gcvSURF_OPAQUE = 0,
  204. gcvSURF_SOURCE_MATCH,
  205. gcvSURF_SOURCE_MASK,
  206. gcvSURF_PATTERN_MASK,
  207. }
  208. gceSURF_TRANSPARENCY;
  209. /* Surface Alignment. */
  210. typedef enum _gceSURF_ALIGNMENT
  211. {
  212. gcvSURF_FOUR = 0,
  213. gcvSURF_SIXTEEN,
  214. gcvSURF_SUPER_TILED,
  215. gcvSURF_SPLIT_TILED,
  216. gcvSURF_SPLIT_SUPER_TILED
  217. }
  218. gceSURF_ALIGNMENT;
  219. /* Surface Addressing. */
  220. typedef enum _gceSURF_ADDRESSING
  221. {
  222. gcvSURF_NO_STRIDE_TILED = 0,
  223. gcvSURF_NO_STRIDE_LINEAR,
  224. gcvSURF_STRIDE_TILED,
  225. gcvSURF_STRIDE_LINEAR
  226. }
  227. gceSURF_ADDRESSING;
  228. /* Transparency modes. */
  229. typedef enum _gce2D_TRANSPARENCY
  230. {
  231. /* Valid only for PE 2.0 */
  232. gcv2D_OPAQUE = 0,
  233. gcv2D_KEYED,
  234. gcv2D_MASKED
  235. }
  236. gce2D_TRANSPARENCY;
  237. /* Mono packing modes. */
  238. typedef enum _gceSURF_MONOPACK
  239. {
  240. gcvSURF_PACKED8 = 0,
  241. gcvSURF_PACKED16,
  242. gcvSURF_PACKED32,
  243. gcvSURF_UNPACKED,
  244. }
  245. gceSURF_MONOPACK;
  246. /* Blending modes. */
  247. typedef enum _gceSURF_BLEND_MODE
  248. {
  249. /* Porter-Duff blending modes. */
  250. /* Fsrc Fdst */
  251. gcvBLEND_CLEAR = 0, /* 0 0 */
  252. gcvBLEND_SRC, /* 1 0 */
  253. gcvBLEND_DST, /* 0 1 */
  254. gcvBLEND_SRC_OVER_DST, /* 1 1 - Asrc */
  255. gcvBLEND_DST_OVER_SRC, /* 1 - Adst 1 */
  256. gcvBLEND_SRC_IN_DST, /* Adst 0 */
  257. gcvBLEND_DST_IN_SRC, /* 0 Asrc */
  258. gcvBLEND_SRC_OUT_DST, /* 1 - Adst 0 */
  259. gcvBLEND_DST_OUT_SRC, /* 0 1 - Asrc */
  260. gcvBLEND_SRC_ATOP_DST, /* Adst 1 - Asrc */
  261. gcvBLEND_DST_ATOP_SRC, /* 1 - Adst Asrc */
  262. gcvBLEND_SRC_XOR_DST, /* 1 - Adst 1 - Asrc */
  263. /* Special blending modes. */
  264. gcvBLEND_SET, /* DST = 1 */
  265. gcvBLEND_SUB /* DST = DST * (1 - SRC) */
  266. }
  267. gceSURF_BLEND_MODE;
  268. /* Per-pixel alpha modes. */
  269. typedef enum _gceSURF_PIXEL_ALPHA_MODE
  270. {
  271. gcvSURF_PIXEL_ALPHA_STRAIGHT = 0,
  272. gcvSURF_PIXEL_ALPHA_INVERSED
  273. }
  274. gceSURF_PIXEL_ALPHA_MODE;
  275. /* Global alpha modes. */
  276. typedef enum _gceSURF_GLOBAL_ALPHA_MODE
  277. {
  278. gcvSURF_GLOBAL_ALPHA_OFF = 0,
  279. gcvSURF_GLOBAL_ALPHA_ON,
  280. gcvSURF_GLOBAL_ALPHA_SCALE
  281. }
  282. gceSURF_GLOBAL_ALPHA_MODE;
  283. /* Color component modes for alpha blending. */
  284. typedef enum _gceSURF_PIXEL_COLOR_MODE
  285. {
  286. gcvSURF_COLOR_STRAIGHT = 0,
  287. gcvSURF_COLOR_MULTIPLY
  288. }
  289. gceSURF_PIXEL_COLOR_MODE;
  290. /* Color component modes for alpha blending. */
  291. typedef enum _gce2D_PIXEL_COLOR_MULTIPLY_MODE
  292. {
  293. gcv2D_COLOR_MULTIPLY_DISABLE = 0,
  294. gcv2D_COLOR_MULTIPLY_ENABLE
  295. }
  296. gce2D_PIXEL_COLOR_MULTIPLY_MODE;
  297. /* Color component modes for alpha blending. */
  298. typedef enum _gce2D_GLOBAL_COLOR_MULTIPLY_MODE
  299. {
  300. gcv2D_GLOBAL_COLOR_MULTIPLY_DISABLE = 0,
  301. gcv2D_GLOBAL_COLOR_MULTIPLY_ALPHA,
  302. gcv2D_GLOBAL_COLOR_MULTIPLY_COLOR
  303. }
  304. gce2D_GLOBAL_COLOR_MULTIPLY_MODE;
  305. /* Alpha blending factor modes. */
  306. typedef enum _gceSURF_BLEND_FACTOR_MODE
  307. {
  308. gcvSURF_BLEND_ZERO = 0,
  309. gcvSURF_BLEND_ONE,
  310. gcvSURF_BLEND_STRAIGHT,
  311. gcvSURF_BLEND_INVERSED,
  312. gcvSURF_BLEND_COLOR,
  313. gcvSURF_BLEND_COLOR_INVERSED,
  314. gcvSURF_BLEND_SRC_ALPHA_SATURATED,
  315. gcvSURF_BLEND_STRAIGHT_NO_CROSS,
  316. gcvSURF_BLEND_INVERSED_NO_CROSS,
  317. gcvSURF_BLEND_COLOR_NO_CROSS,
  318. gcvSURF_BLEND_COLOR_INVERSED_NO_CROSS,
  319. gcvSURF_BLEND_SRC_ALPHA_SATURATED_CROSS
  320. }
  321. gceSURF_BLEND_FACTOR_MODE;
  322. /* Alpha blending porter duff rules. */
  323. typedef enum _gce2D_PORTER_DUFF_RULE
  324. {
  325. gcvPD_CLEAR = 0,
  326. gcvPD_SRC,
  327. gcvPD_SRC_OVER,
  328. gcvPD_DST_OVER,
  329. gcvPD_SRC_IN,
  330. gcvPD_DST_IN,
  331. gcvPD_SRC_OUT,
  332. gcvPD_DST_OUT,
  333. gcvPD_SRC_ATOP,
  334. gcvPD_DST_ATOP,
  335. gcvPD_ADD,
  336. gcvPD_XOR,
  337. gcvPD_DST
  338. }
  339. gce2D_PORTER_DUFF_RULE;
  340. /* Alpha blending factor modes. */
  341. typedef enum _gce2D_YUV_COLOR_MODE
  342. {
  343. gcv2D_YUV_601= 0,
  344. gcv2D_YUV_709,
  345. gcv2D_YUV_USER_DEFINED,
  346. gcv2D_YUV_USER_DEFINED_CLAMP,
  347. /* Default setting is for src. gcv2D_YUV_DST
  348. can be ORed to set dst.
  349. */
  350. gcv2D_YUV_DST = 0x80000000,
  351. }
  352. gce2D_YUV_COLOR_MODE;
  353. /* Nature rotation rules. */
  354. typedef enum _gce2D_NATURE_ROTATION
  355. {
  356. gcvNR_0_DEGREE = 0,
  357. gcvNR_LEFT_90_DEGREE,
  358. gcvNR_RIGHT_90_DEGREE,
  359. gcvNR_180_DEGREE,
  360. gcvNR_FLIP_X,
  361. gcvNR_FLIP_Y,
  362. gcvNR_TOTAL_RULE,
  363. }
  364. gce2D_NATURE_ROTATION;
  365. typedef enum _gce2D_COMMAND
  366. {
  367. gcv2D_CLEAR = 0,
  368. gcv2D_LINE,
  369. gcv2D_BLT,
  370. gcv2D_STRETCH,
  371. gcv2D_HOR_FILTER,
  372. gcv2D_VER_FILTER,
  373. gcv2D_MULTI_SOURCE_BLT,
  374. gcv2D_FILTER_BLT,
  375. }
  376. gce2D_COMMAND;
  377. typedef enum _gce2D_TILE_STATUS_CONFIG
  378. {
  379. gcv2D_TSC_DISABLE = 0,
  380. gcv2D_TSC_ENABLE = 0x00000001,
  381. gcv2D_TSC_COMPRESSED = 0x00000002,
  382. gcv2D_TSC_DOWN_SAMPLER = 0x00000004,
  383. gcv2D_TSC_2D_COMPRESSED = 0x00000008,
  384. gcv2D_TSC_DEC_COMPRESSED = 0x00000020,
  385. gcv2D_TSC_DEC_TPC = 0x00000040,
  386. gcv2D_TSC_DEC_TPC_COMPRESSED = 0x00000080,
  387. gcv2D_TSC_V4_COMPRESSED = 0x00000100,
  388. gcv2D_TSC_V4_COMPRESSED_256B = 0x00000200 | gcv2D_TSC_V4_COMPRESSED,
  389. gcv2D_TSC_DEC_TPC_TILED = gcv2D_TSC_DEC_COMPRESSED | gcv2D_TSC_DEC_TPC,
  390. gcv2D_TSC_DEC_TPC_TILED_COMPRESSED = gcv2D_TSC_DEC_TPC_TILED | gcv2D_TSC_DEC_TPC_COMPRESSED,
  391. gcv2D_TSC_TPC_COMPRESSED = 0x00001000,
  392. gcv2D_TSC_TPC_COMPRESSED_V10 = gcv2D_TSC_TPC_COMPRESSED | 0x00000400,
  393. gcv2D_TSC_TPC_COMPRESSED_V11 = gcv2D_TSC_TPC_COMPRESSED | 0x00000800,
  394. }
  395. gce2D_TILE_STATUS_CONFIG;
  396. typedef enum _gce2D_DEC400_MINOR_VERSION
  397. {
  398. gcv2D_DEC400_MINOR_V1 = 1,
  399. gcv2D_DEC400_MINOR_V2 = 2,
  400. gcv2D_DEC400_MINOR_V3 = 3,
  401. }
  402. gce2D_DEC400_MINOR_VERSION;
  403. typedef enum _gce2D_QUERY
  404. {
  405. gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN = 0,
  406. gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
  407. gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
  408. gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
  409. gcv2D_QUERY_DEC400_MINOR_VERSION,
  410. }
  411. gce2D_QUERY;
  412. typedef enum _gce2D_SUPER_TILE_VERSION
  413. {
  414. gcv2D_SUPER_TILE_VERSION_V1 = 1,
  415. gcv2D_SUPER_TILE_VERSION_V2 = 2,
  416. gcv2D_SUPER_TILE_VERSION_V3 = 3,
  417. }
  418. gce2D_SUPER_TILE_VERSION;
  419. typedef enum _gce2D_STATE
  420. {
  421. gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE = 1,
  422. gcv2D_STATE_SUPER_TILE_VERSION,
  423. gcv2D_STATE_EN_GAMMA,
  424. gcv2D_STATE_DE_GAMMA,
  425. gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
  426. gcv2D_STATE_MULTI_SRC_BLIT_BILINEAR_FILTER,
  427. gcv2D_STATE_PROFILE_ENABLE,
  428. gcv2D_STATE_XRGB_ENABLE,
  429. gcv2D_STATE_ARRAY_EN_GAMMA = 0x10001,
  430. gcv2D_STATE_ARRAY_DE_GAMMA,
  431. gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
  432. gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
  433. gcv2D_STATE_DEC_TPC_NV12_10BIT = 0x20001,
  434. gcv2D_STATE_ARRAY_YUV_SRC_TILE_STATUS_ADDR,
  435. gcv2D_STATE_ARRAY_YUV_DST_TILE_STATUS_ADDR,
  436. }
  437. gce2D_STATE;
  438. typedef enum _gce2D_STATE_PROFILE
  439. {
  440. gcv2D_STATE_PROFILE_NONE = 0x0,
  441. gcv2D_STATE_PROFILE_COMMAND = 0x1,
  442. gcv2D_STATE_PROFILE_SURFACE = 0x2,
  443. gcv2D_STATE_PROFILE_ALL = 0xFFFF,
  444. }
  445. gce2D_STATE_PROFILE;
  446. /* Texture object types */
  447. typedef enum _gceTEXTURE_TYPE
  448. {
  449. gcvTEXTURE_UNKNOWN = 0,
  450. gcvTEXTURE_1D,
  451. gcvTEXTURE_2D,
  452. gcvTEXTURE_3D,
  453. gcvTEXTURE_CUBEMAP,
  454. gcvTEXTURE_1D_ARRAY,
  455. gcvTEXTURE_2D_ARRAY,
  456. gcvTEXTURE_2D_MS,
  457. gcvTEXTURE_2D_MS_ARRAY,
  458. gcvTEXTURE_CUBEMAP_ARRAY,
  459. gcvTEXTURE_EXTERNAL
  460. }
  461. gceTEXTURE_TYPE;
  462. #if gcdENABLE_3D
  463. /* Texture functions. */
  464. typedef enum _gceTEXTURE_FUNCTION
  465. {
  466. gcvTEXTURE_DUMMY = 0,
  467. gcvTEXTURE_REPLACE = 0,
  468. gcvTEXTURE_MODULATE,
  469. gcvTEXTURE_ADD,
  470. gcvTEXTURE_ADD_SIGNED,
  471. gcvTEXTURE_INTERPOLATE,
  472. gcvTEXTURE_SUBTRACT,
  473. gcvTEXTURE_DOT3
  474. }
  475. gceTEXTURE_FUNCTION;
  476. /* Texture sources. */
  477. typedef enum _gceTEXTURE_SOURCE
  478. {
  479. gcvCOLOR_FROM_TEXTURE = 0,
  480. gcvCOLOR_FROM_CONSTANT_COLOR,
  481. gcvCOLOR_FROM_PRIMARY_COLOR,
  482. gcvCOLOR_FROM_PREVIOUS_COLOR
  483. }
  484. gceTEXTURE_SOURCE;
  485. /* Texture source channels. */
  486. typedef enum _gceTEXTURE_CHANNEL
  487. {
  488. gcvFROM_COLOR = 0,
  489. gcvFROM_ONE_MINUS_COLOR,
  490. gcvFROM_ALPHA,
  491. gcvFROM_ONE_MINUS_ALPHA
  492. }
  493. gceTEXTURE_CHANNEL;
  494. #endif /* gcdENABLE_3D */
  495. /* Filter types. */
  496. typedef enum _gceFILTER_TYPE
  497. {
  498. gcvFILTER_SYNC = 0,
  499. gcvFILTER_BLUR,
  500. gcvFILTER_USER
  501. }
  502. gceFILTER_TYPE;
  503. /* Filter pass types. */
  504. typedef enum _gceFILTER_PASS_TYPE
  505. {
  506. gcvFILTER_HOR_PASS = 0,
  507. gcvFILTER_VER_PASS
  508. }
  509. gceFILTER_PASS_TYPE;
  510. /* Endian hints. */
  511. typedef enum _gceENDIAN_HINT
  512. {
  513. gcvENDIAN_NO_SWAP = 0,
  514. gcvENDIAN_SWAP_WORD = 1,
  515. gcvENDIAN_SWAP_DWORD = 2,
  516. gcvENDIAN_SWAP_QWORD = 3,
  517. }
  518. gceENDIAN_HINT;
  519. /* Tiling modes. */
  520. typedef enum _gceTILING
  521. {
  522. gcvINVALIDTILED = 0x0, /* Invalid tiling */
  523. /* Tiling basic modes enum'ed in power of 2. */
  524. gcvLINEAR = 0x1, /* No tiling. */
  525. gcvTILED = 0x2, /* 4x4 tiling. */
  526. gcvSUPERTILED = 0x4, /* 64x64 tiling. */
  527. gcvMINORTILED = 0x8, /* 2x2 tiling. */
  528. /* Tiling special layouts. */
  529. gcvTILING_SPLIT_BUFFER = 0x10,
  530. gcvTILING_X_MAJOR = 0x20,
  531. gcvTILING_Y_MAJOR = 0x40,
  532. gcvTILING_SWAP = 0x80,
  533. /* Tiling combination layouts. */
  534. gcvMULTI_TILED = gcvTILED
  535. | gcvTILING_SPLIT_BUFFER,
  536. gcvMULTI_SUPERTILED = gcvSUPERTILED
  537. | gcvTILING_SPLIT_BUFFER,
  538. gcvYMAJOR_SUPERTILED = gcvSUPERTILED
  539. | gcvTILING_Y_MAJOR,
  540. gcvTILED_8X4 = 0x0100,
  541. gcvTILED_4X8 = 0x0100 | gcvTILING_SWAP,
  542. gcvTILED_8X8 = 0x0200,
  543. gcvTILED_16X4 = 0x0400,
  544. gcvTILED_32X4 = 0x0800,
  545. gcvTILED_64X4 = 0x1000,
  546. gcvTILED_8X8_XMAJOR = gcvTILED_8X8 | gcvTILING_X_MAJOR,
  547. gcvTILED_8X8_YMAJOR = gcvTILED_8X8 | gcvTILING_Y_MAJOR,
  548. gcvSUPERTILED_128B = 0x10000 | gcvSUPERTILED,
  549. gcvSUPERTILED_256B = 0x20000 | gcvSUPERTILED,
  550. }
  551. gceTILING;
  552. typedef enum _gceCACHE_MODE
  553. {
  554. gcvCACHE_NONE,
  555. gcvCACHE_128,
  556. gcvCACHE_256,
  557. }
  558. gceCACHE_MODE;
  559. #define DEFAULT_CACHE_MODE gcvCACHE_256
  560. /* 2D pattern type. */
  561. typedef enum _gce2D_PATTERN
  562. {
  563. gcv2D_PATTERN_SOLID = 0,
  564. gcv2D_PATTERN_MONO,
  565. gcv2D_PATTERN_COLOR,
  566. gcv2D_PATTERN_INVALID
  567. }
  568. gce2D_PATTERN;
  569. /* 2D source type. */
  570. typedef enum _gce2D_SOURCE
  571. {
  572. gcv2D_SOURCE_MASKED = 0,
  573. gcv2D_SOURCE_MONO,
  574. gcv2D_SOURCE_COLOR,
  575. gcv2D_SOURCE_INVALID
  576. }
  577. gce2D_SOURCE;
  578. typedef enum _gceMMU_MODE
  579. {
  580. gcvMMU_MODE_1K,
  581. gcvMMU_MODE_4K,
  582. } gceMMU_MODE;
  583. /* gcdDUMP message type. */
  584. typedef enum _gceDEBUG_MESSAGE_TYPE
  585. {
  586. gcvMESSAGE_TEXT,
  587. gcvMESSAGE_DUMP
  588. }
  589. gceDEBUG_MESSAGE_TYPE;
  590. /* Shading format. */
  591. typedef enum _gceSHADING
  592. {
  593. gcvSHADING_SMOOTH,
  594. gcvSHADING_FLAT_D3D,
  595. gcvSHADING_FLAT_OPENGL,
  596. }
  597. gceSHADING;
  598. /* Culling modes. */
  599. typedef enum _gceCULL
  600. {
  601. gcvCULL_NONE,
  602. gcvCULL_CCW,
  603. gcvCULL_CW,
  604. }
  605. gceCULL;
  606. /* Fill modes. */
  607. typedef enum _gceFILL
  608. {
  609. gcvFILL_POINT,
  610. gcvFILL_WIRE_FRAME,
  611. gcvFILL_SOLID,
  612. }
  613. gceFILL;
  614. /* Compare modes. */
  615. typedef enum _gceCOMPARE
  616. {
  617. gcvCOMPARE_INVALID = 0,
  618. gcvCOMPARE_NEVER,
  619. gcvCOMPARE_NOT_EQUAL,
  620. gcvCOMPARE_LESS,
  621. gcvCOMPARE_LESS_OR_EQUAL,
  622. gcvCOMPARE_EQUAL,
  623. gcvCOMPARE_GREATER,
  624. gcvCOMPARE_GREATER_OR_EQUAL,
  625. gcvCOMPARE_ALWAYS,
  626. }
  627. gceCOMPARE;
  628. /* Stencil modes. */
  629. typedef enum _gceSTENCIL_MODE
  630. {
  631. gcvSTENCIL_NONE,
  632. gcvSTENCIL_SINGLE_SIDED,
  633. gcvSTENCIL_DOUBLE_SIDED,
  634. }
  635. gceSTENCIL_MODE;
  636. /* Stencil operations. */
  637. typedef enum _gceSTENCIL_OPERATION
  638. {
  639. gcvSTENCIL_KEEP,
  640. gcvSTENCIL_REPLACE,
  641. gcvSTENCIL_ZERO,
  642. gcvSTENCIL_INVERT,
  643. gcvSTENCIL_INCREMENT,
  644. gcvSTENCIL_DECREMENT,
  645. gcvSTENCIL_INCREMENT_SATURATE,
  646. gcvSTENCIL_DECREMENT_SATURATE,
  647. gcvSTENCIL_OPERATION_INVALID = -1
  648. }
  649. gceSTENCIL_OPERATION;
  650. /* Stencil selection. */
  651. typedef enum _gceSTENCIL_WHERE
  652. {
  653. gcvSTENCIL_FRONT,
  654. gcvSTENCIL_BACK,
  655. }
  656. gceSTENCIL_WHERE;
  657. /* Texture addressing selection. */
  658. typedef enum _gceTEXTURE_WHICH
  659. {
  660. gcvTEXTURE_S,
  661. gcvTEXTURE_T,
  662. gcvTEXTURE_R,
  663. }
  664. gceTEXTURE_WHICH;
  665. /* Texture addressing modes. */
  666. typedef enum _gceTEXTURE_ADDRESSING
  667. {
  668. gcvTEXTURE_INVALID = 0,
  669. gcvTEXTURE_CLAMP,
  670. gcvTEXTURE_WRAP,
  671. gcvTEXTURE_MIRROR,
  672. gcvTEXTURE_BORDER,
  673. gcvTEXTURE_MIRROR_ONCE,
  674. }
  675. gceTEXTURE_ADDRESSING;
  676. /* Texture filters. */
  677. typedef enum _gceTEXTURE_FILTER
  678. {
  679. gcvTEXTURE_NONE,
  680. gcvTEXTURE_POINT,
  681. gcvTEXTURE_LINEAR,
  682. gcvTEXTURE_ANISOTROPIC,
  683. }
  684. gceTEXTURE_FILTER;
  685. typedef enum _gceTEXTURE_COMPONENT
  686. {
  687. gcvTEXTURE_COMPONENT_R,
  688. gcvTEXTURE_COMPONENT_G,
  689. gcvTEXTURE_COMPONENT_B,
  690. gcvTEXTURE_COMPONENT_A,
  691. gcvTEXTURE_COMPONENT_NUM,
  692. } gceTEXTURE_COMPONENT;
  693. /* Texture swizzle modes. */
  694. typedef enum _gceTEXTURE_SWIZZLE
  695. {
  696. gcvTEXTURE_SWIZZLE_R = 0,
  697. gcvTEXTURE_SWIZZLE_G,
  698. gcvTEXTURE_SWIZZLE_B,
  699. gcvTEXTURE_SWIZZLE_A,
  700. gcvTEXTURE_SWIZZLE_0,
  701. gcvTEXTURE_SWIZZLE_1,
  702. gcvTEXTURE_SWIZZLE_INVALID,
  703. } gceTEXTURE_SWIZZLE;
  704. typedef enum _gceTEXTURE_SRGBDECODE
  705. {
  706. gcvTEXTURE_SRGB_INVALID = 0,
  707. gcvTEXTURE_DECODE,
  708. gcvTEXTURE_SKIP_DECODE,
  709. }gceTEXTURE_SRGBDECODE;
  710. typedef enum _gceTEXTURE_COMPARE_MODE
  711. {
  712. gcvTEXTURE_COMPARE_MODE_INVALID = 0,
  713. gcvTEXTURE_COMPARE_MODE_NONE,
  714. gcvTEXTURE_COMPARE_MODE_REF,
  715. } gceTEXTURE_COMPARE_MODE;
  716. typedef enum _gceTEXTURE_DS_MODE
  717. {
  718. gcvTEXTURE_DS_MODE_INVALID = 0,
  719. gcvTEXTURE_DS_MODE_DEPTH = 1,
  720. gcvTEXTURE_DS_MODE_STENCIL = 2,
  721. }gceTEXTURE_DS_MODE;
  722. typedef enum _gceTEXTURE_DS_TEX_MODE
  723. {
  724. gcvTEXTURE_DS_TEXTURE_MODE_LUMINANCE = 0,
  725. gcvTEXTURE_DS_TEXTURE_MODE_INTENSITY,
  726. gcvTEXTURE_DS_TEXTURE_MODE_ALPHA,
  727. gcvTEXTURE_DS_TEXTURE_MODE_RED,
  728. gcvTEXTURE_DS_TEXTURE_MODE_INVALID,
  729. }gceTEXTURE_DS_TEX_MODE;
  730. /* Pixel output swizzle modes. */
  731. typedef enum _gcePIXEL_SWIZZLE
  732. {
  733. gcvPIXEL_SWIZZLE_R = gcvTEXTURE_SWIZZLE_R,
  734. gcvPIXEL_SWIZZLE_G = gcvTEXTURE_SWIZZLE_G,
  735. gcvPIXEL_SWIZZLE_B = gcvTEXTURE_SWIZZLE_B,
  736. gcvPIXEL_SWIZZLE_A = gcvTEXTURE_SWIZZLE_A,
  737. gcvPIXEL_SWIZZLE_INVALID,
  738. } gcePIXEL_SWIZZLE;
  739. /* Primitive types. */
  740. typedef enum _gcePRIMITIVE
  741. {
  742. gcvPRIMITIVE_POINT_LIST,
  743. gcvPRIMITIVE_LINE_LIST,
  744. gcvPRIMITIVE_LINE_STRIP,
  745. gcvPRIMITIVE_LINE_LOOP,
  746. gcvPRIMITIVE_TRIANGLE_LIST,
  747. gcvPRIMITIVE_TRIANGLE_STRIP,
  748. gcvPRIMITIVE_TRIANGLE_FAN,
  749. gcvPRIMITIVE_RECTANGLE,
  750. gcvPRIMITIVE_LINES_ADJACENCY,
  751. gcvPRIMITIVE_LINE_STRIP_ADJACENCY,
  752. gcvPRIMITIVE_TRIANGLES_ADJACENCY,
  753. gcvPRIMITIVE_TRIANGLE_STRIP_ADJACENCY,
  754. gcvPRIMITIVE_PATCH_LIST,
  755. }
  756. gcePRIMITIVE;
  757. /* Index types. */
  758. typedef enum _gceINDEX_TYPE
  759. {
  760. gcvINDEX_8,
  761. gcvINDEX_16,
  762. gcvINDEX_32,
  763. }
  764. gceINDEX_TYPE;
  765. /* Multi GPU rendering modes. */
  766. typedef enum _gceMULTI_GPU_RENDERING_MODE
  767. {
  768. gcvMULTI_GPU_RENDERING_MODE_OFF,
  769. gcvMULTI_GPU_RENDERING_MODE_SPLIT_WIDTH,
  770. gcvMULTI_GPU_RENDERING_MODE_SPLIT_HEIGHT,
  771. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_64x64,
  772. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x64,
  773. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x128,
  774. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED,
  775. gcvMULTI_GPU_RENDERING_MODE_INVALID
  776. }
  777. gceMULTI_GPU_RENDERING_MODE;
  778. typedef enum _gceMULTI_GPU_MODE
  779. {
  780. gcvMULTI_GPU_MODE_COMBINED = 0,
  781. gcvMULTI_GPU_MODE_INDEPENDENT = 1
  782. }
  783. gceMULTI_GPU_MODE;
  784. typedef enum _gceMACHINECODE
  785. {
  786. gcvMACHINECODE_ANTUTU0 = 0x0,
  787. gcvMACHINECODE_GLB27_RELEASE_0,
  788. gcvMACHINECODE_GLB25_RELEASE_0,
  789. gcvMACHINECODE_GLB25_RELEASE_1,
  790. /* keep it as the last enum */
  791. gcvMACHINECODE_COUNT
  792. }
  793. gceMACHINECODE;
  794. typedef enum _gceUNIFORMCVT
  795. {
  796. gcvUNIFORMCVT_NONE = 0,
  797. gcvUNIFORMCVT_TO_BOOL,
  798. gcvUNIFORMCVT_TO_FLOAT,
  799. } gceUNIFORMCVT;
  800. typedef enum _gceHAL_ARG_VERSION
  801. {
  802. gcvHAL_ARG_VERSION_V1 = 0x0,
  803. gcvHAL_ARG_VERSION_V2,
  804. }
  805. gceHAL_ARG_VERSION;
  806. /** endian mode for each 2Bytes
  807. * endian mode endian
  808. *endian mode0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  809. *endian mode1: 1 0 3 2 5 4 7 6 9 8 11 10 13 12 15 14
  810. *endian mode2: 2 3 0 1 6 7 4 5 10 11 8 9 14 15 12 13
  811. *endain mode3: 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12
  812. *endain mode4: 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3
  813. *endain mode5: 13 12 15 14 9 8 11 10 5 4 7 6 1 0 3 2
  814. *endain mode6: 14 15 12 13 10 11 8 9 6 7 4 5 2 3 0 1
  815. *endain mode7: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
  816. **/
  817. typedef enum _gceENDIAN_MODE
  818. {
  819. gcvENDIAN_MODE0 = 0x0, /* endian mode0 */
  820. gcvENDIAN_MODE1 = 0x1, /* endian mode1 */
  821. gcvENDIAN_MODE2 = 0x2, /* endian mode2 */
  822. gcvENDIAN_MODE3 = 0x3, /* endian mode3 */
  823. gcvENDIAN_MODE4 = 0x4, /* endian mode4 */
  824. gcvENDIAN_MODE5 = 0x5, /* endian mode5 */
  825. gcvENDIAN_MODE6 = 0x6, /* endian mode6 */
  826. gcvENDIAN_MODE7 = 0x7, /* endian mode7 */
  827. }
  828. gceENDIAN_MODE;
  829. typedef enum _gceHW_FE_TYPE
  830. {
  831. gcvHW_FE_WAIT_LINK,
  832. gcvHW_FE_ASYNC,
  833. gcvHW_FE_MULTI_CHANNEL,
  834. }
  835. gceHW_FE_TYPE;
  836. typedef enum _gceMCFE_CHANNEL_TYPE
  837. {
  838. gcvMCFE_CHANNEL_NONE = 0,
  839. gcvMCFE_CHANNEL_SYSTEM,
  840. gcvMCFE_CHANNEL_SHADER,
  841. gcvMCFE_CHANNEL_NN,
  842. gcvMCFE_CHANNEL_TP,
  843. gcvMCFE_CHANNEL_3DBLIT = 128,
  844. }
  845. gceMCFE_CHANNEL_TYPE;
  846. typedef enum _gcePAGE_TYPE
  847. {
  848. gcvPAGE_TYPE_1M,
  849. gcvPAGE_TYPE_4K,
  850. }
  851. gcePAGE_TYPE;
  852. typedef enum _gceAREA_TYPE
  853. {
  854. gcvAREA_TYPE_UNKNOWN = 0,
  855. gcvAREA_TYPE_FLATMAP,
  856. gcvAREA_TYPE_1M,
  857. gcvAREA_TYPE_4K,
  858. }
  859. gceAREA_TYPE;
  860. /*******************************************************************************
  861. ** Broadcast interface.
  862. */
  863. typedef enum _gceBROADCAST
  864. {
  865. /* GPU might be idle. */
  866. gcvBROADCAST_GPU_IDLE,
  867. /* A commit is going to happen. */
  868. gcvBROADCAST_GPU_COMMIT,
  869. /* GPU seems to be stuck. */
  870. gcvBROADCAST_GPU_STUCK,
  871. /* First process gets attached. */
  872. gcvBROADCAST_FIRST_PROCESS,
  873. /* Last process gets detached. */
  874. gcvBROADCAST_LAST_PROCESS,
  875. /* AXI bus error. */
  876. gcvBROADCAST_AXI_BUS_ERROR,
  877. /* Out of memory. */
  878. gcvBROADCAST_OUT_OF_MEMORY,
  879. }
  880. gceBROADCAST;
  881. /* Notifications. */
  882. typedef enum _gceNOTIFY
  883. {
  884. gcvNOTIFY_INTERRUPT,
  885. gcvNOTIFY_COMMAND_QUEUE,
  886. }
  887. gceNOTIFY;
  888. /* Flush flags. */
  889. typedef enum _gceKERNEL_FLUSH
  890. {
  891. gcvFLUSH_COLOR = 0x01,
  892. gcvFLUSH_DEPTH = 0x02,
  893. gcvFLUSH_TEXTURE = 0x04,
  894. gcvFLUSH_2D = 0x08,
  895. gcvFLUSH_L2 = 0x10,
  896. gcvFLUSH_TILE_STATUS = 0x20,
  897. gcvFLUSH_ICACHE = 0x40,
  898. gcvFLUSH_TXDESC = 0x80,
  899. gcvFLUSH_FENCE = 0x100,
  900. gcvFLUSH_VERTEX = 0x200,
  901. gcvFLUSH_TFBHEADER = 0x400,
  902. gcvFLUSH_ALL = gcvFLUSH_COLOR
  903. | gcvFLUSH_DEPTH
  904. | gcvFLUSH_TEXTURE
  905. | gcvFLUSH_2D
  906. | gcvFLUSH_L2
  907. | gcvFLUSH_TILE_STATUS
  908. | gcvFLUSH_ICACHE
  909. | gcvFLUSH_TXDESC
  910. | gcvFLUSH_FENCE
  911. | gcvFLUSH_VERTEX
  912. | gcvFLUSH_TFBHEADER
  913. }
  914. gceKERNEL_FLUSH;
  915. typedef enum _gceCOUNTER
  916. {
  917. gcvCOUNTER_FRONT_END,
  918. gcvCOUNTER_VERTEX_SHADER,
  919. gcvCOUNTER_PRIMITIVE_ASSEMBLY,
  920. gcvCOUNTER_SETUP,
  921. gcvCOUNTER_RASTERIZER,
  922. gcvCOUNTER_PIXEL_SHADER,
  923. gcvCOUNTER_TEXTURE,
  924. gcvCOUNTER_PIXEL_ENGINE,
  925. gcvCOUNTER_MEMORY_CONTROLLER_COLOR,
  926. gcvCOUNTER_MEMORY_CONTROLLER_DEPTH,
  927. gcvCOUNTER_HOST_INTERFACE0,
  928. gcvCOUNTER_HOST_INTERFACE1,
  929. gcvCOUNTER_GPUL2_CACHE,
  930. gcvCOUNTER_COUNT
  931. }
  932. gceCOUNTER;
  933. typedef enum _gceProfilerClient
  934. {
  935. gcvCLIENT_OPENGLES11 = 1,
  936. gcvCLIENT_OPENGLES,
  937. gcvCLIENT_OPENGL,
  938. gcvCLIENT_OPENVG,
  939. gcvCLIENT_OPENCL,
  940. gcvCLIENT_OPENVX,
  941. gcvCLIENT_OPENVK,
  942. }
  943. gceProfilerClient;
  944. typedef enum _gceCOUNTER_OPTYPE
  945. {
  946. gcvCOUNTER_OP_DRAW = 0,
  947. gcvCOUNTER_OP_BLT = 1,
  948. gcvCOUNTER_OP_COMPUTE = 2,
  949. gcvCOUNTER_OP_RS = 3,
  950. gcvCOUNTER_OP_FINISH = 4,
  951. gcvCOUNTER_OP_FRAME = 5,
  952. gcvCOUNTER_OP_NONE = 6
  953. }
  954. gceCOUNTER_OPTYPE;
  955. typedef enum _gceProbeStatus
  956. {
  957. gcvPROBE_Disabled = 0,
  958. gcvPROBE_Paused = 1,
  959. gcvPROBE_Enabled = 2,
  960. }
  961. gceProbeStatus;
  962. typedef enum _gceProbeCmd
  963. {
  964. gcvPROBECMD_BEGIN = 0,
  965. gcvPROBECMD_PAUSE = 1,
  966. gcvPROBECMD_RESUME = 2,
  967. gcvPROBECMD_END = 3,
  968. }
  969. gceProbeCmd;
  970. /*******************************************************************************
  971. ** Events. *********************************************************************
  972. */
  973. typedef enum _halEventType
  974. {
  975. /* Keyboard event. */
  976. HAL_KEYBOARD,
  977. /* Mouse move event. */
  978. HAL_POINTER,
  979. /* Mouse button event. */
  980. HAL_BUTTON,
  981. /* Application close event. */
  982. HAL_CLOSE,
  983. /* Application window has been updated. */
  984. HAL_WINDOW_UPDATE
  985. }
  986. halEventType;
  987. /* Scancodes for keyboard. */
  988. typedef enum _halKeys
  989. {
  990. HAL_UNKNOWN = -1,
  991. HAL_BACKSPACE = 0x08,
  992. HAL_TAB,
  993. HAL_ENTER = 0x0D,
  994. HAL_ESCAPE = 0x1B,
  995. HAL_SPACE = 0x20,
  996. HAL_SINGLEQUOTE = 0x27,
  997. HAL_PAD_ASTERISK = 0x2A,
  998. HAL_COMMA = 0x2C,
  999. HAL_HYPHEN,
  1000. HAL_PERIOD,
  1001. HAL_SLASH,
  1002. HAL_0,
  1003. HAL_1,
  1004. HAL_2,
  1005. HAL_3,
  1006. HAL_4,
  1007. HAL_5,
  1008. HAL_6,
  1009. HAL_7,
  1010. HAL_8,
  1011. HAL_9,
  1012. HAL_SEMICOLON = 0x3B,
  1013. HAL_EQUAL = 0x3D,
  1014. HAL_A = 0x41,
  1015. HAL_B,
  1016. HAL_C,
  1017. HAL_D,
  1018. HAL_E,
  1019. HAL_F,
  1020. HAL_G,
  1021. HAL_H,
  1022. HAL_I,
  1023. HAL_J,
  1024. HAL_K,
  1025. HAL_L,
  1026. HAL_M,
  1027. HAL_N,
  1028. HAL_O,
  1029. HAL_P,
  1030. HAL_Q,
  1031. HAL_R,
  1032. HAL_S,
  1033. HAL_T,
  1034. HAL_U,
  1035. HAL_V,
  1036. HAL_W,
  1037. HAL_X,
  1038. HAL_Y,
  1039. HAL_Z,
  1040. HAL_LBRACKET,
  1041. HAL_BACKSLASH,
  1042. HAL_RBRACKET,
  1043. HAL_BACKQUOTE = 0x60,
  1044. HAL_F1 = 0x80,
  1045. HAL_F2,
  1046. HAL_F3,
  1047. HAL_F4,
  1048. HAL_F5,
  1049. HAL_F6,
  1050. HAL_F7,
  1051. HAL_F8,
  1052. HAL_F9,
  1053. HAL_F10,
  1054. HAL_F11,
  1055. HAL_F12,
  1056. HAL_LCTRL,
  1057. HAL_RCTRL,
  1058. HAL_LSHIFT,
  1059. HAL_RSHIFT,
  1060. HAL_LALT,
  1061. HAL_RALT,
  1062. HAL_CAPSLOCK,
  1063. HAL_NUMLOCK,
  1064. HAL_SCROLLLOCK,
  1065. HAL_PAD_0,
  1066. HAL_PAD_1,
  1067. HAL_PAD_2,
  1068. HAL_PAD_3,
  1069. HAL_PAD_4,
  1070. HAL_PAD_5,
  1071. HAL_PAD_6,
  1072. HAL_PAD_7,
  1073. HAL_PAD_8,
  1074. HAL_PAD_9,
  1075. HAL_PAD_HYPHEN,
  1076. HAL_PAD_PLUS,
  1077. HAL_PAD_SLASH,
  1078. HAL_PAD_PERIOD,
  1079. HAL_PAD_ENTER,
  1080. HAL_SYSRQ,
  1081. HAL_PRNTSCRN,
  1082. HAL_BREAK,
  1083. HAL_UP,
  1084. HAL_LEFT,
  1085. HAL_RIGHT,
  1086. HAL_DOWN,
  1087. HAL_HOME,
  1088. HAL_END,
  1089. HAL_PGUP,
  1090. HAL_PGDN,
  1091. HAL_INSERT,
  1092. HAL_DELETE,
  1093. HAL_LWINDOW,
  1094. HAL_RWINDOW,
  1095. HAL_MENU,
  1096. HAL_POWER,
  1097. HAL_SLEEP,
  1098. HAL_WAKE
  1099. }
  1100. halKeys;
  1101. /*!
  1102. @brief Command codes between kernel module and TrustZone
  1103. @discussion
  1104. Critical services must be done in TrustZone to avoid sensitive content leak. Most of kernel module is kept in non-Secure os to minimize
  1105. code in TrustZone.
  1106. */
  1107. typedef enum kernel_packet_command {
  1108. KERNEL_START_COMMAND,
  1109. KERNEL_SUBMIT,
  1110. KERNEL_MAP_MEMORY, /* */
  1111. KERNEL_UNMAP_MEMORY,
  1112. KERNEL_ALLOCATE_SECRUE_MEMORY, /*! Security memory management. */
  1113. KERNEL_FREE_SECURE_MEMORY,
  1114. KERNEL_EXECUTE, /* Execute a command buffer. */
  1115. KERNEL_DUMP_MMU_EXCEPTION,
  1116. KERNEL_HANDLE_MMU_EXCEPTION,
  1117. KERNEL_READ_MMU_EXCEPTION,
  1118. } kernel_packet_command_t;
  1119. enum {
  1120. gcvTA_COMMAND_INIT,
  1121. gcvTA_COMMAND_DISPATCH,
  1122. gcvTA_CALLBACK_ALLOC_SECURE_MEM,
  1123. gcvTA_CALLBACK_FREE_SECURE_MEM,
  1124. };
  1125. typedef enum {
  1126. gcvFENCE_TYPE_READ = 0x1,
  1127. gcvFENCE_TYPE_WRITE = 0x2,
  1128. gcvFENCE_TYPE_ALL = gcvFENCE_TYPE_READ | gcvFENCE_TYPE_WRITE,
  1129. gcvFNECE_TYPE_INVALID = 0x10000,
  1130. }
  1131. gceFENCE_TYPE;
  1132. typedef enum _gceTLS_KEY
  1133. {
  1134. gcvTLS_KEY_EGL,
  1135. gcvTLS_KEY_OPENGL_ES,
  1136. gcvTLS_KEY_OPENVG,
  1137. gcvTLS_KEY_OPENGL,
  1138. gcvTLS_KEY_OPENCL,
  1139. gcvTLS_KEY_OPENVX,
  1140. gcvTLS_KEY_COUNT
  1141. }
  1142. gceTLS_KEY;
  1143. typedef enum _gcePLS_VALUE
  1144. {
  1145. gcePLS_VALUE_EGL_DISPLAY_INFO,
  1146. gcePLS_VALUE_EGL_CONFIG_FORMAT_INFO,
  1147. gcePLS_VALUE_EGL_DESTRUCTOR_INFO,
  1148. }
  1149. gcePLS_VALUE;
  1150. #if gcdENABLE_3D
  1151. /* Blending functions. */
  1152. typedef enum _gceBLEND_FUNCTION
  1153. {
  1154. gcvBLEND_ZERO,
  1155. gcvBLEND_ONE,
  1156. gcvBLEND_SOURCE_COLOR,
  1157. gcvBLEND_INV_SOURCE_COLOR,
  1158. gcvBLEND_SOURCE_ALPHA,
  1159. gcvBLEND_INV_SOURCE_ALPHA,
  1160. gcvBLEND_TARGET_COLOR,
  1161. gcvBLEND_INV_TARGET_COLOR,
  1162. gcvBLEND_TARGET_ALPHA,
  1163. gcvBLEND_INV_TARGET_ALPHA,
  1164. gcvBLEND_SOURCE_ALPHA_SATURATE,
  1165. gcvBLEND_CONST_COLOR,
  1166. gcvBLEND_INV_CONST_COLOR,
  1167. gcvBLEND_CONST_ALPHA,
  1168. gcvBLEND_INV_CONST_ALPHA,
  1169. }
  1170. gceBLEND_FUNCTION;
  1171. /* Blending modes. */
  1172. typedef enum _gceBLEND_MODE
  1173. {
  1174. gcvBLEND_ADD = 0,
  1175. gcvBLEND_SUBTRACT,
  1176. gcvBLEND_REVERSE_SUBTRACT,
  1177. gcvBLEND_MIN,
  1178. gcvBLEND_MAX,
  1179. gcvBLEND_MULTIPLY,
  1180. gcvBLEND_SCREEN,
  1181. gcvBLEND_OVERLAY,
  1182. gcvBLEND_DARKEN,
  1183. gcvBLEND_LIGHTEN,
  1184. gcvBLEND_COLORDODGE,
  1185. gcvBLEND_COLORBURN,
  1186. gcvBLEND_HARDLIGHT,
  1187. gcvBLEND_SOFTLIGHT,
  1188. gcvBLEND_DIFFERENCE,
  1189. gcvBLEND_EXCLUSION,
  1190. gcvBLEND_HSL_HUE,
  1191. gcvBLEND_HSL_SATURATION,
  1192. gcvBLEND_HSL_COLOR,
  1193. gcvBLEND_HSL_LUMINOSITY,
  1194. gcvBLEND_TOTAL
  1195. }
  1196. gceBLEND_MODE;
  1197. /* Depth modes. */
  1198. typedef enum _gceDEPTH_MODE
  1199. {
  1200. gcvDEPTH_NONE,
  1201. gcvDEPTH_Z,
  1202. gcvDEPTH_W,
  1203. }
  1204. gceDEPTH_MODE;
  1205. #endif /* gcdENABLE_3D */
  1206. /* API flags. */
  1207. typedef enum _gceAPI
  1208. {
  1209. gcvAPI_D3D = 1,
  1210. gcvAPI_OPENGL_ES11,
  1211. gcvAPI_OPENGL_ES20,
  1212. gcvAPI_OPENGL_ES30,
  1213. gcvAPI_OPENGL_ES31,
  1214. gcvAPI_OPENGL_ES32,
  1215. gcvAPI_OPENGL,
  1216. gcvAPI_OPENVG,
  1217. gcvAPI_OPENCL,
  1218. gcvAPI_OPENVK,
  1219. }
  1220. gceAPI;
  1221. typedef enum _gceWHERE
  1222. {
  1223. gcvWHERE_COMMAND_PREFETCH = 0,
  1224. gcvWHERE_COMMAND,
  1225. gcvWHERE_RASTER,
  1226. gcvWHERE_PIXEL,
  1227. gcvWHERE_BLT,
  1228. }
  1229. gceWHERE;
  1230. typedef enum _gceHOW
  1231. {
  1232. gcvHOW_SEMAPHORE = 0x1,
  1233. gcvHOW_STALL = 0x2,
  1234. gcvHOW_SEMAPHORE_STALL = 0x3,
  1235. }
  1236. gceHOW;
  1237. typedef enum _gceSignalHandlerType
  1238. {
  1239. gcvHANDLE_SIGFPE_WHEN_SIGNAL_CODE_IS_0 = 0x1,
  1240. }
  1241. gceSignalHandlerType;
  1242. typedef enum _gceFILE_MODE
  1243. {
  1244. gcvFILE_CREATE = 0,
  1245. gcvFILE_APPEND,
  1246. gcvFILE_READ,
  1247. gcvFILE_CREATETEXT,
  1248. gcvFILE_APPENDTEXT,
  1249. gcvFILE_READTEXT,
  1250. }
  1251. gceFILE_MODE;
  1252. typedef enum _gceFILE_WHENCE
  1253. {
  1254. gcvFILE_SEEK_SET,
  1255. gcvFILE_SEEK_CUR,
  1256. gcvFILE_SEEK_END
  1257. }
  1258. gceFILE_WHENCE;
  1259. /* Color format classes. */
  1260. typedef enum _gceFORMAT_CLASS
  1261. {
  1262. gcvFORMAT_CLASS_RGBA = 4500,
  1263. gcvFORMAT_CLASS_YUV,
  1264. gcvFORMAT_CLASS_INDEX,
  1265. gcvFORMAT_CLASS_LUMINANCE,
  1266. gcvFORMAT_CLASS_BUMP,
  1267. gcvFORMAT_CLASS_DEPTH,
  1268. gcvFORMAT_CLASS_ASTC,
  1269. gcvFORMAT_CLASS_COMPRESSED,
  1270. gcvFORMAT_CLASS_OTHER,
  1271. gcvFORMAT_CLASS_INTENSITY
  1272. }
  1273. gceFORMAT_CLASS;
  1274. /* Color format data type */
  1275. typedef enum _gceFORMAT_DATATYPE
  1276. {
  1277. gcvFORMAT_DATATYPE_UNSIGNED_NORMALIZED,
  1278. gcvFORMAT_DATATYPE_SIGNED_NORMALIZED,
  1279. gcvFORMAT_DATATYPE_UNSIGNED_INTEGER,
  1280. gcvFORMAT_DATATYPE_SIGNED_INTEGER,
  1281. gcvFORMAT_DATATYPE_FLOAT16,
  1282. gcvFORMAT_DATATYPE_FLOAT32,
  1283. gcvFORMAT_DATATYPE_FLOAT_E5B9G9R9,
  1284. gcvFORMAT_DATATYPE_FLOAT_B10G11R11F,
  1285. gcvFORMAT_DATATYPE_INDEX,
  1286. gcvFORMAT_DATATYPE_SRGB,
  1287. gcvFORMAT_DATATYPE_FLOAT32_UINT,
  1288. }
  1289. gceFORMAT_DATATYPE;
  1290. typedef enum _gceORIENTATION
  1291. {
  1292. gcvORIENTATION_TOP_BOTTOM,
  1293. gcvORIENTATION_BOTTOM_TOP,
  1294. }
  1295. gceORIENTATION;
  1296. /* Special enums for width field in gcsFORMAT_COMPONENT. */
  1297. typedef enum _gceCOMPONENT_CONTROL
  1298. {
  1299. gcvCOMPONENT_NOTPRESENT = 0x00,
  1300. gcvCOMPONENT_DONTCARE = 0x80,
  1301. gcvCOMPONENT_WIDTHMASK = 0x7F,
  1302. gcvCOMPONENT_ODD = 0x80
  1303. }
  1304. gceCOMPONENT_CONTROL;
  1305. /* User option. */
  1306. typedef enum _gceDEBUG_MSG
  1307. {
  1308. gcvDEBUG_MSG_NONE,
  1309. gcvDEBUG_MSG_ERROR,
  1310. gcvDEBUG_MSG_WARNING
  1311. }
  1312. gceDEBUG_MSG;
  1313. /* Compressed format now was defined same as dec400d, should be general. */
  1314. typedef enum _VIV_COMPRESS_FMT
  1315. {
  1316. _VIV_CFMT_ARGB8 = 0,
  1317. _VIV_CFMT_XRGB8,
  1318. _VIV_CFMT_AYUV,
  1319. _VIV_CFMT_UYVY,
  1320. _VIV_CFMT_YUY2,
  1321. _VIV_CFMT_YUV_ONLY,
  1322. _VIV_CFMT_UV_MIX,
  1323. _VIV_CFMT_ARGB4,
  1324. _VIV_CFMT_XRGB4,
  1325. _VIV_CFMT_A1R5G5B5,
  1326. _VIV_CFMT_X1R5G5B5,
  1327. _VIV_CFMT_R5G6B5,
  1328. _VIV_CFMT_Z24S8,
  1329. _VIV_CFMT_Z24,
  1330. _VIV_CFMT_Z16,
  1331. _VIV_CFMT_A2R10G10B10,
  1332. _VIV_CFMT_BAYER,
  1333. _VIV_CFMT_SIGNED_BAYER,
  1334. _VIV_CFMT_VAA16,
  1335. _VIV_CFMT_S8,
  1336. _VIV_CFMT_MAX,
  1337. } _VIV_COMPRESS_FMT;
  1338. typedef enum _gcePROGRAM_STAGE
  1339. {
  1340. gcvPROGRAM_STAGE_VERTEX = 0x0,
  1341. gcvPROGRAM_STAGE_TCS = 0x1,
  1342. gcvPROGRAM_STAGE_TES = 0x2,
  1343. gcvPROGRAM_STAGE_GEOMETRY = 0x3,
  1344. gcvPROGRAM_STAGE_FRAGMENT = 0x4,
  1345. gcvPROGRAM_STAGE_GRAPHICS_COUNT = 0x5,
  1346. gcvPROGRAM_STAGE_COMPUTE = 0x5,
  1347. gcvPROGRAM_STAGE_OPENCL = 0x6,
  1348. gcvPROGRAM_STAGE_LAST
  1349. }
  1350. gcePROGRAM_STAGE;
  1351. typedef enum _gcePROGRAM_STAGE_BIT
  1352. {
  1353. gcvPROGRAM_STAGE_VERTEX_BIT = 1 << gcvPROGRAM_STAGE_VERTEX,
  1354. gcvPROGRAM_STAGE_TCS_BIT = 1 << gcvPROGRAM_STAGE_TCS,
  1355. gcvPROGRAM_STAGE_TES_BIT = 1 << gcvPROGRAM_STAGE_TES,
  1356. gcvPROGRAM_STAGE_GEOMETRY_BIT = 1 << gcvPROGRAM_STAGE_GEOMETRY,
  1357. gcvPROGRAM_STAGE_FRAGMENT_BIT = 1 << gcvPROGRAM_STAGE_FRAGMENT,
  1358. gcvPROGRAM_STAGE_COMPUTE_BIT = 1 << gcvPROGRAM_STAGE_COMPUTE,
  1359. gcvPROGRAM_STAGE_OPENCL_BIT = 1 << gcvPROGRAM_STAGE_OPENCL,
  1360. }
  1361. gcePROGRAM_STAGE_BIT;
  1362. typedef enum _gceBLIT_FLAG
  1363. {
  1364. gcvBLIT_FLAG_SKIP_DEPTH_WRITE = 1 << 0,
  1365. gcvBLIT_FLAG_SKIP_STENCIL_WRITE = 1 << 1,
  1366. } gceBLIT_FLAG;
  1367. /* Clear flags. */
  1368. typedef enum _gceCLEAR
  1369. {
  1370. gcvCLEAR_COLOR = 0x1,
  1371. gcvCLEAR_DEPTH = 0x2,
  1372. gcvCLEAR_STENCIL = 0x4,
  1373. gcvCLEAR_HZ = 0x8,
  1374. gcvCLEAR_WITH_GPU_ONLY = 0x100,
  1375. gcvCLEAR_WITH_CPU_ONLY = 0x200,
  1376. gcvCLEAR_MULTI_SLICES = 0x400,
  1377. }
  1378. gceCLEAR;
  1379. typedef enum _gceBLITDRAW_TYPE
  1380. {
  1381. gcvBLITDRAW_CLEAR = 0,
  1382. gcvBLITDRAW_BLIT = 1,
  1383. gcvBLITDRAW_BLIT_DEPTH = 2,
  1384. /* last number, not a real type */
  1385. gcvBLITDRAW_NUM_TYPE
  1386. }
  1387. gceBLITDRAW_TYPE;
  1388. typedef enum _gceSPLIT_DRAW_TYPE
  1389. {
  1390. gcvSPLIT_DRAW_UNKNOWN = 0x0,
  1391. gcvSPLIT_DRAW_1,
  1392. gcvSPLIT_DRAW_2,
  1393. gcvSPLIT_DRAW_3,
  1394. gcvSPLIT_DRAW_4,
  1395. gcvSPLIT_DRAW_XFB,
  1396. gcvSPLIT_DRAW_INDEX_FETCH,
  1397. gcvSPLIT_DRAW_TCS,
  1398. gcvSPLIT_DRAW_STIPPLE,
  1399. gcvSPLIT_DRAW_WIDE_LINE,
  1400. gcvSPLIT_DRAW_LAST
  1401. }
  1402. gceSPLIT_DRAW_TYPE;
  1403. /* Blending targets. */
  1404. typedef enum _gceBLEND_UNIT
  1405. {
  1406. gcvBLEND_SOURCE,
  1407. gcvBLEND_TARGET,
  1408. }
  1409. gceBLEND_UNIT;
  1410. typedef enum _gceXfbCmd
  1411. {
  1412. gcvXFBCMD_BEGIN = 0,
  1413. gcvXFBCMD_PAUSE = 1,
  1414. gcvXFBCMD_RESUME = 2,
  1415. gcvXFBCMD_END = 3,
  1416. gcvXFBCMD_PAUSE_INCOMMIT = 4,
  1417. gcvXFBCMD_RESUME_INCOMMIT = 5,
  1418. gcvXFBCMD_INVALID = 6,
  1419. }
  1420. gceXfbCmd;
  1421. typedef enum _gceXfbStatus
  1422. {
  1423. gcvXFB_Disabled = 0,
  1424. gcvXFB_Paused,
  1425. gcvXFB_Enabled,
  1426. }
  1427. gceXfbStatus;
  1428. typedef enum _gceQueryStatus
  1429. {
  1430. gcvQUERY_Disabled = 0,
  1431. gcvQUERY_Paused = 1,
  1432. gcvQUERY_Enabled = 2,
  1433. }
  1434. gceQueryStatus;
  1435. typedef enum _gceQueryCmd
  1436. {
  1437. gcvQUERYCMD_BEGIN = 0,
  1438. gcvQUERYCMD_PAUSE = 1,
  1439. gcvQUERYCMD_RESUME = 2,
  1440. gcvQUERYCMD_END = 3,
  1441. gcvQUERYCMD_INVALID = 4,
  1442. }
  1443. gceQueryCmd;
  1444. typedef enum _gceQueryType
  1445. {
  1446. gcvQUERY_OCCLUSION = 0,
  1447. gcvQUERY_XFB_WRITTEN = 1,
  1448. gcvQUERY_PRIM_GENERATED = 2,
  1449. gcvQUERY_MAX_NUM = 3,
  1450. }
  1451. gceQueryType;
  1452. /* Cube faces. */
  1453. typedef enum _gceTEXTURE_FACE
  1454. {
  1455. gcvFACE_NONE = 0,
  1456. gcvFACE_POSITIVE_X,
  1457. gcvFACE_NEGATIVE_X,
  1458. gcvFACE_POSITIVE_Y,
  1459. gcvFACE_NEGATIVE_Y,
  1460. gcvFACE_POSITIVE_Z,
  1461. gcvFACE_NEGATIVE_Z,
  1462. }
  1463. gceTEXTURE_FACE;
  1464. typedef enum _gceVERTEX_FORMAT
  1465. {
  1466. gcvVERTEX_BYTE,
  1467. gcvVERTEX_UNSIGNED_BYTE,
  1468. gcvVERTEX_SHORT,
  1469. gcvVERTEX_UNSIGNED_SHORT,
  1470. gcvVERTEX_INT,
  1471. gcvVERTEX_UNSIGNED_INT,
  1472. gcvVERTEX_FIXED,
  1473. gcvVERTEX_HALF,
  1474. gcvVERTEX_FLOAT,
  1475. gcvVERTEX_DOUBLE,
  1476. gcvVERTEX_UNSIGNED_INT_10_10_10_2,
  1477. gcvVERTEX_INT_10_10_10_2,
  1478. gcvVERTEX_UNSIGNED_INT_2_10_10_10_REV,
  1479. gcvVERTEX_INT_2_10_10_10_REV,
  1480. /* integer format */
  1481. gcvVERTEX_INT8,
  1482. gcvVERTEX_INT16,
  1483. gcvVERTEX_INT32,
  1484. }
  1485. gceVERTEX_FORMAT;
  1486. /* What the SW converting scheme to create temp attrib */
  1487. typedef enum _gceATTRIB_SCHEME
  1488. {
  1489. gcvATTRIB_SCHEME_KEEP = 0,
  1490. gcvATTRIB_SCHEME_2_10_10_10_REV_TO_FLOAT,
  1491. gcvATTRIB_SCHEME_BYTE_TO_IVEC4,
  1492. gcvATTRIB_SCHEME_SHORT_TO_IVEC4,
  1493. gcvATTRIB_SCHEME_INT_TO_IVEC4,
  1494. gcvATTRIB_SCHEME_UBYTE_TO_UVEC4,
  1495. gcvATTRIB_SCHEME_USHORT_TO_UVEC4,
  1496. gcvATTRIB_SCHEME_UINT_TO_UVEC4,
  1497. gcvATTRIB_SCHEME_DOUBLE_TO_FLOAT,
  1498. } gceATTRIB_SCHEME;
  1499. typedef enum _gceBUFOBJ_TYPE
  1500. {
  1501. gcvBUFOBJ_TYPE_ARRAY_BUFFER = 1,
  1502. gcvBUFOBJ_TYPE_ELEMENT_ARRAY_BUFFER = 2,
  1503. gcvBUFOBJ_TYPE_UNIFORM_BUFFER = 3,
  1504. gcvBUFOBJ_TYPE_DRAW_INDIRECT_BUFFER = 4,
  1505. gcvBUFOBJ_TYPE_XFB_BUFFER = 5,
  1506. gcvBUFOBJ_TYPE_GENERIC_BUFFER = 100
  1507. } gceBUFOBJ_TYPE;
  1508. typedef enum _gceBUFOBJ_USAGE
  1509. {
  1510. gcvBUFOBJ_USAGE_NONE = 0x0,
  1511. gcvBUFOBJ_USAGE_STREAM_DRAW = 0x1,
  1512. gcvBUFOBJ_USAGE_STREAM_READ = 0x2,
  1513. gcvBUFOBJ_USAGE_STREAM_COPY = 0x3,
  1514. gcvBUFOBJ_USAGE_STATIC_DRAW = 0x4,
  1515. gcvBUFOBJ_USAGE_STATIC_READ = 0x5,
  1516. gcvBUFOBJ_USAGE_STATIC_COPY = 0x6,
  1517. gcvBUFOBJ_USAGE_DYNAMIC_DRAW = 0x7,
  1518. gcvBUFOBJ_USAGE_DYNAMIC_READ = 0x8,
  1519. gcvBUFOBJ_USAGE_DYNAMIC_COPY = 0x9,
  1520. /* Use 8bits to save the usage. */
  1521. gcvBUFOBJ_USAGE_MASK = 0xFF,
  1522. /* Some special flags. */
  1523. /* special patch for optimaize performance,
  1524. ** no fence and duplicate stream to ensure data correct
  1525. */
  1526. gcvBUFOBJ_USAGE_FLAG_DISABLE_FENCE_DYNAMIC_STREAM = 0x100,
  1527. /* This buffer object is used by driver, so we need to copy the data to the logical memory. */
  1528. gcvBUFOBJ_USAGE_FLAG_DATA_USED_BY_DRIVER = 0x200,
  1529. } gceBUFOBJ_USAGE;
  1530. /**
  1531. ** @ingroup gcoVG
  1532. **
  1533. ** @brief Channel mask values.
  1534. **
  1535. ** This enumeration defines the values for channel mask used in image
  1536. ** filtering.
  1537. */
  1538. /******************************************************************************\
  1539. ******************************** VG Enumerations *******************************
  1540. \******************************************************************************/
  1541. /**
  1542. ** @ingroup gcoVG
  1543. **
  1544. ** @brief Tiling mode for painting and imagig.
  1545. **
  1546. ** This enumeration defines the tiling modes supported by the HAL. This is
  1547. ** in fact a one-to-one mapping of the OpenVG 1.1 tile modes.
  1548. */
  1549. typedef enum _gceTILE_MODE
  1550. {
  1551. gcvTILE_FILL,
  1552. gcvTILE_PAD,
  1553. gcvTILE_REPEAT,
  1554. gcvTILE_REFLECT
  1555. }
  1556. gceTILE_MODE;
  1557. /******************************************************************************/
  1558. /** @ingroup gcoVG
  1559. **
  1560. ** @brief The different paint modes.
  1561. **
  1562. ** This enumeration lists the available paint modes.
  1563. */
  1564. typedef enum _gcePAINT_TYPE
  1565. {
  1566. /** Solid color. */
  1567. gcvPAINT_MODE_SOLID,
  1568. /** Linear gradient. */
  1569. gcvPAINT_MODE_LINEAR,
  1570. /** Radial gradient. */
  1571. gcvPAINT_MODE_RADIAL,
  1572. /** Pattern. */
  1573. gcvPAINT_MODE_PATTERN,
  1574. /** Mode count. */
  1575. gcvPAINT_MODE_COUNT
  1576. }
  1577. gcePAINT_TYPE;
  1578. /**
  1579. ** @ingroup gcoVG
  1580. **
  1581. ** @brief Types of path data supported by HAL.
  1582. **
  1583. ** This enumeration defines the types of path data supported by the HAL.
  1584. ** This is in fact a one-to-one mapping of the OpenVG 1.1 path types.
  1585. */
  1586. typedef enum _gcePATHTYPE
  1587. {
  1588. gcePATHTYPE_UNKNOWN = -1,
  1589. gcePATHTYPE_INT8,
  1590. gcePATHTYPE_INT16,
  1591. gcePATHTYPE_INT32,
  1592. gcePATHTYPE_FLOAT
  1593. }
  1594. gcePATHTYPE;
  1595. /**
  1596. ** @ingroup gcoVG
  1597. **
  1598. ** @brief Supported path segment commands.
  1599. **
  1600. ** This enumeration defines the path segment commands supported by the HAL.
  1601. */
  1602. typedef enum _gceVGCMD
  1603. {
  1604. gcvVGCMD_END, /* 0: 0x00 */
  1605. gcvVGCMD_CLOSE, /* 1: 0x01 */
  1606. gcvVGCMD_MOVE, /* 2: 0x02 */
  1607. gcvVGCMD_MOVE_REL, /* 3: 0x03 */
  1608. gcvVGCMD_LINE, /* 4: 0x04 */
  1609. gcvVGCMD_LINE_REL, /* 5: 0x05 */
  1610. gcvVGCMD_QUAD, /* 6: 0x06 */
  1611. gcvVGCMD_QUAD_REL, /* 7: 0x07 */
  1612. gcvVGCMD_CUBIC, /* 8: 0x08 */
  1613. gcvVGCMD_CUBIC_REL, /* 9: 0x09 */
  1614. gcvVGCMD_BREAK, /* 10: 0x0A */
  1615. gcvVGCMD_HLINE, /* 11: ******* R E S E R V E D *******/
  1616. gcvVGCMD_HLINE_REL, /* 12: ******* R E S E R V E D *******/
  1617. gcvVGCMD_VLINE, /* 13: ******* R E S E R V E D *******/
  1618. gcvVGCMD_VLINE_REL, /* 14: ******* R E S E R V E D *******/
  1619. gcvVGCMD_SQUAD, /* 15: ******* R E S E R V E D *******/
  1620. gcvVGCMD_SQUAD_REL, /* 16: ******* R E S E R V E D *******/
  1621. gcvVGCMD_SCUBIC, /* 17: ******* R E S E R V E D *******/
  1622. gcvVGCMD_SCUBIC_REL, /* 18: ******* R E S E R V E D *******/
  1623. gcvVGCMD_SCCWARC, /* 19: ******* R E S E R V E D *******/
  1624. gcvVGCMD_SCCWARC_REL, /* 20: ******* R E S E R V E D *******/
  1625. gcvVGCMD_SCWARC, /* 21: ******* R E S E R V E D *******/
  1626. gcvVGCMD_SCWARC_REL, /* 22: ******* R E S E R V E D *******/
  1627. gcvVGCMD_LCCWARC, /* 23: ******* R E S E R V E D *******/
  1628. gcvVGCMD_LCCWARC_REL, /* 24: ******* R E S E R V E D *******/
  1629. gcvVGCMD_LCWARC, /* 25: ******* R E S E R V E D *******/
  1630. gcvVGCMD_LCWARC_REL, /* 26: ******* R E S E R V E D *******/
  1631. /* The width of the command recognized by the hardware on bits. */
  1632. gcvVGCMD_WIDTH = 5,
  1633. /* Hardware command mask. */
  1634. gcvVGCMD_MASK = (1 << gcvVGCMD_WIDTH) - 1,
  1635. /* Command modifiers. */
  1636. gcvVGCMD_H_MOD = 1 << gcvVGCMD_WIDTH, /* = 32 */
  1637. gcvVGCMD_V_MOD = 2 << gcvVGCMD_WIDTH, /* = 64 */
  1638. gcvVGCMD_S_MOD = 3 << gcvVGCMD_WIDTH, /* = 96 */
  1639. gcvVGCMD_ARC_MOD = 4 << gcvVGCMD_WIDTH, /* = 128 */
  1640. /* Emulated LINE commands. */
  1641. gcvVGCMD_HLINE_EMUL = gcvVGCMD_H_MOD | gcvVGCMD_LINE, /* = 36 */
  1642. gcvVGCMD_HLINE_EMUL_REL = gcvVGCMD_H_MOD | gcvVGCMD_LINE_REL, /* = 37 */
  1643. gcvVGCMD_VLINE_EMUL = gcvVGCMD_V_MOD | gcvVGCMD_LINE, /* = 68 */
  1644. gcvVGCMD_VLINE_EMUL_REL = gcvVGCMD_V_MOD | gcvVGCMD_LINE_REL, /* = 69 */
  1645. /* Emulated SMOOTH commands. */
  1646. gcvVGCMD_SQUAD_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD, /* = 102 */
  1647. gcvVGCMD_SQUAD_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD_REL, /* = 103 */
  1648. gcvVGCMD_SCUBIC_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC, /* = 104 */
  1649. gcvVGCMD_SCUBIC_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC_REL, /* = 105 */
  1650. /* Emulation ARC commands. */
  1651. gcvVGCMD_ARC_LINE = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE, /* = 132 */
  1652. gcvVGCMD_ARC_LINE_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE_REL, /* = 133 */
  1653. gcvVGCMD_ARC_QUAD = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD, /* = 134 */
  1654. gcvVGCMD_ARC_QUAD_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD_REL /* = 135 */
  1655. }
  1656. gceVGCMD;
  1657. typedef enum _gceVGCMD * gceVGCMD_PTR;
  1658. /**
  1659. ** @ingroup gcoVG
  1660. **
  1661. ** @brief Blending modes supported by the HAL.
  1662. **
  1663. ** This enumeration defines the blending modes supported by the HAL. This is
  1664. ** in fact a one-to-one mapping of the OpenVG 1.1 blending modes.
  1665. */
  1666. typedef enum _gceVG_BLEND
  1667. {
  1668. gcvVG_BLEND_SRC,
  1669. gcvVG_BLEND_SRC_OVER,
  1670. gcvVG_BLEND_DST_OVER,
  1671. gcvVG_BLEND_SRC_IN,
  1672. gcvVG_BLEND_DST_IN,
  1673. gcvVG_BLEND_MULTIPLY,
  1674. gcvVG_BLEND_SCREEN,
  1675. gcvVG_BLEND_DARKEN,
  1676. gcvVG_BLEND_LIGHTEN,
  1677. gcvVG_BLEND_ADDITIVE,
  1678. gcvVG_BLEND_SUBTRACT,
  1679. gcvVG_BLEND_FILTER
  1680. }
  1681. gceVG_BLEND;
  1682. /**
  1683. ** @ingroup gcoVG
  1684. **
  1685. ** @brief Image modes supported by the HAL.
  1686. **
  1687. ** This enumeration defines the image modes supported by the HAL. This is
  1688. ** in fact a one-to-one mapping of the OpenVG 1.1 image modes with the addition
  1689. ** of NO IMAGE.
  1690. */
  1691. typedef enum _gceVG_IMAGE
  1692. {
  1693. gcvVG_IMAGE_NONE,
  1694. gcvVG_IMAGE_NORMAL,
  1695. gcvVG_IMAGE_MULTIPLY,
  1696. gcvVG_IMAGE_STENCIL,
  1697. gcvVG_IMAGE_FILTER
  1698. }
  1699. gceVG_IMAGE;
  1700. /**
  1701. ** @ingroup gcoVG
  1702. **
  1703. ** @brief Filter mode patterns and imaging.
  1704. **
  1705. ** This enumeration defines the filter modes supported by the HAL.
  1706. */
  1707. typedef enum _gceIMAGE_FILTER
  1708. {
  1709. gcvFILTER_POINT,
  1710. gcvFILTER_LINEAR,
  1711. gcvFILTER_BI_LINEAR
  1712. }
  1713. gceIMAGE_FILTER;
  1714. /**
  1715. ** @ingroup gcoVG
  1716. **
  1717. ** @brief Primitive modes supported by the HAL.
  1718. **
  1719. ** This enumeration defines the primitive modes supported by the HAL.
  1720. */
  1721. typedef enum _gceVG_PRIMITIVE
  1722. {
  1723. gcvVG_SCANLINE,
  1724. gcvVG_RECTANGLE,
  1725. gcvVG_TESSELLATED,
  1726. gcvVG_TESSELLATED_TILED
  1727. }
  1728. gceVG_PRIMITIVE;
  1729. /**
  1730. ** @ingroup gcoVG
  1731. **
  1732. ** @brief Rendering quality modes supported by the HAL.
  1733. **
  1734. ** This enumeration defines the rendering quality modes supported by the HAL.
  1735. */
  1736. typedef enum _gceRENDER_QUALITY
  1737. {
  1738. gcvVG_NONANTIALIASED,
  1739. gcvVG_2X2_MSAA,
  1740. gcvVG_2X4_MSAA,
  1741. gcvVG_4X4_MSAA
  1742. }
  1743. gceRENDER_QUALITY;
  1744. /**
  1745. ** @ingroup gcoVG
  1746. **
  1747. ** @brief Fill rules supported by the HAL.
  1748. **
  1749. ** This enumeration defines the fill rules supported by the HAL.
  1750. */
  1751. typedef enum _gceFILL_RULE
  1752. {
  1753. gcvVG_EVEN_ODD,
  1754. gcvVG_NON_ZERO
  1755. }
  1756. gceFILL_RULE;
  1757. /**
  1758. ** @ingroup gcoVG
  1759. **
  1760. ** @brief Cap styles supported by the HAL.
  1761. **
  1762. ** This enumeration defines the cap styles supported by the HAL.
  1763. */
  1764. typedef enum _gceCAP_STYLE
  1765. {
  1766. gcvCAP_BUTT,
  1767. gcvCAP_ROUND,
  1768. gcvCAP_SQUARE
  1769. }
  1770. gceCAP_STYLE;
  1771. /**
  1772. ** @ingroup gcoVG
  1773. **
  1774. ** @brief Join styles supported by the HAL.
  1775. **
  1776. ** This enumeration defines the join styles supported by the HAL.
  1777. */
  1778. typedef enum _gceJOIN_STYLE
  1779. {
  1780. gcvJOIN_MITER,
  1781. gcvJOIN_ROUND,
  1782. gcvJOIN_BEVEL
  1783. }
  1784. gceJOIN_STYLE;
  1785. /* Base values for channel mask definitions. */
  1786. #define gcvCHANNEL_X (0)
  1787. #define gcvCHANNEL_R (1 << 0)
  1788. #define gcvCHANNEL_G (1 << 1)
  1789. #define gcvCHANNEL_B (1 << 2)
  1790. #define gcvCHANNEL_A (1 << 3)
  1791. typedef enum _gceCHANNEL
  1792. {
  1793. gcvCHANNEL_XXXX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
  1794. gcvCHANNEL_XXXA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
  1795. gcvCHANNEL_XXBX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
  1796. gcvCHANNEL_XXBA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
  1797. gcvCHANNEL_XGXX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
  1798. gcvCHANNEL_XGXA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
  1799. gcvCHANNEL_XGBX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
  1800. gcvCHANNEL_XGBA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
  1801. gcvCHANNEL_RXXX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
  1802. gcvCHANNEL_RXXA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
  1803. gcvCHANNEL_RXBX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
  1804. gcvCHANNEL_RXBA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
  1805. gcvCHANNEL_RGXX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
  1806. gcvCHANNEL_RGXA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
  1807. gcvCHANNEL_RGBX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
  1808. gcvCHANNEL_RGBA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
  1809. }
  1810. gceCHANNEL;
  1811. /* Defines the statistical data keys monitored by the statistics module */
  1812. typedef enum _gceSTATISTICS
  1813. {
  1814. gcvFRAME_FPS = 1,
  1815. }
  1816. gceSTATISTICS;
  1817. /* Value types. */
  1818. typedef enum _gceVALUE_TYPE
  1819. {
  1820. gcvVALUE_UINT = 0x0,
  1821. gcvVALUE_FIXED,
  1822. gcvVALUE_FLOAT,
  1823. gcvVALUE_INT,
  1824. /*
  1825. ** The value need be unsigned denormalized. clamp (0.0-1.0) should be done first.
  1826. */
  1827. gcvVALUE_FLAG_UNSIGNED_DENORM = 0x00010000,
  1828. /*
  1829. ** The value need be signed denormalized. clamp (-1.0-1.0) should be done first.
  1830. */
  1831. gcvVALUE_FLAG_SIGNED_DENORM = 0x00020000,
  1832. /*
  1833. ** The value need to gammar
  1834. */
  1835. gcvVALUE_FLAG_GAMMAR = 0x00040000,
  1836. /*
  1837. ** The value need to convert from float to float16
  1838. */
  1839. gcvVALUE_FLAG_FLOAT_TO_FLOAT16 = 0x0080000,
  1840. /*
  1841. ** Mask for flag field.
  1842. */
  1843. gcvVALUE_FLAG_MASK = 0xFFFF0000,
  1844. }
  1845. gceVALUE_TYPE;
  1846. typedef enum _gceTRACEMODE
  1847. {
  1848. gcvTRACEMODE_NONE = 0,
  1849. gcvTRACEMODE_FULL = 1,
  1850. gcvTRACEMODE_LOGGER = 2,
  1851. gcvTRACEMODE_ALLZONE = 3,
  1852. gcvTRACEMODE_PRE = 4,
  1853. gcvTRACEMODE_POST = 5,
  1854. } gceTRACEMODE;
  1855. enum
  1856. {
  1857. /* GPU can't issue more that 32bit physical address */
  1858. gcvPLATFORM_FLAG_LIMIT_4G_ADDRESS = 1 << 0,
  1859. gcvPLATFORM_FLAG_IMX_MM = 1 << 1,
  1860. };
  1861. /* GL_VIV internal usage */
  1862. #ifndef GL_MAP_BUFFER_OBJ_VIV
  1863. #define GL_MAP_BUFFER_OBJ_VIV 0x10000
  1864. #endif
  1865. /* Command buffer usage. */
  1866. #define gcvCOMMAND_2D (1 << 0)
  1867. #define gcvCOMMAND_3D (1 << 1)
  1868. /* Default chip ID means chip ID same as core index. */
  1869. #define gcvCHIP_ID_DEFAULT (~0U)
  1870. /* Tile status header size */
  1871. #ifndef gcvTS_FC_HEADER_SIZE
  1872. #define gcvTS_FC_HEADER_SIZE 128
  1873. #endif
  1874. /******************************************************************************\
  1875. ****************************** Object Declarations *****************************
  1876. \******************************************************************************/
  1877. typedef struct _gckCONTEXT * gckCONTEXT;
  1878. typedef struct _gcoCMDBUF * gcoCMDBUF;
  1879. typedef struct _gcsSTATE_DELTA * gcsSTATE_DELTA_PTR;
  1880. typedef struct _gcsQUEUE * gcsQUEUE_PTR;
  1881. typedef struct _gcoQUEUE * gcoQUEUE;
  1882. typedef struct _gcsHAL_INTERFACE * gcsHAL_INTERFACE_PTR;
  1883. #if VIVANTE_PROFILER
  1884. typedef struct _gcsHAL_PROFILER_INTERFACE * gcsHAL_PROFILER_INTERFACE_PTR;
  1885. #endif
  1886. typedef struct _gcs2D_PROFILE * gcs2D_PROFILE_PTR;
  1887. #if gcdENABLE_VG
  1888. typedef struct _gcoVGHARDWARE * gcoVGHARDWARE;
  1889. typedef struct _gcoVGBUFFER * gcoVGBUFFER;
  1890. typedef struct _gckVGHARDWARE * gckVGHARDWARE;
  1891. typedef struct _gcsVGCONTEXT * gcsVGCONTEXT_PTR;
  1892. typedef struct _gcsVGCONTEXT_MAP * gcsVGCONTEXT_MAP_PTR;
  1893. typedef struct _gcsVGCMDQUEUE * gcsVGCMDQUEUE_PTR;
  1894. typedef struct _gcsTASK_MASTER_TABLE * gcsTASK_MASTER_TABLE_PTR;
  1895. typedef struct _gckVGKERNEL * gckVGKERNEL;
  1896. typedef void * gctTHREAD;
  1897. #endif
  1898. #ifdef __cplusplus
  1899. }
  1900. #endif
  1901. #endif /* __gc_hal_enum_h_ */