ENGR00156850 gpu-viv: add gpu-viv driver source
[wandboard.git] / drivers / mxc / gpu-viv / hal / kernel / inc / gc_hal_enum.h
blobd867ecd99b352a6db9c65ef2c440c8e43788879a
1 /****************************************************************************
3 * Copyright (C) 2005 - 2011 by Vivante Corp.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the license, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *****************************************************************************/
24 #ifndef __gc_hal_enum_h_
25 #define __gc_hal_enum_h_
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
31 /* Chip models. */
32 typedef enum _gceCHIPMODEL
34 gcv300 = 0x0300,
35 gcv320 = 0x0320,
36 gcv350 = 0x0350,
37 gcv355 = 0x0355,
38 gcv400 = 0x0400,
39 gcv410 = 0x0410,
40 gcv450 = 0x0450,
41 gcv500 = 0x0500,
42 gcv530 = 0x0530,
43 gcv600 = 0x0600,
44 gcv700 = 0x0700,
45 gcv800 = 0x0800,
46 gcv860 = 0x0860,
47 gcv880 = 0x0880,
48 gcv1000 = 0x1000,
49 gcv2000 = 0x2000,
50 gcv2100 = 0x2100,
51 gcv4000 = 0x4000,
53 gceCHIPMODEL;
55 /* Chip features. */
56 typedef enum _gceFEATURE
58 gcvFEATURE_PIPE_2D = 0,
59 gcvFEATURE_PIPE_3D,
60 gcvFEATURE_PIPE_VG,
61 gcvFEATURE_DC,
62 gcvFEATURE_HIGH_DYNAMIC_RANGE,
63 gcvFEATURE_MODULE_CG,
64 gcvFEATURE_MIN_AREA,
65 gcvFEATURE_BUFFER_INTERLEAVING,
66 gcvFEATURE_BYTE_WRITE_2D,
67 gcvFEATURE_ENDIANNESS_CONFIG,
68 gcvFEATURE_DUAL_RETURN_BUS,
69 gcvFEATURE_DEBUG_MODE,
70 gcvFEATURE_YUY2_RENDER_TARGET,
71 gcvFEATURE_FRAGMENT_PROCESSOR,
72 gcvFEATURE_2DPE20,
73 gcvFEATURE_FAST_CLEAR,
74 gcvFEATURE_YUV420_TILER,
75 gcvFEATURE_YUY2_AVERAGING,
76 gcvFEATURE_FLIP_Y,
77 gcvFEATURE_EARLY_Z,
78 gcvFEATURE_Z_COMPRESSION,
79 gcvFEATURE_MSAA,
80 gcvFEATURE_SPECIAL_ANTI_ALIASING,
81 gcvFEATURE_SPECIAL_MSAA_LOD,
82 gcvFEATURE_422_TEXTURE_COMPRESSION,
83 gcvFEATURE_DXT_TEXTURE_COMPRESSION,
84 gcvFEATURE_ETC1_TEXTURE_COMPRESSION,
85 gcvFEATURE_CORRECT_TEXTURE_CONVERTER,
86 gcvFEATURE_TEXTURE_8K,
87 gcvFEATURE_SCALER,
88 gcvFEATURE_YUV420_SCALER,
89 gcvFEATURE_SHADER_HAS_W,
90 gcvFEATURE_SHADER_HAS_SIGN,
91 gcvFEATURE_SHADER_HAS_FLOOR,
92 gcvFEATURE_SHADER_HAS_CEIL,
93 gcvFEATURE_SHADER_HAS_SQRT,
94 gcvFEATURE_SHADER_HAS_TRIG,
95 gcvFEATURE_VAA,
96 gcvFEATURE_HZ,
97 gcvFEATURE_CORRECT_STENCIL,
98 gcvFEATURE_VG20,
99 gcvFEATURE_VG_FILTER,
100 gcvFEATURE_VG21,
101 gcvFEATURE_VG_DOUBLE_BUFFER,
102 gcvFEATURE_MC20,
103 gcvFEATURE_SUPER_TILED,
104 gcvFEATURE_2D_FILTERBLIT_PLUS_ALPHABLEND,
105 gcvFEATURE_2D_DITHER,
106 gcvFEATURE_2D_A8_TARGET,
107 gcvFEATURE_2D_FILTERBLIT_FULLROTATION,
108 gcvFEATURE_2D_BITBLIT_FULLROTATION,
109 gcvFEATURE_WIDE_LINE,
110 gcvFEATURE_FC_FLUSH_STALL,
111 gcvFEATURE_FULL_DIRECTFB,
112 gcvFEATURE_HALF_FLOAT_PIPE,
113 gcvFEATURE_LINE_LOOP,
114 gcvFEATURE_2D_YUV_BLIT,
115 gcvFEATURE_2D_TILING,
116 gcvFEATURE_NON_POWER_OF_TWO,
117 gcvFEATURE_3D_TEXTURE,
118 gcvFEATURE_TEXTURE_ARRAY,
119 gcvFEATURE_TILE_FILLER,
120 gcvFEATURE_LOGIC_OP,
121 gcvFEATURE_COMPOSITION,
122 gcvFEATURE_MIXED_STREAMS,
123 gcvFEATURE_2D_MULTI_SOURCE_BLT,
124 gcvFEATURE_END_EVENT,
125 gcvFEATURE_VERTEX_10_10_10_2,
126 gcvFEATURE_TEXTURE_10_10_10_2,
127 gcvFEATURE_TEXTURE_ANISOTROPIC_FILTERING,
128 gcvFEATURE_TEXTURE_FLOAT_HALF_FLOAT,
129 gcvFEATURE_2D_ROTATION_STALL_FIX,
131 gceFEATURE;
133 /* Chip Power Status. */
134 typedef enum _gceCHIPPOWERSTATE
136 gcvPOWER_ON = 0,
137 gcvPOWER_OFF,
138 gcvPOWER_IDLE,
139 gcvPOWER_SUSPEND,
140 gcvPOWER_SUSPEND_ATPOWERON,
141 gcvPOWER_OFF_ATPOWERON,
142 gcvPOWER_IDLE_BROADCAST,
143 gcvPOWER_SUSPEND_BROADCAST,
144 gcvPOWER_OFF_BROADCAST,
145 gcvPOWER_OFF_RECOVERY,
146 #if gcdPOWEROFF_TIMEOUT
147 gcvPOWER_OFF_TIMEOUT,
148 #endif
149 gcvPOWER_ON_AUTO
151 gceCHIPPOWERSTATE;
153 /* CPU cache operations */
154 typedef enum _gceCACHEOPERATION
156 gcvCACHE_CLEAN = 0x01,
157 gcvCACHE_INVALIDATE = 0x02,
158 gcvCACHE_FLUSH = gcvCACHE_CLEAN | gcvCACHE_INVALIDATE
160 gceCACHEOPERATION;
162 /* Surface types. */
163 typedef enum _gceSURF_TYPE
165 gcvSURF_TYPE_UNKNOWN = 0,
166 gcvSURF_INDEX,
167 gcvSURF_VERTEX,
168 gcvSURF_TEXTURE,
169 gcvSURF_RENDER_TARGET,
170 gcvSURF_DEPTH,
171 gcvSURF_BITMAP,
172 gcvSURF_TILE_STATUS,
173 gcvSURF_IMAGE,
174 gcvSURF_MASK,
175 gcvSURF_SCISSOR,
176 gcvSURF_HIERARCHICAL_DEPTH,
177 gcvSURF_NUM_TYPES, /* Make sure this is the last one! */
179 /* Combinations. */
180 gcvSURF_NO_TILE_STATUS = 0x100,
181 gcvSURF_NO_VIDMEM = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
182 In Android, vidmem node is allocated by another process. */
183 gcvSURF_CACHEABLE = 0x400, /* Used to allocate a cacheable surface */
185 gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
186 | gcvSURF_NO_TILE_STATUS,
188 gcvSURF_DEPTH_NO_TILE_STATUS = gcvSURF_DEPTH
189 | gcvSURF_NO_TILE_STATUS,
191 /* Supported surface types with no vidmem node. */
192 gcvSURF_BITMAP_NO_VIDMEM = gcvSURF_BITMAP
193 | gcvSURF_NO_VIDMEM,
195 gcvSURF_TEXTURE_NO_VIDMEM = gcvSURF_TEXTURE
196 | gcvSURF_NO_VIDMEM,
198 /* Cacheable surface types with no vidmem node. */
199 gcvSURF_CACHEABLE_BITMAP_NO_VIDMEM = gcvSURF_BITMAP_NO_VIDMEM
200 | gcvSURF_CACHEABLE,
202 gcvSURF_CACHEABLE_BITMAP = gcvSURF_BITMAP
203 | gcvSURF_CACHEABLE
205 gceSURF_TYPE;
207 typedef enum _gceSURF_COLOR_TYPE
209 gcvSURF_COLOR_UNKNOWN = 0,
210 gcvSURF_COLOR_LINEAR = 0x01,
211 gcvSURF_COLOR_ALPHA_PRE = 0x02,
213 gceSURF_COLOR_TYPE;
215 /* Rotation. */
216 typedef enum _gceSURF_ROTATION
218 gcvSURF_0_DEGREE = 0,
219 gcvSURF_90_DEGREE,
220 gcvSURF_180_DEGREE,
221 gcvSURF_270_DEGREE,
222 gcvSURF_FLIP_X,
223 gcvSURF_FLIP_Y,
225 gceSURF_ROTATION;
227 /* Surface formats. */
228 typedef enum _gceSURF_FORMAT
230 /* Unknown format. */
231 gcvSURF_UNKNOWN = 0,
233 /* Palettized formats. */
234 gcvSURF_INDEX1 = 100,
235 gcvSURF_INDEX4,
236 gcvSURF_INDEX8,
238 /* RGB formats. */
239 gcvSURF_A2R2G2B2 = 200,
240 gcvSURF_R3G3B2,
241 gcvSURF_A8R3G3B2,
242 gcvSURF_X4R4G4B4,
243 gcvSURF_A4R4G4B4,
244 gcvSURF_R4G4B4A4,
245 gcvSURF_X1R5G5B5,
246 gcvSURF_A1R5G5B5,
247 gcvSURF_R5G5B5A1,
248 gcvSURF_R5G6B5,
249 gcvSURF_R8G8B8,
250 gcvSURF_X8R8G8B8,
251 gcvSURF_A8R8G8B8,
252 gcvSURF_R8G8B8A8,
253 gcvSURF_G8R8G8B8,
254 gcvSURF_R8G8B8G8,
255 gcvSURF_X2R10G10B10,
256 gcvSURF_A2R10G10B10,
257 gcvSURF_X12R12G12B12,
258 gcvSURF_A12R12G12B12,
259 gcvSURF_X16R16G16B16,
260 gcvSURF_A16R16G16B16,
261 gcvSURF_A32R32G32B32,
262 gcvSURF_R8G8B8X8,
263 gcvSURF_R5G5B5X1,
264 gcvSURF_R4G4B4X4,
266 /* BGR formats. */
267 gcvSURF_A4B4G4R4 = 300,
268 gcvSURF_A1B5G5R5,
269 gcvSURF_B5G6R5,
270 gcvSURF_B8G8R8,
271 gcvSURF_B16G16R16,
272 gcvSURF_X8B8G8R8,
273 gcvSURF_A8B8G8R8,
274 gcvSURF_A2B10G10R10,
275 gcvSURF_X16B16G16R16,
276 gcvSURF_A16B16G16R16,
277 gcvSURF_B32G32R32,
278 gcvSURF_X32B32G32R32,
279 gcvSURF_A32B32G32R32,
280 gcvSURF_B4G4R4A4,
281 gcvSURF_B5G5R5A1,
282 gcvSURF_B8G8R8X8,
283 gcvSURF_B8G8R8A8,
284 gcvSURF_X4B4G4R4,
285 gcvSURF_X1B5G5R5,
286 gcvSURF_B4G4R4X4,
287 gcvSURF_B5G5R5X1,
288 gcvSURF_X2B10G10R10,
290 /* Compressed formats. */
291 gcvSURF_DXT1 = 400,
292 gcvSURF_DXT2,
293 gcvSURF_DXT3,
294 gcvSURF_DXT4,
295 gcvSURF_DXT5,
296 gcvSURF_CXV8U8,
297 gcvSURF_ETC1,
299 /* YUV formats. */
300 gcvSURF_YUY2 = 500,
301 gcvSURF_UYVY,
302 gcvSURF_YV12,
303 gcvSURF_I420,
304 gcvSURF_NV12,
305 gcvSURF_NV21,
306 gcvSURF_NV16,
307 gcvSURF_NV61,
308 gcvSURF_YVYU,
309 gcvSURF_VYUY,
311 /* Depth formats. */
312 gcvSURF_D16 = 600,
313 gcvSURF_D24S8,
314 gcvSURF_D32,
315 gcvSURF_D24X8,
317 /* Alpha formats. */
318 gcvSURF_A4 = 700,
319 gcvSURF_A8,
320 gcvSURF_A12,
321 gcvSURF_A16,
322 gcvSURF_A32,
323 gcvSURF_A1,
325 /* Luminance formats. */
326 gcvSURF_L4 = 800,
327 gcvSURF_L8,
328 gcvSURF_L12,
329 gcvSURF_L16,
330 gcvSURF_L32,
331 gcvSURF_L1,
333 /* Alpha/Luminance formats. */
334 gcvSURF_A4L4 = 900,
335 gcvSURF_A2L6,
336 gcvSURF_A8L8,
337 gcvSURF_A4L12,
338 gcvSURF_A12L12,
339 gcvSURF_A16L16,
341 /* Bump formats. */
342 gcvSURF_L6V5U5 = 1000,
343 gcvSURF_V8U8,
344 gcvSURF_X8L8V8U8,
345 gcvSURF_Q8W8V8U8,
346 gcvSURF_A2W10V10U10,
347 gcvSURF_V16U16,
348 gcvSURF_Q16W16V16U16,
350 /* R/RG/RA formats. */
351 gcvSURF_R8 = 1100,
352 gcvSURF_X8R8,
353 gcvSURF_G8R8,
354 gcvSURF_X8G8R8,
355 gcvSURF_A8R8,
356 gcvSURF_R16,
357 gcvSURF_X16R16,
358 gcvSURF_G16R16,
359 gcvSURF_X16G16R16,
360 gcvSURF_A16R16,
361 gcvSURF_R32,
362 gcvSURF_X32R32,
363 gcvSURF_G32R32,
364 gcvSURF_X32G32R32,
365 gcvSURF_A32R32,
367 /* Floating point formats. */
368 gcvSURF_R16F = 1200,
369 gcvSURF_X16R16F,
370 gcvSURF_G16R16F,
371 gcvSURF_X16G16R16F,
372 gcvSURF_B16G16R16F,
373 gcvSURF_X16B16G16R16F,
374 gcvSURF_A16B16G16R16F,
375 gcvSURF_R32F,
376 gcvSURF_X32R32F,
377 gcvSURF_G32R32F,
378 gcvSURF_X32G32R32F,
379 gcvSURF_B32G32R32F,
380 gcvSURF_X32B32G32R32F,
381 gcvSURF_A32B32G32R32F,
382 gcvSURF_A16F,
383 gcvSURF_L16F,
384 gcvSURF_A16L16F,
385 gcvSURF_A16R16F,
386 gcvSURF_A32F,
387 gcvSURF_L32F,
388 gcvSURF_A32L32F,
389 gcvSURF_A32R32F,
392 gceSURF_FORMAT;
394 /* Pixel swizzle modes. */
395 typedef enum _gceSURF_SWIZZLE
397 gcvSURF_NOSWIZZLE = 0,
398 gcvSURF_ARGB,
399 gcvSURF_ABGR,
400 gcvSURF_RGBA,
401 gcvSURF_BGRA
403 gceSURF_SWIZZLE;
405 /* Transparency modes. */
406 typedef enum _gceSURF_TRANSPARENCY
408 /* Valid only for PE 1.0 */
409 gcvSURF_OPAQUE = 0,
410 gcvSURF_SOURCE_MATCH,
411 gcvSURF_SOURCE_MASK,
412 gcvSURF_PATTERN_MASK,
414 gceSURF_TRANSPARENCY;
416 /* Surface Alignment. */
417 typedef enum _gceSURF_ALIGNMENT
419 gcvSURF_FOUR = 0,
420 gcvSURF_SIXTEEN,
421 gcvSURF_SUPER_TILED,
422 gcvSURF_SPLIT_TILED,
423 gcvSURF_SPLIT_SUPER_TILED,
425 gceSURF_ALIGNMENT;
427 /* Transparency modes. */
428 typedef enum _gce2D_TRANSPARENCY
430 /* Valid only for PE 2.0 */
431 gcv2D_OPAQUE = 0,
432 gcv2D_KEYED,
433 gcv2D_MASKED
435 gce2D_TRANSPARENCY;
437 /* Mono packing modes. */
438 typedef enum _gceSURF_MONOPACK
440 gcvSURF_PACKED8 = 0,
441 gcvSURF_PACKED16,
442 gcvSURF_PACKED32,
443 gcvSURF_UNPACKED,
445 gceSURF_MONOPACK;
447 /* Blending modes. */
448 typedef enum _gceSURF_BLEND_MODE
450 /* Porter-Duff blending modes. */
451 /* Fsrc Fdst */
452 gcvBLEND_CLEAR = 0, /* 0 0 */
453 gcvBLEND_SRC, /* 1 0 */
454 gcvBLEND_DST, /* 0 1 */
455 gcvBLEND_SRC_OVER_DST, /* 1 1 - Asrc */
456 gcvBLEND_DST_OVER_SRC, /* 1 - Adst 1 */
457 gcvBLEND_SRC_IN_DST, /* Adst 0 */
458 gcvBLEND_DST_IN_SRC, /* 0 Asrc */
459 gcvBLEND_SRC_OUT_DST, /* 1 - Adst 0 */
460 gcvBLEND_DST_OUT_SRC, /* 0 1 - Asrc */
461 gcvBLEND_SRC_ATOP_DST, /* Adst 1 - Asrc */
462 gcvBLEND_DST_ATOP_SRC, /* 1 - Adst Asrc */
463 gcvBLEND_SRC_XOR_DST, /* 1 - Adst 1 - Asrc */
465 /* Special blending modes. */
466 gcvBLEND_SET, /* DST = 1 */
467 gcvBLEND_SUB /* DST = DST * (1 - SRC) */
469 gceSURF_BLEND_MODE;
471 /* Per-pixel alpha modes. */
472 typedef enum _gceSURF_PIXEL_ALPHA_MODE
474 gcvSURF_PIXEL_ALPHA_STRAIGHT = 0,
475 gcvSURF_PIXEL_ALPHA_INVERSED
477 gceSURF_PIXEL_ALPHA_MODE;
479 /* Global alpha modes. */
480 typedef enum _gceSURF_GLOBAL_ALPHA_MODE
482 gcvSURF_GLOBAL_ALPHA_OFF = 0,
483 gcvSURF_GLOBAL_ALPHA_ON,
484 gcvSURF_GLOBAL_ALPHA_SCALE
486 gceSURF_GLOBAL_ALPHA_MODE;
488 /* Color component modes for alpha blending. */
489 typedef enum _gceSURF_PIXEL_COLOR_MODE
491 gcvSURF_COLOR_STRAIGHT = 0,
492 gcvSURF_COLOR_MULTIPLY
494 gceSURF_PIXEL_COLOR_MODE;
496 /* Color component modes for alpha blending. */
497 typedef enum _gce2D_PIXEL_COLOR_MULTIPLY_MODE
499 gcv2D_COLOR_MULTIPLY_DISABLE = 0,
500 gcv2D_COLOR_MULTIPLY_ENABLE
502 gce2D_PIXEL_COLOR_MULTIPLY_MODE;
504 /* Color component modes for alpha blending. */
505 typedef enum _gce2D_GLOBAL_COLOR_MULTIPLY_MODE
507 gcv2D_GLOBAL_COLOR_MULTIPLY_DISABLE = 0,
508 gcv2D_GLOBAL_COLOR_MULTIPLY_ALPHA,
509 gcv2D_GLOBAL_COLOR_MULTIPLY_COLOR
511 gce2D_GLOBAL_COLOR_MULTIPLY_MODE;
513 /* Alpha blending factor modes. */
514 typedef enum _gceSURF_BLEND_FACTOR_MODE
516 gcvSURF_BLEND_ZERO = 0,
517 gcvSURF_BLEND_ONE,
518 gcvSURF_BLEND_STRAIGHT,
519 gcvSURF_BLEND_INVERSED,
520 gcvSURF_BLEND_COLOR,
521 gcvSURF_BLEND_COLOR_INVERSED,
522 gcvSURF_BLEND_SRC_ALPHA_SATURATED,
523 gcvSURF_BLEND_STRAIGHT_NO_CROSS,
524 gcvSURF_BLEND_INVERSED_NO_CROSS,
525 gcvSURF_BLEND_COLOR_NO_CROSS,
526 gcvSURF_BLEND_COLOR_INVERSED_NO_CROSS,
527 gcvSURF_BLEND_SRC_ALPHA_SATURATED_CROSS
529 gceSURF_BLEND_FACTOR_MODE;
531 /* Alpha blending porter duff rules. */
532 typedef enum _gce2D_PORTER_DUFF_RULE
534 gcvPD_CLEAR = 0,
535 gcvPD_SRC,
536 gcvPD_SRC_OVER,
537 gcvPD_DST_OVER,
538 gcvPD_SRC_IN,
539 gcvPD_DST_IN,
540 gcvPD_SRC_OUT,
541 gcvPD_DST_OUT,
542 gcvPD_SRC_ATOP,
543 gcvPD_DST_ATOP,
544 gcvPD_ADD,
545 gcvPD_XOR,
546 gcvPD_DST
548 gce2D_PORTER_DUFF_RULE;
550 /* Alpha blending factor modes. */
551 typedef enum _gce2D_YUV_COLOR_MODE
553 gcv2D_YUV_601= 0,
554 gcv2D_YUV_709
556 gce2D_YUV_COLOR_MODE;
558 /* 2D Rotation and flipping. */
559 typedef enum _gce2D_ORIENTATION
561 gcv2D_0_DEGREE = 0,
562 gcv2D_90_DEGREE,
563 gcv2D_180_DEGREE,
564 gcv2D_270_DEGREE,
565 gcv2D_X_FLIP,
566 gcv2D_Y_FLIP
568 gce2D_ORIENTATION;
570 typedef enum _gce2D_COMMAND
572 gcv2D_CLEAR = 0,
573 gcv2D_LINE,
574 gcv2D_BLT,
575 gcv2D_STRETCH,
576 gcv2D_HOR_FILTER,
577 gcv2D_VER_FILTER,
578 gcv2D_MULTI_SOURCE_BLT,
580 gce2D_COMMAND;
582 #ifndef VIVANTE_NO_3D
583 /* Texture functions. */
584 typedef enum _gceTEXTURE_FUNCTION
586 gcvTEXTURE_DUMMY = 0,
587 gcvTEXTURE_REPLACE = 0,
588 gcvTEXTURE_MODULATE,
589 gcvTEXTURE_ADD,
590 gcvTEXTURE_ADD_SIGNED,
591 gcvTEXTURE_INTERPOLATE,
592 gcvTEXTURE_SUBTRACT,
593 gcvTEXTURE_DOT3
595 gceTEXTURE_FUNCTION;
597 /* Texture sources. */
598 typedef enum _gceTEXTURE_SOURCE
600 gcvCOLOR_FROM_TEXTURE = 0,
601 gcvCOLOR_FROM_CONSTANT_COLOR,
602 gcvCOLOR_FROM_PRIMARY_COLOR,
603 gcvCOLOR_FROM_PREVIOUS_COLOR
605 gceTEXTURE_SOURCE;
607 /* Texture source channels. */
608 typedef enum _gceTEXTURE_CHANNEL
610 gcvFROM_COLOR = 0,
611 gcvFROM_ONE_MINUS_COLOR,
612 gcvFROM_ALPHA,
613 gcvFROM_ONE_MINUS_ALPHA
615 gceTEXTURE_CHANNEL;
616 #endif /* VIVANTE_NO_3D */
618 /* Filter types. */
619 typedef enum _gceFILTER_TYPE
621 gcvFILTER_SYNC = 0,
622 gcvFILTER_BLUR,
623 gcvFILTER_USER
625 gceFILTER_TYPE;
627 /* Filter pass types. */
628 typedef enum _gceFILTER_PASS_TYPE
630 gcvFILTER_HOR_PASS = 0,
631 gcvFILTER_VER_PASS
633 gceFILTER_PASS_TYPE;
635 /* Endian hints. */
636 typedef enum _gceENDIAN_HINT
638 gcvENDIAN_NO_SWAP = 0,
639 gcvENDIAN_SWAP_WORD,
640 gcvENDIAN_SWAP_DWORD
642 gceENDIAN_HINT;
644 /* Tiling modes. */
645 typedef enum _gceTILING
647 gcvLINEAR = 0,
648 gcvTILED,
649 gcvSUPERTILED,
650 gcvMULTI_TILED,
651 gcvMULTI_SUPERTILED,
653 gceTILING;
655 /* 2D pattern type. */
656 typedef enum _gce2D_PATTERN
658 gcv2D_PATTERN_SOLID = 0,
659 gcv2D_PATTERN_MONO,
660 gcv2D_PATTERN_COLOR,
661 gcv2D_PATTERN_INVALID
663 gce2D_PATTERN;
665 /* 2D source type. */
666 typedef enum _gce2D_SOURCE
668 gcv2D_SOURCE_MASKED = 0,
669 gcv2D_SOURCE_MONO,
670 gcv2D_SOURCE_COLOR,
671 gcv2D_SOURCE_INVALID
673 gce2D_SOURCE;
675 /* Pipes. */
676 typedef enum _gcePIPE_SELECT
678 gcvPIPE_INVALID = ~0,
679 gcvPIPE_3D = 0,
680 gcvPIPE_2D
682 gcePIPE_SELECT;
684 /* Hardware type. */
685 typedef enum _gceHARDWARE_TYPE
687 gcvHARDWARE_INVALID = 0x00,
688 gcvHARDWARE_3D = 0x01,
689 gcvHARDWARE_2D = 0x02,
690 gcvHARDWARE_VG = 0x04,
692 gcvHARDWARE_3D2D = gcvHARDWARE_3D | gcvHARDWARE_2D
694 gceHARDWARE_TYPE;
696 #define gcdCHIP_COUNT 3
698 typedef enum _gceMMU_MODE
700 gcvMMU_MODE_1K,
701 gcvMMU_MODE_4K,
702 } gceMMU_MODE;
704 /* User signal command codes. */
705 typedef enum _gceUSER_SIGNAL_COMMAND_CODES
707 gcvUSER_SIGNAL_CREATE,
708 gcvUSER_SIGNAL_DESTROY,
709 gcvUSER_SIGNAL_SIGNAL,
710 gcvUSER_SIGNAL_WAIT,
711 gcvUSER_SIGNAL_MAP,
712 gcvUSER_SIGNAL_UNMAP,
714 gceUSER_SIGNAL_COMMAND_CODES;
716 /* Event locations. */
717 typedef enum _gceKERNEL_WHERE
719 gcvKERNEL_COMMAND,
720 gcvKERNEL_VERTEX,
721 gcvKERNEL_TRIANGLE,
722 gcvKERNEL_TEXTURE,
723 gcvKERNEL_PIXEL,
725 gceKERNEL_WHERE;
727 #if gcdENABLE_VG
728 /* Hardware blocks. */
729 typedef enum _gceBLOCK
731 gcvBLOCK_COMMAND,
732 gcvBLOCK_TESSELLATOR,
733 gcvBLOCK_TESSELLATOR2,
734 gcvBLOCK_TESSELLATOR3,
735 gcvBLOCK_RASTER,
736 gcvBLOCK_VG,
737 gcvBLOCK_VG2,
738 gcvBLOCK_VG3,
739 gcvBLOCK_PIXEL,
741 /* Number of defined blocks. */
742 gcvBLOCK_COUNT
744 gceBLOCK;
745 #endif
747 /* gcdDUMP message type. */
748 typedef enum _gceDEBUG_MESSAGE_TYPE
750 gcvMESSAGE_TEXT,
751 gcvMESSAGE_DUMP
753 gceDEBUG_MESSAGE_TYPE;
755 /******************************************************************************\
756 ****************************** Object Declarations *****************************
757 \******************************************************************************/
759 typedef struct _gckCONTEXT * gckCONTEXT;
760 typedef struct _gcoCMDBUF * gcoCMDBUF;
761 typedef struct _gcsSTATE_DELTA * gcsSTATE_DELTA_PTR;
762 typedef struct _gcsQUEUE * gcsQUEUE_PTR;
763 typedef struct _gcoQUEUE * gcoQUEUE;
764 typedef struct _gcsHAL_INTERFACE * gcsHAL_INTERFACE_PTR;
765 typedef struct _gcs2D_PROFILE * gcs2D_PROFILE_PTR;
767 #if gcdENABLE_VG
768 typedef struct _gcoVGHARDWARE * gcoVGHARDWARE;
769 typedef struct _gcoVGBUFFER * gcoVGBUFFER;
770 typedef struct _gckVGHARDWARE * gckVGHARDWARE;
771 typedef struct _gcsVGCONTEXT * gcsVGCONTEXT_PTR;
772 typedef struct _gcsVGCONTEXT_MAP * gcsVGCONTEXT_MAP_PTR;
773 typedef struct _gcsVGCMDQUEUE * gcsVGCMDQUEUE_PTR;
774 typedef struct _gcsTASK_MASTER_TABLE * gcsTASK_MASTER_TABLE_PTR;
775 typedef struct _gckVGKERNEL * gckVGKERNEL;
776 typedef void * gctTHREAD;
777 #endif
779 #ifdef __cplusplus
781 #endif
783 #endif /* __gc_hal_enum_h_ */