gc_hal_enum.h 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622
  1. /****************************************************************************
  2. *
  3. * Copyright (c) 2005 - 2014 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. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /* Chip models. */
  18. typedef enum _gceCHIPMODEL
  19. {
  20. gcv200 = 0x0200,
  21. gcv300 = 0x0300,
  22. gcv320 = 0x0320,
  23. gcv328 = 0x0328,
  24. gcv350 = 0x0350,
  25. gcv355 = 0x0355,
  26. gcv400 = 0x0400,
  27. gcv410 = 0x0410,
  28. gcv420 = 0x0420,
  29. gcv428 = 0x0428,
  30. gcv450 = 0x0450,
  31. gcv500 = 0x0500,
  32. gcv520 = 0x0520,
  33. gcv530 = 0x0530,
  34. gcv600 = 0x0600,
  35. gcv700 = 0x0700,
  36. gcv800 = 0x0800,
  37. gcv860 = 0x0860,
  38. gcv880 = 0x0880,
  39. gcv1000 = 0x1000,
  40. gcv1500 = 0x1500,
  41. gcv2000 = 0x2000,
  42. gcv2100 = 0x2100,
  43. gcv2200 = 0x2200,
  44. gcv2500 = 0x2500,
  45. gcv3000 = 0x3000,
  46. gcv4000 = 0x4000,
  47. gcv5000 = 0x5000,
  48. gcv5200 = 0x5200,
  49. gcv6400 = 0x6400,
  50. }
  51. gceCHIPMODEL;
  52. /* Chip features. */
  53. typedef enum _gceFEATURE
  54. {
  55. gcvFEATURE_PIPE_2D = 0,
  56. gcvFEATURE_PIPE_3D,
  57. gcvFEATURE_PIPE_VG,
  58. gcvFEATURE_DC,
  59. gcvFEATURE_HIGH_DYNAMIC_RANGE,
  60. gcvFEATURE_MODULE_CG,
  61. gcvFEATURE_MIN_AREA,
  62. gcvFEATURE_BUFFER_INTERLEAVING,
  63. gcvFEATURE_BYTE_WRITE_2D,
  64. gcvFEATURE_ENDIANNESS_CONFIG,
  65. gcvFEATURE_DUAL_RETURN_BUS,
  66. gcvFEATURE_DEBUG_MODE,
  67. gcvFEATURE_YUY2_RENDER_TARGET,
  68. gcvFEATURE_FRAGMENT_PROCESSOR,
  69. gcvFEATURE_2DPE20,
  70. gcvFEATURE_FAST_CLEAR,
  71. gcvFEATURE_YUV420_TILER,
  72. gcvFEATURE_YUY2_AVERAGING,
  73. gcvFEATURE_FLIP_Y,
  74. gcvFEATURE_EARLY_Z,
  75. gcvFEATURE_COMPRESSION,
  76. gcvFEATURE_MSAA,
  77. gcvFEATURE_SPECIAL_ANTI_ALIASING,
  78. gcvFEATURE_SPECIAL_MSAA_LOD,
  79. gcvFEATURE_422_TEXTURE_COMPRESSION,
  80. gcvFEATURE_DXT_TEXTURE_COMPRESSION,
  81. gcvFEATURE_ETC1_TEXTURE_COMPRESSION,
  82. gcvFEATURE_CORRECT_TEXTURE_CONVERTER,
  83. gcvFEATURE_TEXTURE_8K,
  84. gcvFEATURE_SCALER,
  85. gcvFEATURE_YUV420_SCALER,
  86. gcvFEATURE_SHADER_HAS_W,
  87. gcvFEATURE_SHADER_HAS_SIGN,
  88. gcvFEATURE_SHADER_HAS_FLOOR,
  89. gcvFEATURE_SHADER_HAS_CEIL,
  90. gcvFEATURE_SHADER_HAS_SQRT,
  91. gcvFEATURE_SHADER_HAS_TRIG,
  92. gcvFEATURE_VAA,
  93. gcvFEATURE_HZ,
  94. gcvFEATURE_CORRECT_STENCIL,
  95. gcvFEATURE_VG20,
  96. gcvFEATURE_VG_FILTER,
  97. gcvFEATURE_VG21,
  98. gcvFEATURE_VG_DOUBLE_BUFFER,
  99. gcvFEATURE_MC20,
  100. gcvFEATURE_SUPER_TILED,
  101. gcvFEATURE_FAST_CLEAR_FLUSH,
  102. gcvFEATURE_2D_FILTERBLIT_PLUS_ALPHABLEND,
  103. gcvFEATURE_2D_DITHER,
  104. gcvFEATURE_2D_A8_TARGET,
  105. gcvFEATURE_2D_A8_NO_ALPHA,
  106. gcvFEATURE_2D_FILTERBLIT_FULLROTATION,
  107. gcvFEATURE_2D_BITBLIT_FULLROTATION,
  108. gcvFEATURE_WIDE_LINE,
  109. gcvFEATURE_FC_FLUSH_STALL,
  110. gcvFEATURE_FULL_DIRECTFB,
  111. gcvFEATURE_HALF_FLOAT_PIPE,
  112. gcvFEATURE_LINE_LOOP,
  113. gcvFEATURE_2D_YUV_BLIT,
  114. gcvFEATURE_2D_TILING,
  115. gcvFEATURE_NON_POWER_OF_TWO,
  116. gcvFEATURE_3D_TEXTURE,
  117. gcvFEATURE_TEXTURE_ARRAY,
  118. gcvFEATURE_TILE_FILLER,
  119. gcvFEATURE_LOGIC_OP,
  120. gcvFEATURE_COMPOSITION,
  121. gcvFEATURE_MIXED_STREAMS,
  122. gcvFEATURE_2D_MULTI_SOURCE_BLT,
  123. gcvFEATURE_END_EVENT,
  124. gcvFEATURE_VERTEX_10_10_10_2,
  125. gcvFEATURE_TEXTURE_10_10_10_2,
  126. gcvFEATURE_TEXTURE_ANISOTROPIC_FILTERING,
  127. gcvFEATURE_TEXTURE_FLOAT_HALF_FLOAT,
  128. gcvFEATURE_2D_ROTATION_STALL_FIX,
  129. gcvFEATURE_2D_MULTI_SOURCE_BLT_EX,
  130. gcvFEATURE_BUG_FIXES10,
  131. gcvFEATURE_2D_MINOR_TILING,
  132. /* Supertiled compressed textures are supported. */
  133. gcvFEATURE_TEX_COMPRRESSION_SUPERTILED,
  134. gcvFEATURE_FAST_MSAA,
  135. gcvFEATURE_BUG_FIXED_INDEXED_TRIANGLE_STRIP,
  136. gcvFEATURE_INDEX_FETCH_FIX,
  137. gcvFEATURE_TEXTURE_TILE_STATUS_READ,
  138. gcvFEATURE_DEPTH_BIAS_FIX,
  139. gcvFEATURE_RECT_PRIMITIVE,
  140. gcvFEATURE_BUG_FIXES11,
  141. gcvFEATURE_SUPERTILED_TEXTURE,
  142. gcvFEATURE_2D_NO_COLORBRUSH_INDEX8,
  143. gcvFEATURE_RS_YUV_TARGET,
  144. gcvFEATURE_2D_FC_SOURCE,
  145. gcvFEATURE_2D_CC_NOAA_SOURCE,
  146. gcvFEATURE_PE_DITHER_FIX,
  147. gcvFEATURE_2D_YUV_SEPARATE_STRIDE,
  148. gcvFEATURE_FRUSTUM_CLIP_FIX,
  149. gcvFEATURE_TEXTURE_SWIZZLE,
  150. gcvFEATURE_PRIMITIVE_RESTART,
  151. gcvFEATURE_TEXTURE_LINEAR,
  152. gcvFEATURE_TEXTURE_YUV_ASSEMBLER,
  153. gcvFEATURE_LINEAR_RENDER_TARGET,
  154. gcvFEATURE_SHADER_HAS_ATOMIC,
  155. gcvFEATURE_SHADER_HAS_INSTRUCTION_CACHE,
  156. gcvFEATURE_SHADER_ENHANCEMENTS2,
  157. gcvFEATURE_BUG_FIXES7,
  158. gcvFEATURE_SHADER_HAS_RTNE,
  159. gcvFEATURE_SHADER_HAS_EXTRA_INSTRUCTIONS2,
  160. gcvFEATURE_SHADER_ENHANCEMENTS3,
  161. gcvFEATURE_DYNAMIC_FREQUENCY_SCALING,
  162. gcvFEATURE_SINGLE_BUFFER,
  163. gcvFEATURE_OCCLUSION_QUERY,
  164. gcvFEATURE_2D_GAMMA,
  165. gcvFEATURE_2D_COLOR_SPACE_CONVERSION,
  166. gcvFEATURE_2D_SUPER_TILE_VERSION,
  167. gcvFEATURE_HALTI0,
  168. gcvFEATURE_HALTI1,
  169. gcvFEATURE_HALTI2,
  170. gcvFEATURE_2D_MIRROR_EXTENSION,
  171. gcvFEATURE_TEXTURE_ASTC,
  172. gcvFEATURE_2D_SUPER_TILE_V1,
  173. gcvFEATURE_2D_SUPER_TILE_V2,
  174. gcvFEATURE_2D_SUPER_TILE_V3,
  175. gcvFEATURE_2D_MULTI_SOURCE_BLT_EX2,
  176. gcvFEATURE_NEW_RA,
  177. gcvFEATURE_BUG_FIXED_IMPLICIT_PRIMITIVE_RESTART,
  178. gcvFEATURE_PE_MULTI_RT_BLEND_ENABLE_CONTROL,
  179. gcvFEATURE_SMALL_MSAA, /* An upgraded version of Fast MSAA */
  180. gcvFEATURE_VERTEX_INST_ID_AS_ATTRIBUTE,
  181. gcvFEATURE_DUAL_16,
  182. gcvFEATURE_BRANCH_ON_IMMEDIATE_REG,
  183. gcvFEATURE_2D_COMPRESSION,
  184. gcvFEATURE_TPC_COMPRESSION,
  185. gcvFEATURE_2D_OPF_YUV_OUTPUT,
  186. gcvFEATURE_2D_FILTERBLIT_A8_ALPHA,
  187. gcvFEATURE_2D_MULTI_SRC_BLT_TO_UNIFIED_DST_RECT,
  188. gcvFEATURE_V2_COMPRESSION_Z16_FIX,
  189. gcvFEATURE_VERTEX_INST_ID_AS_INTEGER,
  190. gcvFEATURE_2D_YUV_MODE,
  191. gcvFEATURE_ACE,
  192. gcvFEATURE_COLOR_COMPRESSION,
  193. gcvFEATURE_32BPP_COMPONENT_TEXTURE_CHANNEL_SWIZZLE,
  194. gcvFEATURE_64BPP_HW_CLEAR_SUPPORT,
  195. gcvFEATURE_TX_LERP_PRECISION_FIX,
  196. gcvFEATURE_COMPRESSION_V2,
  197. gcvFEATURE_MMU,
  198. gcvFEATURE_COMPRESSION_V3,
  199. gcvFEATURE_TX_DECOMPRESSOR,
  200. gcvFEATURE_MRT_TILE_STATUS_BUFFER,
  201. gcvFEATURE_COMPRESSION_V1,
  202. gcvFEATURE_V1_COMPRESSION_Z16_DECOMPRESS_FIX,
  203. gcvFEATURE_RTT,
  204. gcvFEATURE_GENERICS,
  205. gcvFEATURE_2D_ONE_PASS_FILTER,
  206. gcvFEATURE_2D_ONE_PASS_FILTER_TAP,
  207. gcvFEATURE_2D_POST_FLIP,
  208. gcvFEATURE_2D_PIXEL_ALIGNMENT,
  209. gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT,
  210. gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT_WIDTH,
  211. gcvFEATURE_HALTI3,
  212. gcvFEATURE_EEZ,
  213. gcvFEATURE_INTEGER_SIGNEXT_FIX,
  214. gcvFEATURE_INTEGER_PIPE_FIX,
  215. gcvFEATURE_PSOUTPUT_MAPPING,
  216. gcvFEATURE_8K_RT_FIX,
  217. gcvFEATURE_TX_TILE_STATUS_MAPPING,
  218. gcvFEATURE_SRGB_RT_SUPPORT,
  219. gcvFEATURE_UNIFORM_APERTURE,
  220. gcvFEATURE_TEXTURE_16K,
  221. gcvFEATURE_PA_FARZCLIPPING_FIX,
  222. gcvFEATURE_PE_DITHER_COLORMASK_FIX,
  223. gcvFEATURE_ZSCALE_FIX,
  224. gcvFEATURE_MULTI_PIXELPIPES,
  225. gcvFEATURE_PIPE_CL,
  226. gcvFEATURE_BUG_FIXES18,
  227. gcvFEATURE_UNIFIED_SAMPLERS,
  228. gcvFEATURE_CL_PS_WALKER,
  229. gcvFEATURE_NEW_HZ,
  230. gcvFEATURE_TX_FRAC_PRECISION_6BIT,
  231. gcvFEATURE_SH_INSTRUCTION_PREFETCH,
  232. gcvFEATURE_PROBE,
  233. gcvFEATURE_BUG_FIXES8,
  234. gcvFEATURE_2D_ALL_QUAD,
  235. gcvFEATURE_SINGLE_PIPE_HALTI1,
  236. gcvFEATURE_BLOCK_SIZE_16x16,
  237. gcvFEATURE_NO_USER_CSC,
  238. gcvFEATURE_ANDROID_ONLY,
  239. gcvFEATURE_HAS_PRODUCTID,
  240. gcvFEATURE_V2_MSAA_COMP_FIX,
  241. gcvFEATURE_S8_ONLY_RENDERING,
  242. gcvFEATURE_SEPARATE_SRC_DST,
  243. gcvFEATURE_FE_START_VERTEX_SUPPORT,
  244. gcvFEATURE_RS_DEPTHSTENCIL_NATIVE_SUPPORT,
  245. gcvFEATURE_HALTI4,
  246. gcvFEATURE_MSAA_FRAGMENT_OPERATION,
  247. gcvFEATURE_ZERO_ATTRIB_SUPPORT,
  248. /* Insert features above this comment only. */
  249. gcvFEATURE_COUNT /* Not a feature. */
  250. }
  251. gceFEATURE;
  252. /* Chip SWWA. */
  253. typedef enum _gceSWWA
  254. {
  255. gcvSWWA_601 = 0,
  256. gcvSWWA_706,
  257. gcvSWWA_1163,
  258. gcvSWWA_1165,
  259. /* Insert SWWA above this comment only. */
  260. gcvSWWA_COUNT /* Not a SWWA. */
  261. }
  262. gceSWWA;
  263. /* Option Set*/
  264. typedef enum _gceOPITON
  265. {
  266. /* HW setting we take PREFER */
  267. gcvOPTION_PREFER_MULTIPIPE_RS = 0,
  268. gcvOPTION_PREFER_ZCONVERT_BYPASS =1,
  269. gcvOPTION_HW_NULL = 50,
  270. gcvOPTION_PRINT_OPTION = 51,
  271. gcvOPTION_FBO_PREFER_MEM = 80,
  272. /* Insert option above this comment only */
  273. gcvOPTION_COUNT /* Not a OPTION*/
  274. }
  275. gceOPTION;
  276. typedef enum _gceFRAMEINFO
  277. {
  278. gcvFRAMEINFO_FRAME_NUM = 0,
  279. gcvFRAMEINFO_DRAW_NUM = 1,
  280. gcvFRAMEINFO_DRAW_DUAL16_NUM = 2,
  281. gcvFRAMEINFO_DRAW_FL32_NUM = 3,
  282. gcvFRAMEINFO_COUNT,
  283. }
  284. gceFRAMEINFO;
  285. typedef enum _gceFRAMEINFO_OP
  286. {
  287. gcvFRAMEINFO_OP_INC = 0,
  288. gcvFRAMEINFO_OP_DEC = 1,
  289. gcvFRAMEINFO_OP_ZERO = 2,
  290. gcvFRAMEINFO_OP_GET = 3,
  291. gcvFRAMEINFO_OP_COUNT,
  292. }
  293. gceFRAMEINFO_OP;
  294. /* Chip Power Status. */
  295. typedef enum _gceCHIPPOWERSTATE
  296. {
  297. gcvPOWER_ON = 0,
  298. gcvPOWER_OFF,
  299. gcvPOWER_IDLE,
  300. gcvPOWER_SUSPEND,
  301. gcvPOWER_SUSPEND_ATPOWERON,
  302. gcvPOWER_OFF_ATPOWERON,
  303. gcvPOWER_IDLE_BROADCAST,
  304. gcvPOWER_SUSPEND_BROADCAST,
  305. gcvPOWER_OFF_BROADCAST,
  306. gcvPOWER_OFF_RECOVERY,
  307. gcvPOWER_OFF_TIMEOUT,
  308. gcvPOWER_ON_AUTO
  309. }
  310. gceCHIPPOWERSTATE;
  311. /* CPU cache operations */
  312. typedef enum _gceCACHEOPERATION
  313. {
  314. gcvCACHE_CLEAN = 0x01,
  315. gcvCACHE_INVALIDATE = 0x02,
  316. gcvCACHE_FLUSH = gcvCACHE_CLEAN | gcvCACHE_INVALIDATE,
  317. gcvCACHE_MEMORY_BARRIER = 0x04
  318. }
  319. gceCACHEOPERATION;
  320. /* Surface types. */
  321. typedef enum _gceSURF_TYPE
  322. {
  323. gcvSURF_TYPE_UNKNOWN = 0,
  324. gcvSURF_INDEX,
  325. gcvSURF_VERTEX,
  326. gcvSURF_TEXTURE,
  327. gcvSURF_RENDER_TARGET,
  328. gcvSURF_DEPTH,
  329. gcvSURF_BITMAP,
  330. gcvSURF_TILE_STATUS,
  331. gcvSURF_IMAGE,
  332. gcvSURF_MASK,
  333. gcvSURF_SCISSOR,
  334. gcvSURF_HIERARCHICAL_DEPTH,
  335. gcvSURF_NUM_TYPES, /* Make sure this is the last one! */
  336. /* Combinations. */
  337. gcvSURF_NO_TILE_STATUS = 0x100,
  338. gcvSURF_NO_VIDMEM = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
  339. In Android, vidmem node is allocated by another process. */
  340. gcvSURF_CACHEABLE = 0x400, /* Used to allocate a cacheable surface */
  341. gcvSURF_FLIP = 0x800, /* The Resolve Target the will been flip resolve from RT */
  342. gcvSURF_TILE_STATUS_DIRTY = 0x1000, /* Init tile status to all dirty */
  343. gcvSURF_LINEAR = 0x2000,
  344. gcvSURF_CREATE_AS_TEXTURE = 0x4000, /* create it as a texture */
  345. gcvSURF_PROTECTED_CONTENT = 0x8000, /* create it as content protected */
  346. /* Create it as no compression, valid on when it has tile status. */
  347. gcvSURF_NO_COMPRESSION = 0x40000,
  348. gcvSURF_CONTIGUOUS = 0x20000, /*create it as contiguous */
  349. gcvSURF_TEXTURE_LINEAR = gcvSURF_TEXTURE
  350. | gcvSURF_LINEAR,
  351. gcvSURF_RENDER_TARGET_LINEAR = gcvSURF_RENDER_TARGET
  352. | gcvSURF_LINEAR,
  353. gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
  354. | gcvSURF_NO_TILE_STATUS,
  355. gcvSURF_RENDER_TARGET_TS_DIRTY = gcvSURF_RENDER_TARGET
  356. | gcvSURF_TILE_STATUS_DIRTY,
  357. gcvSURF_DEPTH_NO_TILE_STATUS = gcvSURF_DEPTH
  358. | gcvSURF_NO_TILE_STATUS,
  359. gcvSURF_DEPTH_TS_DIRTY = gcvSURF_DEPTH
  360. | gcvSURF_TILE_STATUS_DIRTY,
  361. /* Supported surface types with no vidmem node. */
  362. gcvSURF_BITMAP_NO_VIDMEM = gcvSURF_BITMAP
  363. | gcvSURF_NO_VIDMEM,
  364. gcvSURF_TEXTURE_NO_VIDMEM = gcvSURF_TEXTURE
  365. | gcvSURF_NO_VIDMEM,
  366. /* Cacheable surface types with no vidmem node. */
  367. gcvSURF_CACHEABLE_BITMAP_NO_VIDMEM = gcvSURF_BITMAP_NO_VIDMEM
  368. | gcvSURF_CACHEABLE,
  369. gcvSURF_CACHEABLE_BITMAP = gcvSURF_BITMAP
  370. | gcvSURF_CACHEABLE,
  371. gcvSURF_FLIP_BITMAP = gcvSURF_BITMAP
  372. | gcvSURF_FLIP,
  373. }
  374. gceSURF_TYPE;
  375. typedef enum _gceSURF_USAGE
  376. {
  377. gcvSURF_USAGE_UNKNOWN,
  378. gcvSURF_USAGE_RESOLVE_AFTER_CPU,
  379. gcvSURF_USAGE_RESOLVE_AFTER_3D
  380. }
  381. gceSURF_USAGE;
  382. typedef enum _gceSURF_COLOR_SPACE
  383. {
  384. gcvSURF_COLOR_SPACE_UNKNOWN,
  385. gcvSURF_COLOR_SPACE_LINEAR,
  386. gcvSURF_COLOR_SPACE_NONLINEAR,
  387. }
  388. gceSURF_COLOR_SPACE;
  389. typedef enum _gceSURF_COLOR_TYPE
  390. {
  391. gcvSURF_COLOR_UNKNOWN = 0,
  392. gcvSURF_COLOR_LINEAR = 0x01,
  393. gcvSURF_COLOR_ALPHA_PRE = 0x02,
  394. }
  395. gceSURF_COLOR_TYPE;
  396. /* Rotation. */
  397. typedef enum _gceSURF_ROTATION
  398. {
  399. gcvSURF_0_DEGREE = 0,
  400. gcvSURF_90_DEGREE,
  401. gcvSURF_180_DEGREE,
  402. gcvSURF_270_DEGREE,
  403. gcvSURF_FLIP_X,
  404. gcvSURF_FLIP_Y,
  405. gcvSURF_POST_FLIP_X = 0x40000000,
  406. gcvSURF_POST_FLIP_Y = 0x80000000,
  407. }
  408. gceSURF_ROTATION;
  409. /* Surface flag */
  410. typedef enum _gceSURF_FLAG
  411. {
  412. /* None flag */
  413. gcvSURF_FLAG_NONE = 0x0,
  414. /* content is preserved after swap */
  415. gcvSURF_FLAG_CONTENT_PRESERVED = 0x1,
  416. /* content is updated after swap*/
  417. gcvSURF_FLAG_CONTENT_UPDATED = 0x2,
  418. /* content is y inverted */
  419. gcvSURF_FLAG_CONTENT_YINVERTED = 0x4,
  420. /* content is protected */
  421. gcvSURF_FLAG_CONTENT_PROTECTED = 0x8,
  422. /* surface is contiguous. */
  423. gcvSURF_FLAG_CONTIGUOUS = (1 << 4),
  424. }
  425. gceSURF_FLAG;
  426. typedef enum _gceMIPMAP_IMAGE_FORMAT
  427. {
  428. gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2
  429. }
  430. gceMIPMAP_IMAGE_FORMAT;
  431. /* Surface formats. */
  432. typedef enum _gceSURF_FORMAT
  433. {
  434. /* Unknown format. */
  435. gcvSURF_UNKNOWN = 0,
  436. /* Palettized formats. */
  437. gcvSURF_INDEX1 = 100,
  438. gcvSURF_INDEX4,
  439. gcvSURF_INDEX8,
  440. /* RGB formats. */
  441. gcvSURF_A2R2G2B2 = 200,
  442. gcvSURF_R3G3B2,
  443. gcvSURF_A8R3G3B2,
  444. gcvSURF_X4R4G4B4,
  445. gcvSURF_A4R4G4B4,
  446. gcvSURF_R4G4B4A4,
  447. gcvSURF_X1R5G5B5,
  448. gcvSURF_A1R5G5B5,
  449. gcvSURF_R5G5B5A1,
  450. gcvSURF_R5G6B5,
  451. gcvSURF_R8G8B8,
  452. gcvSURF_X8R8G8B8,
  453. gcvSURF_A8R8G8B8,
  454. gcvSURF_R8G8B8A8,
  455. gcvSURF_G8R8G8B8,
  456. gcvSURF_R8G8B8G8,
  457. gcvSURF_X2R10G10B10,
  458. gcvSURF_A2R10G10B10,
  459. gcvSURF_X12R12G12B12,
  460. gcvSURF_A12R12G12B12,
  461. gcvSURF_X16R16G16B16,
  462. gcvSURF_A16R16G16B16,
  463. gcvSURF_A32R32G32B32,
  464. gcvSURF_R8G8B8X8,
  465. gcvSURF_R5G5B5X1,
  466. gcvSURF_R4G4B4X4,
  467. gcvSURF_X16R16G16B16_2_A8R8G8B8,
  468. gcvSURF_A16R16G16B16_2_A8R8G8B8,
  469. gcvSURF_A32R32G32B32_2_G32R32F,
  470. gcvSURF_A32R32G32B32_4_A8R8G8B8,
  471. /* BGR formats. */
  472. gcvSURF_A4B4G4R4 = 300,
  473. gcvSURF_A1B5G5R5,
  474. gcvSURF_B5G6R5,
  475. gcvSURF_B8G8R8,
  476. gcvSURF_B16G16R16,
  477. gcvSURF_X8B8G8R8,
  478. gcvSURF_A8B8G8R8,
  479. gcvSURF_A2B10G10R10,
  480. gcvSURF_X16B16G16R16,
  481. gcvSURF_A16B16G16R16,
  482. gcvSURF_B32G32R32,
  483. gcvSURF_X32B32G32R32,
  484. gcvSURF_A32B32G32R32,
  485. gcvSURF_B4G4R4A4,
  486. gcvSURF_B5G5R5A1,
  487. gcvSURF_B8G8R8X8,
  488. gcvSURF_B8G8R8A8,
  489. gcvSURF_X4B4G4R4,
  490. gcvSURF_X1B5G5R5,
  491. gcvSURF_B4G4R4X4,
  492. gcvSURF_B5G5R5X1,
  493. gcvSURF_X2B10G10R10,
  494. gcvSURF_B8G8R8_SNORM,
  495. gcvSURF_X8B8G8R8_SNORM,
  496. gcvSURF_A8B8G8R8_SNORM,
  497. gcvSURF_A8B12G12R12_2_A8R8G8B8,
  498. /* Compressed formats. */
  499. gcvSURF_DXT1 = 400,
  500. gcvSURF_DXT2,
  501. gcvSURF_DXT3,
  502. gcvSURF_DXT4,
  503. gcvSURF_DXT5,
  504. gcvSURF_CXV8U8,
  505. gcvSURF_ETC1,
  506. gcvSURF_R11_EAC,
  507. gcvSURF_SIGNED_R11_EAC,
  508. gcvSURF_RG11_EAC,
  509. gcvSURF_SIGNED_RG11_EAC,
  510. gcvSURF_RGB8_ETC2,
  511. gcvSURF_SRGB8_ETC2,
  512. gcvSURF_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
  513. gcvSURF_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
  514. gcvSURF_RGBA8_ETC2_EAC,
  515. gcvSURF_SRGB8_ALPHA8_ETC2_EAC,
  516. /* YUV formats. */
  517. gcvSURF_YUY2 = 500,
  518. gcvSURF_UYVY,
  519. gcvSURF_YV12,
  520. gcvSURF_I420,
  521. gcvSURF_NV12,
  522. gcvSURF_NV21,
  523. gcvSURF_NV16,
  524. gcvSURF_NV61,
  525. gcvSURF_YVYU,
  526. gcvSURF_VYUY,
  527. /* Depth formats. */
  528. gcvSURF_D16 = 600,
  529. gcvSURF_D24S8,
  530. gcvSURF_D32,
  531. gcvSURF_D24X8,
  532. gcvSURF_D32F,
  533. gcvSURF_S8D32F,
  534. gcvSURF_S8D32F_1_G32R32F,
  535. gcvSURF_S8D32F_2_A8R8G8B8,
  536. gcvSURF_D24S8_1_A8R8G8B8,
  537. gcvSURF_S8,
  538. /* Alpha formats. */
  539. gcvSURF_A4 = 700,
  540. gcvSURF_A8,
  541. gcvSURF_A12,
  542. gcvSURF_A16,
  543. gcvSURF_A32,
  544. gcvSURF_A1,
  545. /* Luminance formats. */
  546. gcvSURF_L4 = 800,
  547. gcvSURF_L8,
  548. gcvSURF_L12,
  549. gcvSURF_L16,
  550. gcvSURF_L32,
  551. gcvSURF_L1,
  552. /* Alpha/Luminance formats. */
  553. gcvSURF_A4L4 = 900,
  554. gcvSURF_A2L6,
  555. gcvSURF_A8L8,
  556. gcvSURF_A4L12,
  557. gcvSURF_A12L12,
  558. gcvSURF_A16L16,
  559. /* Bump formats. */
  560. gcvSURF_L6V5U5 = 1000,
  561. gcvSURF_V8U8,
  562. gcvSURF_X8L8V8U8,
  563. gcvSURF_Q8W8V8U8,
  564. gcvSURF_A2W10V10U10,
  565. gcvSURF_V16U16,
  566. gcvSURF_Q16W16V16U16,
  567. /* R/RG/RA formats. */
  568. gcvSURF_R8 = 1100,
  569. gcvSURF_X8R8,
  570. gcvSURF_G8R8,
  571. gcvSURF_X8G8R8,
  572. gcvSURF_A8R8,
  573. gcvSURF_R16,
  574. gcvSURF_X16R16,
  575. gcvSURF_G16R16,
  576. gcvSURF_X16G16R16,
  577. gcvSURF_A16R16,
  578. gcvSURF_R32,
  579. gcvSURF_X32R32,
  580. gcvSURF_G32R32,
  581. gcvSURF_X32G32R32,
  582. gcvSURF_A32R32,
  583. gcvSURF_RG16,
  584. gcvSURF_R8_SNORM,
  585. gcvSURF_G8R8_SNORM,
  586. gcvSURF_R8_1_X8R8G8B8,
  587. gcvSURF_G8R8_1_X8R8G8B8,
  588. /* Floating point formats. */
  589. gcvSURF_R16F = 1200,
  590. gcvSURF_X16R16F,
  591. gcvSURF_G16R16F,
  592. gcvSURF_X16G16R16F,
  593. gcvSURF_B16G16R16F,
  594. gcvSURF_X16B16G16R16F,
  595. gcvSURF_A16B16G16R16F,
  596. gcvSURF_R32F,
  597. gcvSURF_X32R32F,
  598. gcvSURF_G32R32F,
  599. gcvSURF_X32G32R32F,
  600. gcvSURF_B32G32R32F,
  601. gcvSURF_X32B32G32R32F,
  602. gcvSURF_A32B32G32R32F,
  603. gcvSURF_A16F,
  604. gcvSURF_L16F,
  605. gcvSURF_A16L16F,
  606. gcvSURF_A16R16F,
  607. gcvSURF_A32F,
  608. gcvSURF_L32F,
  609. gcvSURF_A32L32F,
  610. gcvSURF_A32R32F,
  611. gcvSURF_E5B9G9R9,
  612. gcvSURF_B10G11R11F,
  613. gcvSURF_X16B16G16R16F_2_A8R8G8B8,
  614. gcvSURF_A16B16G16R16F_2_A8R8G8B8,
  615. gcvSURF_G32R32F_2_A8R8G8B8,
  616. gcvSURF_X32B32G32R32F_2_G32R32F,
  617. gcvSURF_A32B32G32R32F_2_G32R32F,
  618. gcvSURF_X32B32G32R32F_4_A8R8G8B8,
  619. gcvSURF_A32B32G32R32F_4_A8R8G8B8,
  620. gcvSURF_R16F_1_A4R4G4B4,
  621. gcvSURF_G16R16F_1_A8R8G8B8,
  622. gcvSURF_B16G16R16F_2_A8R8G8B8,
  623. gcvSURF_R32F_1_A8R8G8B8,
  624. gcvSURF_B32G32R32F_3_A8R8G8B8,
  625. gcvSURF_B10G11R11F_1_A8R8G8B8,
  626. /* sRGB format. */
  627. gcvSURF_SBGR8 = 1400,
  628. gcvSURF_A8_SBGR8,
  629. gcvSURF_X8_SBGR8,
  630. /* Integer formats. */
  631. gcvSURF_R8I = 1500,
  632. gcvSURF_R8UI,
  633. gcvSURF_R16I,
  634. gcvSURF_R16UI,
  635. gcvSURF_R32I,
  636. gcvSURF_R32UI,
  637. gcvSURF_X8R8I,
  638. gcvSURF_G8R8I,
  639. gcvSURF_X8R8UI,
  640. gcvSURF_G8R8UI,
  641. gcvSURF_X16R16I,
  642. gcvSURF_G16R16I,
  643. gcvSURF_X16R16UI,
  644. gcvSURF_G16R16UI,
  645. gcvSURF_X32R32I,
  646. gcvSURF_G32R32I,
  647. gcvSURF_X32R32UI,
  648. gcvSURF_G32R32UI,
  649. gcvSURF_X8G8R8I,
  650. gcvSURF_B8G8R8I,
  651. gcvSURF_X8G8R8UI,
  652. gcvSURF_B8G8R8UI,
  653. gcvSURF_X16G16R16I,
  654. gcvSURF_B16G16R16I,
  655. gcvSURF_X16G16R16UI,
  656. gcvSURF_B16G16R16UI,
  657. gcvSURF_X32G32R32I,
  658. gcvSURF_B32G32R32I,
  659. gcvSURF_X32G32R32UI,
  660. gcvSURF_B32G32R32UI,
  661. gcvSURF_X8B8G8R8I,
  662. gcvSURF_A8B8G8R8I,
  663. gcvSURF_X8B8G8R8UI,
  664. gcvSURF_A8B8G8R8UI,
  665. gcvSURF_X16B16G16R16I,
  666. gcvSURF_A16B16G16R16I,
  667. gcvSURF_X16B16G16R16UI,
  668. gcvSURF_A16B16G16R16UI,
  669. gcvSURF_X32B32G32R32I,
  670. gcvSURF_A32B32G32R32I,
  671. gcvSURF_X32B32G32R32UI,
  672. gcvSURF_A32B32G32R32UI,
  673. gcvSURF_A2B10G10R10UI,
  674. gcvSURF_G32R32I_2_A8R8G8B8,
  675. gcvSURF_G32R32UI_2_A8R8G8B8,
  676. gcvSURF_X16B16G16R16I_2_A8R8G8B8,
  677. gcvSURF_A16B16G16R16I_2_A8R8G8B8,
  678. gcvSURF_X16B16G16R16UI_2_A8R8G8B8,
  679. gcvSURF_A16B16G16R16UI_2_A8R8G8B8,
  680. gcvSURF_X32B32G32R32I_2_G32R32I,
  681. gcvSURF_A32B32G32R32I_2_G32R32I,
  682. gcvSURF_X32B32G32R32I_3_A8R8G8B8,
  683. gcvSURF_A32B32G32R32I_4_A8R8G8B8,
  684. gcvSURF_X32B32G32R32UI_2_G32R32UI,
  685. gcvSURF_A32B32G32R32UI_2_G32R32UI,
  686. gcvSURF_X32B32G32R32UI_3_A8R8G8B8,
  687. gcvSURF_A32B32G32R32UI_4_A8R8G8B8,
  688. gcvSURF_A2B10G10R10UI_1_A8R8G8B8,
  689. gcvSURF_A8B8G8R8I_1_A8R8G8B8,
  690. gcvSURF_A8B8G8R8UI_1_A8R8G8B8,
  691. gcvSURF_R8I_1_A4R4G4B4,
  692. gcvSURF_R8UI_1_A4R4G4B4,
  693. gcvSURF_R16I_1_A4R4G4B4,
  694. gcvSURF_R16UI_1_A4R4G4B4,
  695. gcvSURF_R32I_1_A8R8G8B8,
  696. gcvSURF_R32UI_1_A8R8G8B8,
  697. gcvSURF_X8R8I_1_A4R4G4B4,
  698. gcvSURF_X8R8UI_1_A4R4G4B4,
  699. gcvSURF_G8R8I_1_A4R4G4B4,
  700. gcvSURF_G8R8UI_1_A4R4G4B4,
  701. gcvSURF_X16R16I_1_A4R4G4B4,
  702. gcvSURF_X16R16UI_1_A4R4G4B4,
  703. gcvSURF_G16R16I_1_A8R8G8B8,
  704. gcvSURF_G16R16UI_1_A8R8G8B8,
  705. gcvSURF_X32R32I_1_A8R8G8B8,
  706. gcvSURF_X32R32UI_1_A8R8G8B8,
  707. gcvSURF_X8G8R8I_1_A4R4G4B4,
  708. gcvSURF_X8G8R8UI_1_A4R4G4B4,
  709. gcvSURF_B8G8R8I_1_A8R8G8B8,
  710. gcvSURF_B8G8R8UI_1_A8R8G8B8,
  711. gcvSURF_B16G16R16I_2_A8R8G8B8,
  712. gcvSURF_B16G16R16UI_2_A8R8G8B8,
  713. gcvSURF_B32G32R32I_3_A8R8G8B8,
  714. gcvSURF_B32G32R32UI_3_A8R8G8B8,
  715. /* ASTC formats. */
  716. gcvSURF_ASTC4x4 = 1600,
  717. gcvSURF_ASTC5x4,
  718. gcvSURF_ASTC5x5,
  719. gcvSURF_ASTC6x5,
  720. gcvSURF_ASTC6x6,
  721. gcvSURF_ASTC8x5,
  722. gcvSURF_ASTC8x6,
  723. gcvSURF_ASTC8x8,
  724. gcvSURF_ASTC10x5,
  725. gcvSURF_ASTC10x6,
  726. gcvSURF_ASTC10x8,
  727. gcvSURF_ASTC10x10,
  728. gcvSURF_ASTC12x10,
  729. gcvSURF_ASTC12x12,
  730. gcvSURF_ASTC4x4_SRGB,
  731. gcvSURF_ASTC5x4_SRGB,
  732. gcvSURF_ASTC5x5_SRGB,
  733. gcvSURF_ASTC6x5_SRGB,
  734. gcvSURF_ASTC6x6_SRGB,
  735. gcvSURF_ASTC8x5_SRGB,
  736. gcvSURF_ASTC8x6_SRGB,
  737. gcvSURF_ASTC8x8_SRGB,
  738. gcvSURF_ASTC10x5_SRGB,
  739. gcvSURF_ASTC10x6_SRGB,
  740. gcvSURF_ASTC10x8_SRGB,
  741. gcvSURF_ASTC10x10_SRGB,
  742. gcvSURF_ASTC12x10_SRGB,
  743. gcvSURF_ASTC12x12_SRGB,
  744. gcvSURF_FORMAT_COUNT
  745. }
  746. gceSURF_FORMAT;
  747. /* Format modifiers. */
  748. typedef enum _gceSURF_FORMAT_MODE
  749. {
  750. gcvSURF_FORMAT_OCL = 0x80000000
  751. }
  752. gceSURF_FORMAT_MODE;
  753. /* Pixel swizzle modes. */
  754. typedef enum _gceSURF_SWIZZLE
  755. {
  756. gcvSURF_NOSWIZZLE = 0,
  757. gcvSURF_ARGB,
  758. gcvSURF_ABGR,
  759. gcvSURF_RGBA,
  760. gcvSURF_BGRA
  761. }
  762. gceSURF_SWIZZLE;
  763. /* Transparency modes. */
  764. typedef enum _gceSURF_TRANSPARENCY
  765. {
  766. /* Valid only for PE 1.0 */
  767. gcvSURF_OPAQUE = 0,
  768. gcvSURF_SOURCE_MATCH,
  769. gcvSURF_SOURCE_MASK,
  770. gcvSURF_PATTERN_MASK,
  771. }
  772. gceSURF_TRANSPARENCY;
  773. /* Surface Alignment. */
  774. typedef enum _gceSURF_ALIGNMENT
  775. {
  776. gcvSURF_FOUR = 0,
  777. gcvSURF_SIXTEEN,
  778. gcvSURF_SUPER_TILED,
  779. gcvSURF_SPLIT_TILED,
  780. gcvSURF_SPLIT_SUPER_TILED
  781. }
  782. gceSURF_ALIGNMENT;
  783. /* Surface Addressing. */
  784. typedef enum _gceSURF_ADDRESSING
  785. {
  786. gcvSURF_NO_STRIDE_TILED = 0,
  787. gcvSURF_NO_STRIDE_LINEAR,
  788. gcvSURF_STRIDE_TILED,
  789. gcvSURF_STRIDE_LINEAR
  790. }
  791. gceSURF_ADDRESSING;
  792. /* Transparency modes. */
  793. typedef enum _gce2D_TRANSPARENCY
  794. {
  795. /* Valid only for PE 2.0 */
  796. gcv2D_OPAQUE = 0,
  797. gcv2D_KEYED,
  798. gcv2D_MASKED
  799. }
  800. gce2D_TRANSPARENCY;
  801. /* Mono packing modes. */
  802. typedef enum _gceSURF_MONOPACK
  803. {
  804. gcvSURF_PACKED8 = 0,
  805. gcvSURF_PACKED16,
  806. gcvSURF_PACKED32,
  807. gcvSURF_UNPACKED,
  808. }
  809. gceSURF_MONOPACK;
  810. /* Blending modes. */
  811. typedef enum _gceSURF_BLEND_MODE
  812. {
  813. /* Porter-Duff blending modes. */
  814. /* Fsrc Fdst */
  815. gcvBLEND_CLEAR = 0, /* 0 0 */
  816. gcvBLEND_SRC, /* 1 0 */
  817. gcvBLEND_DST, /* 0 1 */
  818. gcvBLEND_SRC_OVER_DST, /* 1 1 - Asrc */
  819. gcvBLEND_DST_OVER_SRC, /* 1 - Adst 1 */
  820. gcvBLEND_SRC_IN_DST, /* Adst 0 */
  821. gcvBLEND_DST_IN_SRC, /* 0 Asrc */
  822. gcvBLEND_SRC_OUT_DST, /* 1 - Adst 0 */
  823. gcvBLEND_DST_OUT_SRC, /* 0 1 - Asrc */
  824. gcvBLEND_SRC_ATOP_DST, /* Adst 1 - Asrc */
  825. gcvBLEND_DST_ATOP_SRC, /* 1 - Adst Asrc */
  826. gcvBLEND_SRC_XOR_DST, /* 1 - Adst 1 - Asrc */
  827. /* Special blending modes. */
  828. gcvBLEND_SET, /* DST = 1 */
  829. gcvBLEND_SUB /* DST = DST * (1 - SRC) */
  830. }
  831. gceSURF_BLEND_MODE;
  832. /* Per-pixel alpha modes. */
  833. typedef enum _gceSURF_PIXEL_ALPHA_MODE
  834. {
  835. gcvSURF_PIXEL_ALPHA_STRAIGHT = 0,
  836. gcvSURF_PIXEL_ALPHA_INVERSED
  837. }
  838. gceSURF_PIXEL_ALPHA_MODE;
  839. /* Global alpha modes. */
  840. typedef enum _gceSURF_GLOBAL_ALPHA_MODE
  841. {
  842. gcvSURF_GLOBAL_ALPHA_OFF = 0,
  843. gcvSURF_GLOBAL_ALPHA_ON,
  844. gcvSURF_GLOBAL_ALPHA_SCALE
  845. }
  846. gceSURF_GLOBAL_ALPHA_MODE;
  847. /* Color component modes for alpha blending. */
  848. typedef enum _gceSURF_PIXEL_COLOR_MODE
  849. {
  850. gcvSURF_COLOR_STRAIGHT = 0,
  851. gcvSURF_COLOR_MULTIPLY
  852. }
  853. gceSURF_PIXEL_COLOR_MODE;
  854. /* Color component modes for alpha blending. */
  855. typedef enum _gce2D_PIXEL_COLOR_MULTIPLY_MODE
  856. {
  857. gcv2D_COLOR_MULTIPLY_DISABLE = 0,
  858. gcv2D_COLOR_MULTIPLY_ENABLE
  859. }
  860. gce2D_PIXEL_COLOR_MULTIPLY_MODE;
  861. /* Color component modes for alpha blending. */
  862. typedef enum _gce2D_GLOBAL_COLOR_MULTIPLY_MODE
  863. {
  864. gcv2D_GLOBAL_COLOR_MULTIPLY_DISABLE = 0,
  865. gcv2D_GLOBAL_COLOR_MULTIPLY_ALPHA,
  866. gcv2D_GLOBAL_COLOR_MULTIPLY_COLOR
  867. }
  868. gce2D_GLOBAL_COLOR_MULTIPLY_MODE;
  869. /* Alpha blending factor modes. */
  870. typedef enum _gceSURF_BLEND_FACTOR_MODE
  871. {
  872. gcvSURF_BLEND_ZERO = 0,
  873. gcvSURF_BLEND_ONE,
  874. gcvSURF_BLEND_STRAIGHT,
  875. gcvSURF_BLEND_INVERSED,
  876. gcvSURF_BLEND_COLOR,
  877. gcvSURF_BLEND_COLOR_INVERSED,
  878. gcvSURF_BLEND_SRC_ALPHA_SATURATED,
  879. gcvSURF_BLEND_STRAIGHT_NO_CROSS,
  880. gcvSURF_BLEND_INVERSED_NO_CROSS,
  881. gcvSURF_BLEND_COLOR_NO_CROSS,
  882. gcvSURF_BLEND_COLOR_INVERSED_NO_CROSS,
  883. gcvSURF_BLEND_SRC_ALPHA_SATURATED_CROSS
  884. }
  885. gceSURF_BLEND_FACTOR_MODE;
  886. /* Alpha blending porter duff rules. */
  887. typedef enum _gce2D_PORTER_DUFF_RULE
  888. {
  889. gcvPD_CLEAR = 0,
  890. gcvPD_SRC,
  891. gcvPD_SRC_OVER,
  892. gcvPD_DST_OVER,
  893. gcvPD_SRC_IN,
  894. gcvPD_DST_IN,
  895. gcvPD_SRC_OUT,
  896. gcvPD_DST_OUT,
  897. gcvPD_SRC_ATOP,
  898. gcvPD_DST_ATOP,
  899. gcvPD_ADD,
  900. gcvPD_XOR,
  901. gcvPD_DST
  902. }
  903. gce2D_PORTER_DUFF_RULE;
  904. /* Alpha blending factor modes. */
  905. typedef enum _gce2D_YUV_COLOR_MODE
  906. {
  907. gcv2D_YUV_601= 0,
  908. gcv2D_YUV_709,
  909. gcv2D_YUV_USER_DEFINED,
  910. gcv2D_YUV_USER_DEFINED_CLAMP,
  911. /* Default setting is for src. gcv2D_YUV_DST
  912. can be ORed to set dst.
  913. */
  914. gcv2D_YUV_DST = 0x80000000,
  915. }
  916. gce2D_YUV_COLOR_MODE;
  917. typedef enum _gce2D_COMMAND
  918. {
  919. gcv2D_CLEAR = 0,
  920. gcv2D_LINE,
  921. gcv2D_BLT,
  922. gcv2D_STRETCH,
  923. gcv2D_HOR_FILTER,
  924. gcv2D_VER_FILTER,
  925. gcv2D_MULTI_SOURCE_BLT,
  926. gcv2D_FILTER_BLT,
  927. }
  928. gce2D_COMMAND;
  929. typedef enum _gce2D_TILE_STATUS_CONFIG
  930. {
  931. gcv2D_TSC_DISABLE = 0,
  932. gcv2D_TSC_ENABLE = 0x00000001,
  933. gcv2D_TSC_COMPRESSED = 0x00000002,
  934. gcv2D_TSC_DOWN_SAMPLER = 0x00000004,
  935. gcv2D_TSC_2D_COMPRESSED = 0x00000008,
  936. gcv2D_TSC_TPC_COMPRESSED = 0x00000010,
  937. }
  938. gce2D_TILE_STATUS_CONFIG;
  939. typedef enum _gce2D_QUERY
  940. {
  941. gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN = 0,
  942. gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
  943. gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
  944. gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
  945. }
  946. gce2D_QUERY;
  947. typedef enum _gce2D_SUPER_TILE_VERSION
  948. {
  949. gcv2D_SUPER_TILE_VERSION_V1 = 1,
  950. gcv2D_SUPER_TILE_VERSION_V2 = 2,
  951. gcv2D_SUPER_TILE_VERSION_V3 = 3,
  952. }
  953. gce2D_SUPER_TILE_VERSION;
  954. typedef enum _gce2D_STATE
  955. {
  956. gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE = 1,
  957. gcv2D_STATE_SUPER_TILE_VERSION,
  958. gcv2D_STATE_EN_GAMMA,
  959. gcv2D_STATE_DE_GAMMA,
  960. gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
  961. gcv2D_STATE_PROFILE_ENABLE,
  962. gcv2D_STATE_XRGB_ENABLE,
  963. gcv2D_STATE_ARRAY_EN_GAMMA = 0x10001,
  964. gcv2D_STATE_ARRAY_DE_GAMMA,
  965. gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
  966. gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
  967. }
  968. gce2D_STATE;
  969. typedef enum _gce2D_STATE_PROFILE
  970. {
  971. gcv2D_STATE_PROFILE_NONE = 0x0,
  972. gcv2D_STATE_PROFILE_COMMAND = 0x1,
  973. gcv2D_STATE_PROFILE_SURFACE = 0x2,
  974. gcv2D_STATE_PROFILE_ALL = 0xFFFF,
  975. }
  976. gce2D_STATE_PROFILE;
  977. /* Texture object types */
  978. typedef enum _gceTEXTURE_TYPE
  979. {
  980. gcvTEXTURE_UNKNOWN = 0,
  981. gcvTEXTURE_1D,
  982. gcvTEXTURE_2D,
  983. gcvTEXTURE_3D,
  984. gcvTEXTURE_CUBEMAP,
  985. gcvTEXTURE_1D_ARRAY,
  986. gcvTEXTURE_2D_ARRAY,
  987. gcvTEXTURE_EXTERNAL
  988. }
  989. gceTEXTURE_TYPE;
  990. #if gcdENABLE_3D
  991. /* Texture functions. */
  992. typedef enum _gceTEXTURE_FUNCTION
  993. {
  994. gcvTEXTURE_DUMMY = 0,
  995. gcvTEXTURE_REPLACE = 0,
  996. gcvTEXTURE_MODULATE,
  997. gcvTEXTURE_ADD,
  998. gcvTEXTURE_ADD_SIGNED,
  999. gcvTEXTURE_INTERPOLATE,
  1000. gcvTEXTURE_SUBTRACT,
  1001. gcvTEXTURE_DOT3
  1002. }
  1003. gceTEXTURE_FUNCTION;
  1004. /* Texture sources. */
  1005. typedef enum _gceTEXTURE_SOURCE
  1006. {
  1007. gcvCOLOR_FROM_TEXTURE = 0,
  1008. gcvCOLOR_FROM_CONSTANT_COLOR,
  1009. gcvCOLOR_FROM_PRIMARY_COLOR,
  1010. gcvCOLOR_FROM_PREVIOUS_COLOR
  1011. }
  1012. gceTEXTURE_SOURCE;
  1013. /* Texture source channels. */
  1014. typedef enum _gceTEXTURE_CHANNEL
  1015. {
  1016. gcvFROM_COLOR = 0,
  1017. gcvFROM_ONE_MINUS_COLOR,
  1018. gcvFROM_ALPHA,
  1019. gcvFROM_ONE_MINUS_ALPHA
  1020. }
  1021. gceTEXTURE_CHANNEL;
  1022. #endif /* gcdENABLE_3D */
  1023. /* Filter types. */
  1024. typedef enum _gceFILTER_TYPE
  1025. {
  1026. gcvFILTER_SYNC = 0,
  1027. gcvFILTER_BLUR,
  1028. gcvFILTER_USER
  1029. }
  1030. gceFILTER_TYPE;
  1031. /* Filter pass types. */
  1032. typedef enum _gceFILTER_PASS_TYPE
  1033. {
  1034. gcvFILTER_HOR_PASS = 0,
  1035. gcvFILTER_VER_PASS
  1036. }
  1037. gceFILTER_PASS_TYPE;
  1038. /* Endian hints. */
  1039. typedef enum _gceENDIAN_HINT
  1040. {
  1041. gcvENDIAN_NO_SWAP = 0,
  1042. gcvENDIAN_SWAP_WORD,
  1043. gcvENDIAN_SWAP_DWORD
  1044. }
  1045. gceENDIAN_HINT;
  1046. /* Tiling modes. */
  1047. typedef enum _gceTILING
  1048. {
  1049. gcvINVALIDTILED = 0x0, /* Invalid tiling */
  1050. /* Tiling basic modes enum'ed in power of 2. */
  1051. gcvLINEAR = 0x1, /* No tiling. */
  1052. gcvTILED = 0x2, /* 4x4 tiling. */
  1053. gcvSUPERTILED = 0x4, /* 64x64 tiling. */
  1054. gcvMINORTILED = 0x8, /* 2x2 tiling. */
  1055. /* Tiling special layouts. */
  1056. gcvTILING_SPLIT_BUFFER = 0x100,
  1057. /* Tiling combination layouts. */
  1058. gcvMULTI_TILED = gcvTILED
  1059. | gcvTILING_SPLIT_BUFFER,
  1060. gcvMULTI_SUPERTILED = gcvSUPERTILED
  1061. | gcvTILING_SPLIT_BUFFER,
  1062. }
  1063. gceTILING;
  1064. /* 2D pattern type. */
  1065. typedef enum _gce2D_PATTERN
  1066. {
  1067. gcv2D_PATTERN_SOLID = 0,
  1068. gcv2D_PATTERN_MONO,
  1069. gcv2D_PATTERN_COLOR,
  1070. gcv2D_PATTERN_INVALID
  1071. }
  1072. gce2D_PATTERN;
  1073. /* 2D source type. */
  1074. typedef enum _gce2D_SOURCE
  1075. {
  1076. gcv2D_SOURCE_MASKED = 0,
  1077. gcv2D_SOURCE_MONO,
  1078. gcv2D_SOURCE_COLOR,
  1079. gcv2D_SOURCE_INVALID
  1080. }
  1081. gce2D_SOURCE;
  1082. /* Pipes. */
  1083. typedef enum _gcePIPE_SELECT
  1084. {
  1085. gcvPIPE_INVALID = ~0,
  1086. gcvPIPE_3D = 0,
  1087. gcvPIPE_2D
  1088. }
  1089. gcePIPE_SELECT;
  1090. /* Hardware type. */
  1091. typedef enum _gceHARDWARE_TYPE
  1092. {
  1093. gcvHARDWARE_INVALID = 0x00,
  1094. gcvHARDWARE_3D = 0x01,
  1095. gcvHARDWARE_2D = 0x02,
  1096. gcvHARDWARE_VG = 0x04,
  1097. #if gcdMULTI_GPU_AFFINITY
  1098. gcvHARDWARE_OCL = 0x05,
  1099. #endif
  1100. gcvHARDWARE_3D2D = gcvHARDWARE_3D | gcvHARDWARE_2D
  1101. }
  1102. gceHARDWARE_TYPE;
  1103. #define gcdCHIP_COUNT 3
  1104. typedef enum _gceMMU_MODE
  1105. {
  1106. gcvMMU_MODE_1K,
  1107. gcvMMU_MODE_4K,
  1108. } gceMMU_MODE;
  1109. /* User signal command codes. */
  1110. typedef enum _gceUSER_SIGNAL_COMMAND_CODES
  1111. {
  1112. gcvUSER_SIGNAL_CREATE,
  1113. gcvUSER_SIGNAL_DESTROY,
  1114. gcvUSER_SIGNAL_SIGNAL,
  1115. gcvUSER_SIGNAL_WAIT,
  1116. gcvUSER_SIGNAL_MAP,
  1117. gcvUSER_SIGNAL_UNMAP,
  1118. }
  1119. gceUSER_SIGNAL_COMMAND_CODES;
  1120. /* Sync point command codes. */
  1121. typedef enum _gceSYNC_POINT_COMMAND_CODES
  1122. {
  1123. gcvSYNC_POINT_CREATE,
  1124. gcvSYNC_POINT_DESTROY,
  1125. gcvSYNC_POINT_SIGNAL,
  1126. }
  1127. gceSYNC_POINT_COMMAND_CODES;
  1128. /* Shared buffer command codes. */
  1129. typedef enum _gceSHBUF_COMMAND_CODES
  1130. {
  1131. gcvSHBUF_CREATE,
  1132. gcvSHBUF_DESTROY,
  1133. gcvSHBUF_MAP,
  1134. gcvSHBUF_WRITE,
  1135. gcvSHBUF_READ,
  1136. }
  1137. gceSHBUF_COMMAND_CODES;
  1138. /* Event locations. */
  1139. typedef enum _gceKERNEL_WHERE
  1140. {
  1141. gcvKERNEL_COMMAND,
  1142. gcvKERNEL_VERTEX,
  1143. gcvKERNEL_TRIANGLE,
  1144. gcvKERNEL_TEXTURE,
  1145. gcvKERNEL_PIXEL,
  1146. }
  1147. gceKERNEL_WHERE;
  1148. #if gcdENABLE_VG
  1149. /* Hardware blocks. */
  1150. typedef enum _gceBLOCK
  1151. {
  1152. gcvBLOCK_COMMAND,
  1153. gcvBLOCK_TESSELLATOR,
  1154. gcvBLOCK_TESSELLATOR2,
  1155. gcvBLOCK_TESSELLATOR3,
  1156. gcvBLOCK_RASTER,
  1157. gcvBLOCK_VG,
  1158. gcvBLOCK_VG2,
  1159. gcvBLOCK_VG3,
  1160. gcvBLOCK_PIXEL,
  1161. /* Number of defined blocks. */
  1162. gcvBLOCK_COUNT
  1163. }
  1164. gceBLOCK;
  1165. #endif
  1166. /* gcdDUMP message type. */
  1167. typedef enum _gceDEBUG_MESSAGE_TYPE
  1168. {
  1169. gcvMESSAGE_TEXT,
  1170. gcvMESSAGE_DUMP
  1171. }
  1172. gceDEBUG_MESSAGE_TYPE;
  1173. /* Shading format. */
  1174. typedef enum _gceSHADING
  1175. {
  1176. gcvSHADING_SMOOTH,
  1177. gcvSHADING_FLAT_D3D,
  1178. gcvSHADING_FLAT_OPENGL,
  1179. }
  1180. gceSHADING;
  1181. /* Culling modes. */
  1182. typedef enum _gceCULL
  1183. {
  1184. gcvCULL_NONE,
  1185. gcvCULL_CCW,
  1186. gcvCULL_CW,
  1187. }
  1188. gceCULL;
  1189. /* Fill modes. */
  1190. typedef enum _gceFILL
  1191. {
  1192. gcvFILL_POINT,
  1193. gcvFILL_WIRE_FRAME,
  1194. gcvFILL_SOLID,
  1195. }
  1196. gceFILL;
  1197. /* Compare modes. */
  1198. typedef enum _gceCOMPARE
  1199. {
  1200. gcvCOMPARE_INVALID = 0,
  1201. gcvCOMPARE_NEVER,
  1202. gcvCOMPARE_NOT_EQUAL,
  1203. gcvCOMPARE_LESS,
  1204. gcvCOMPARE_LESS_OR_EQUAL,
  1205. gcvCOMPARE_EQUAL,
  1206. gcvCOMPARE_GREATER,
  1207. gcvCOMPARE_GREATER_OR_EQUAL,
  1208. gcvCOMPARE_ALWAYS,
  1209. }
  1210. gceCOMPARE;
  1211. /* Stencil modes. */
  1212. typedef enum _gceSTENCIL_MODE
  1213. {
  1214. gcvSTENCIL_NONE,
  1215. gcvSTENCIL_SINGLE_SIDED,
  1216. gcvSTENCIL_DOUBLE_SIDED,
  1217. }
  1218. gceSTENCIL_MODE;
  1219. /* Stencil operations. */
  1220. typedef enum _gceSTENCIL_OPERATION
  1221. {
  1222. gcvSTENCIL_KEEP,
  1223. gcvSTENCIL_REPLACE,
  1224. gcvSTENCIL_ZERO,
  1225. gcvSTENCIL_INVERT,
  1226. gcvSTENCIL_INCREMENT,
  1227. gcvSTENCIL_DECREMENT,
  1228. gcvSTENCIL_INCREMENT_SATURATE,
  1229. gcvSTENCIL_DECREMENT_SATURATE,
  1230. gcvSTENCIL_OPERATION_INVALID = -1
  1231. }
  1232. gceSTENCIL_OPERATION;
  1233. /* Stencil selection. */
  1234. typedef enum _gceSTENCIL_WHERE
  1235. {
  1236. gcvSTENCIL_FRONT,
  1237. gcvSTENCIL_BACK,
  1238. }
  1239. gceSTENCIL_WHERE;
  1240. /* Texture addressing selection. */
  1241. typedef enum _gceTEXTURE_WHICH
  1242. {
  1243. gcvTEXTURE_S,
  1244. gcvTEXTURE_T,
  1245. gcvTEXTURE_R,
  1246. }
  1247. gceTEXTURE_WHICH;
  1248. /* Texture addressing modes. */
  1249. typedef enum _gceTEXTURE_ADDRESSING
  1250. {
  1251. gcvTEXTURE_INVALID = 0,
  1252. gcvTEXTURE_CLAMP,
  1253. gcvTEXTURE_WRAP,
  1254. gcvTEXTURE_MIRROR,
  1255. gcvTEXTURE_BORDER,
  1256. gcvTEXTURE_MIRROR_ONCE,
  1257. }
  1258. gceTEXTURE_ADDRESSING;
  1259. /* Texture filters. */
  1260. typedef enum _gceTEXTURE_FILTER
  1261. {
  1262. gcvTEXTURE_NONE,
  1263. gcvTEXTURE_POINT,
  1264. gcvTEXTURE_LINEAR,
  1265. gcvTEXTURE_ANISOTROPIC,
  1266. }
  1267. gceTEXTURE_FILTER;
  1268. typedef enum _gceTEXTURE_COMPONENT
  1269. {
  1270. gcvTEXTURE_COMPONENT_R,
  1271. gcvTEXTURE_COMPONENT_G,
  1272. gcvTEXTURE_COMPONENT_B,
  1273. gcvTEXTURE_COMPONENT_A,
  1274. gcvTEXTURE_COMPONENT_NUM,
  1275. } gceTEXTURE_COMPONENT;
  1276. /* Texture swizzle modes. */
  1277. typedef enum _gceTEXTURE_SWIZZLE
  1278. {
  1279. gcvTEXTURE_SWIZZLE_R = 0,
  1280. gcvTEXTURE_SWIZZLE_G,
  1281. gcvTEXTURE_SWIZZLE_B,
  1282. gcvTEXTURE_SWIZZLE_A,
  1283. gcvTEXTURE_SWIZZLE_0,
  1284. gcvTEXTURE_SWIZZLE_1,
  1285. gcvTEXTURE_SWIZZLE_INVALID,
  1286. } gceTEXTURE_SWIZZLE;
  1287. typedef enum _gceTEXTURE_COMPARE_MODE
  1288. {
  1289. gcvTEXTURE_COMPARE_MODE_INVALID = 0,
  1290. gcvTEXTURE_COMPARE_MODE_NONE,
  1291. gcvTEXTURE_COMPARE_MODE_REF,
  1292. } gceTEXTURE_COMPARE_MODE;
  1293. /* Pixel output swizzle modes. */
  1294. typedef enum _gcePIXEL_SWIZZLE
  1295. {
  1296. gcvPIXEL_SWIZZLE_R = gcvTEXTURE_SWIZZLE_R,
  1297. gcvPIXEL_SWIZZLE_G = gcvTEXTURE_SWIZZLE_G,
  1298. gcvPIXEL_SWIZZLE_B = gcvTEXTURE_SWIZZLE_B,
  1299. gcvPIXEL_SWIZZLE_A = gcvTEXTURE_SWIZZLE_A,
  1300. gcvPIXEL_SWIZZLE_INVALID,
  1301. } gcePIXEL_SWIZZLE;
  1302. /* Primitive types. */
  1303. typedef enum _gcePRIMITIVE
  1304. {
  1305. gcvPRIMITIVE_POINT_LIST,
  1306. gcvPRIMITIVE_LINE_LIST,
  1307. gcvPRIMITIVE_LINE_STRIP,
  1308. gcvPRIMITIVE_LINE_LOOP,
  1309. gcvPRIMITIVE_TRIANGLE_LIST,
  1310. gcvPRIMITIVE_TRIANGLE_STRIP,
  1311. gcvPRIMITIVE_TRIANGLE_FAN,
  1312. gcvPRIMITIVE_RECTANGLE,
  1313. }
  1314. gcePRIMITIVE;
  1315. /* Index types. */
  1316. typedef enum _gceINDEX_TYPE
  1317. {
  1318. gcvINDEX_8,
  1319. gcvINDEX_16,
  1320. gcvINDEX_32,
  1321. }
  1322. gceINDEX_TYPE;
  1323. /* Multi GPU rendering modes. */
  1324. typedef enum _gceMULTI_GPU_RENDERING_MODE
  1325. {
  1326. gcvMULTI_GPU_RENDERING_MODE_OFF,
  1327. gcvMULTI_GPU_RENDERING_MODE_SPLIT_WIDTH,
  1328. gcvMULTI_GPU_RENDERING_MODE_SPLIT_HEIGHT,
  1329. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_64x64,
  1330. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x64,
  1331. gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x128
  1332. }
  1333. gceMULTI_GPU_RENDERING_MODE;
  1334. typedef enum _gceCORE_3D_MASK
  1335. {
  1336. gcvCORE_3D_0_MASK = (1 << 0),
  1337. gcvCORE_3D_1_MASK = (1 << 1),
  1338. gcvCORE_3D_ALL_MASK = (0xFFFF)
  1339. }
  1340. gceCORE_3D_MASK;
  1341. typedef enum _gceCORE_3D_ID
  1342. {
  1343. gcvCORE_3D_0_ID = 0,
  1344. gcvCORE_3D_1_ID = 1,
  1345. gcvCORE_3D_ID_INVALID = ~0UL
  1346. }
  1347. gceCORE_3D_ID;
  1348. typedef enum _gceMULTI_GPU_MODE
  1349. {
  1350. gcvMULTI_GPU_MODE_COMBINED = 0,
  1351. gcvMULTI_GPU_MODE_INDEPENDENT = 1
  1352. }
  1353. gceMULTI_GPU_MODE;
  1354. typedef enum _gceMACHINECODE
  1355. {
  1356. gcvMACHINECODE_ANTUTU0 = 0x0,
  1357. gcvMACHINECODE_GLB27_RELEASE_0,
  1358. gcvMACHINECODE_GLB25_RELEASE_0,
  1359. gcvMACHINECODE_GLB25_RELEASE_1,
  1360. gcvMACHINECODE_GLB25_RELEASE_2,
  1361. /* keep it as the last enum */
  1362. gcvMACHINECODE_COUNT
  1363. }
  1364. gceMACHINECODE;
  1365. typedef enum _gceUNIFORMCVT
  1366. {
  1367. gcvUNIFORMCVT_NONE = 0,
  1368. gcvUNIFORMCVT_TO_BOOL,
  1369. gcvUNIFORMCVT_TO_FLOAT,
  1370. } gceUNIFORMCVT;
  1371. typedef enum _gceHAL_ARG_VERSION
  1372. {
  1373. gcvHAL_ARG_VERSION_V1 = 0x0,
  1374. }
  1375. gceHAL_ARG_VERSION;
  1376. typedef enum _gceCMDBUF_TYPE
  1377. {
  1378. /* Contiguous command buffer. */
  1379. gcvCMDBUF_CONTIGUOUS,
  1380. /* Virtual command buffer. */
  1381. gcvCMDBUF_VIRTUAL,
  1382. /* Command buffer allocated from reserved memory. */
  1383. gcvCMDBUF_RESERVED,
  1384. }
  1385. gceCMDBUF_SOURCE;
  1386. typedef enum _gceECO_FALG
  1387. {
  1388. gcvECO_FLAG_MSAA_COHERENCEY = 1 << 0,
  1389. }
  1390. gceECO_FLAG;
  1391. /*
  1392. * Bit of a requirment is 1 means requirement is a must, 0 means requirement can
  1393. * be ignored.
  1394. */
  1395. #define gcvALLOC_FLAG_CONTIGUOUS_BIT 0
  1396. #define gcvALLOC_FLAG_CACHEABLE_BIT 1
  1397. #define gcvALLOC_FLAG_SECURITY_BIT 2
  1398. #define gcvALLOC_FLAG_NON_CONTIGUOUS_BIT 3
  1399. #define gcvALLOC_FLAG_MEMLIMIT_BIT 4
  1400. /* No special needs. */
  1401. #define gcvALLOC_FLAG_NONE (0)
  1402. /* Physical contiguous. */
  1403. #define gcvALLOC_FLAG_CONTIGUOUS (1 << gcvALLOC_FLAG_CONTIGUOUS_BIT)
  1404. /* Can be remapped as cacheable. */
  1405. #define gcvALLOC_FLAG_CACHEABLE (1 << gcvALLOC_FLAG_CACHEABLE_BIT)
  1406. /* Secure buffer. */
  1407. #define gcvALLOC_FLAG_SECURITY (1 << gcvALLOC_FLAG_SECURITY_BIT)
  1408. /* Physical non contiguous. */
  1409. #define gcvALLOC_FLAG_NON_CONTIGUOUS (1 << gcvALLOC_FLAG_NON_CONTIGUOUS_BIT)
  1410. #define gcvALLOC_FLAG_MEMLIMIT (1 << gcvALLOC_FLAG_MEMLIMIT_BIT)
  1411. /* GL_VIV internal usage */
  1412. #ifndef GL_MAP_BUFFER_OBJ_VIV
  1413. #define GL_MAP_BUFFER_OBJ_VIV 0x10000
  1414. #endif
  1415. /* Command buffer usage. */
  1416. #define gcvCOMMAND_2D (1 << 0)
  1417. #define gcvCOMMAND_3D (1 << 1)
  1418. /******************************************************************************\
  1419. ****************************** Object Declarations *****************************
  1420. \******************************************************************************/
  1421. typedef struct _gckCONTEXT * gckCONTEXT;
  1422. typedef struct _gcoCMDBUF * gcoCMDBUF;
  1423. typedef struct _gcsSTATE_DELTA * gcsSTATE_DELTA_PTR;
  1424. typedef struct _gcsQUEUE * gcsQUEUE_PTR;
  1425. typedef struct _gcoQUEUE * gcoQUEUE;
  1426. typedef struct _gcsHAL_INTERFACE * gcsHAL_INTERFACE_PTR;
  1427. typedef struct _gcs2D_PROFILE * gcs2D_PROFILE_PTR;
  1428. #if gcdENABLE_VG
  1429. typedef struct _gcoVGHARDWARE * gcoVGHARDWARE;
  1430. typedef struct _gcoVGBUFFER * gcoVGBUFFER;
  1431. typedef struct _gckVGHARDWARE * gckVGHARDWARE;
  1432. typedef struct _gcsVGCONTEXT * gcsVGCONTEXT_PTR;
  1433. typedef struct _gcsVGCONTEXT_MAP * gcsVGCONTEXT_MAP_PTR;
  1434. typedef struct _gcsVGCMDQUEUE * gcsVGCMDQUEUE_PTR;
  1435. typedef struct _gcsTASK_MASTER_TABLE * gcsTASK_MASTER_TABLE_PTR;
  1436. typedef struct _gckVGKERNEL * gckVGKERNEL;
  1437. typedef void * gctTHREAD;
  1438. #endif
  1439. #ifdef __cplusplus
  1440. }
  1441. #endif
  1442. #endif /* __gc_hal_enum_h_ */