2065 lines
57 KiB
C
2065 lines
57 KiB
C
/****************************************************************************
|
|
*
|
|
* Copyright (c) 2005 - 2023 by Vivante Corp. All rights reserved.
|
|
*
|
|
* The material in this file is confidential and contains trade secrets
|
|
* of Vivante Corporation. This is proprietary information owned by
|
|
* Vivante Corporation. No part of this work may be disclosed,
|
|
* reproduced, copied, transmitted, or used in any way for any purpose,
|
|
* without the express written permission of Vivante Corporation.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
|
|
#ifndef __gc_hal_enum_h_
|
|
#define __gc_hal_enum_h_
|
|
|
|
#include "gc_hal_options.h"
|
|
#include "shared/gc_hal_enum_shared.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* dummy draw type.*/
|
|
typedef enum _gceDUMMY_DRAW_TYPE {
|
|
gcvDUMMY_DRAW_INVALID = 0,
|
|
gcvDUMMY_DRAW_GC400,
|
|
gcvDUMMY_DRAW_V60,
|
|
} gceDUMMY_DRAW_TYPE;
|
|
|
|
/* Option Set*/
|
|
typedef enum _gceOPTION {
|
|
/* HW setting. */
|
|
gcvOPTION_PREFER_ZCONVERT_BYPASS = 0,
|
|
gcvOPTION_PREFER_TILED_DISPLAY_BUFFER = 1,
|
|
gcvOPTION_PREFER_GUARDBAND = 2,
|
|
gcvOPTION_PREFER_TPG_TRIVIALMODEL = 3,
|
|
gcvOPTION_PREFER_RA_DEPTH_WRITE = 4,
|
|
gcvOPTION_PREFER_USC_RECONFIG = 5,
|
|
gcvOPTION_PREFER_DISALBE_HZ = 6,
|
|
|
|
/* SW options */
|
|
gcvOPTION_HW_NULL = 50,
|
|
gcvOPTION_PRINT_OPTION = 51,
|
|
gcvOPTION_KERNEL_FENCE = 52,
|
|
gcvOPTION_ASYNC_PIPE = 53,
|
|
gcvOPTION_FBO_PREFER_MEM = 54,
|
|
gcvOPTION_GPU_TEX_UPLOAD = 55,
|
|
gcvOPTION_GPU_BUFOBJ_UPLOAD = 56,
|
|
gcvOPTION_NO_Y_INVERT = 60,
|
|
|
|
/* OCL option */
|
|
gcvOPTION_OCL_ASYNC_BLT = 200,
|
|
gcvOPTION_OCL_IN_THREAD,
|
|
gcvOPTION_COMPRESSION_DEC400,
|
|
gcvOPTION_OCL_VIR_SHADER,
|
|
gcvOPTION_OCL_USE_MULTI_DEVICES,
|
|
|
|
#if gcdUSE_VX
|
|
/* OVX options that HAL could access */
|
|
gcvOPTION_OVX_ENABLE_NN_ZDP3 = 500,
|
|
gcvOPTION_OVX_ENABLE_NN_ZDP6,
|
|
gcvOPTION_OVX_ENABLE_NN_STRIDE,
|
|
gcvOPTION_OVX_USE_MULTI_DEVICES,
|
|
gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_NN_DDR_BURST_SIZE_64B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_DDR_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_DDR_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_DDR_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_DDR_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_DDR_BURST_SIZE_64B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_DDR_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_DDR_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_DDR_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_DDR_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_DDR_BURST_SIZE_64B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_DDR_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_DDR_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_DDR_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_DDR_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_DDR_BURST_SIZE_64B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_64B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_32B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID0_MIN_AXI_BURST_SIZE_16B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_64B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_32B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID1_MIN_AXI_BURST_SIZE_16B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_64B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_32B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID2_MIN_AXI_BURST_SIZE_16B,
|
|
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_1024B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_512B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_256B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_128B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_64B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_32B,
|
|
gcvOPTION_OVX_ENABLE_VIP_AXI_ID3_MIN_AXI_BURST_SIZE_16B,
|
|
|
|
#endif
|
|
/* Insert option above this comment only */
|
|
gcvOPTION_COUNT /* Not a OPTION*/
|
|
} gceOPTION;
|
|
|
|
typedef enum _gceFRAMEINFO {
|
|
/* Total frame count in one run */
|
|
gcvFRAMEINFO_FRAME_NUM = 0,
|
|
/* Total draw count in current frame, including draw/compute */
|
|
gcvFRAMEINFO_DRAW_NUM = 1,
|
|
/* Total compute count in current frame, subset of drawNum */
|
|
gcvFRAMEINFO_COMPUTE_NUM = 2,
|
|
/* Total dual16 draw/compute count in current frame, subset of drawNum */
|
|
gcvFRAMEINFO_DUAL16_NUM = 3,
|
|
/* Current programID is being set. only valid for ES20 driver right now */
|
|
gcvFRAMEINFO_PROGRAM_ID = 4,
|
|
|
|
gcvFRAMEINFO_COUNT,
|
|
} gceFRAMEINFO;
|
|
|
|
typedef enum _gceFRAMEINFO_OP {
|
|
gcvFRAMEINFO_OP_INC = 0,
|
|
gcvFRAMEINFO_OP_DEC = 1,
|
|
gcvFRAMEINFO_OP_ZERO = 2,
|
|
gcvFRAMEINFO_OP_GET = 3,
|
|
gcvFRAMEINFO_OP_SET = 4,
|
|
gcvFRAMEINFO_OP_COUNT,
|
|
} gceFRAMEINFO_OP;
|
|
|
|
typedef enum _gceSURF_USAGE {
|
|
gcvSURF_USAGE_UNKNOWN,
|
|
gcvSURF_USAGE_RESOLVE_AFTER_CPU,
|
|
gcvSURF_USAGE_RESOLVE_AFTER_3D
|
|
} gceSURF_USAGE;
|
|
|
|
typedef enum _gceSURF_COLOR_SPACE {
|
|
gcvSURF_COLOR_SPACE_UNKNOWN,
|
|
gcvSURF_COLOR_SPACE_LINEAR,
|
|
gcvSURF_COLOR_SPACE_NONLINEAR,
|
|
} gceSURF_COLOR_SPACE;
|
|
|
|
typedef enum _gceSURF_COLOR_TYPE {
|
|
gcvSURF_COLOR_UNKNOWN = 0,
|
|
gcvSURF_COLOR_LINEAR = 0x01,
|
|
gcvSURF_COLOR_ALPHA_PRE = 0x02,
|
|
} gceSURF_COLOR_TYPE;
|
|
|
|
/* Rotation. */
|
|
typedef enum _gceSURF_ROTATION {
|
|
gcvSURF_0_DEGREE = 0,
|
|
gcvSURF_90_DEGREE,
|
|
gcvSURF_180_DEGREE,
|
|
gcvSURF_270_DEGREE,
|
|
gcvSURF_FLIP_X,
|
|
gcvSURF_FLIP_Y,
|
|
|
|
gcvSURF_POST_FLIP_X = 0x40000000,
|
|
gcvSURF_POST_FLIP_Y = 0x80000000,
|
|
} gceSURF_ROTATION;
|
|
|
|
/* Surface flag */
|
|
typedef enum _gceSURF_FLAG {
|
|
/* None flag */
|
|
gcvSURF_FLAG_NONE = 0x0,
|
|
/* content is preserved after swap */
|
|
gcvSURF_FLAG_CONTENT_PRESERVED = 0x1,
|
|
/* content is updated after swap*/
|
|
gcvSURF_FLAG_CONTENT_UPDATED = 0x2,
|
|
/* content is y inverted */
|
|
gcvSURF_FLAG_CONTENT_YINVERTED = 0x4,
|
|
/* surface has multiple nodes */
|
|
gcvSURF_FLAG_MULTI_NODE = 0x8,
|
|
/* surface no need do dither when resovle*/
|
|
gcvSURF_FLAG_DITHER_DISABLED = 0x10,
|
|
/* surface used a fake hal format */
|
|
gcvSURF_FLAG_FAKE_FORMAT = 0x20,
|
|
} gceSURF_FLAG;
|
|
|
|
typedef enum _gceMIPMAP_IMAGE_FORMAT {
|
|
gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2
|
|
} gceMIPMAP_IMAGE_FORMAT;
|
|
|
|
typedef enum _gceIMAGE_MEM_TYPE {
|
|
gcvIMAGE_MEM_DEFAULT,
|
|
gcvIMAGE_MEM_HOST_PTR,
|
|
gcvIMAGE_MEM_HOST_PTR_UNCACHED,
|
|
gcvIMAGE_MEM_HOST_PHY_PTR,
|
|
gcvIMAGE_MEM_HOST_PHY_PTR_UNCACHED,
|
|
} gceIMAGE_MEM_TYPE;
|
|
|
|
typedef enum _gceSURF_YUV_COLOR_SPACE {
|
|
gcvSURF_ITU_REC601,
|
|
gcvSURF_ITU_REC709,
|
|
gcvSURF_ITU_REC2020,
|
|
} gceSURF_YUV_COLOR_SPACE;
|
|
|
|
typedef enum _gceSURF_YUV_SAMPLE_RANGE {
|
|
gcvSURF_YUV_UNKNOWN_RANGE,
|
|
gcvSURF_YUV_FULL_RANGE,
|
|
gcvSURF_YUV_NARROW_RANGE,
|
|
} gceSURF_YUV_SAMPLE_RANGE;
|
|
|
|
typedef enum _gceSURF_YUV_CHROMA_SITING {
|
|
gcvSURF_YUV_CHROMA_SITING_0,
|
|
gcvSURF_YUV_CHROMA_SITING_0_5,
|
|
} gceSURF_YUV_CHROMA_SITING;
|
|
|
|
typedef enum _gceSURF_INFO_TYPE {
|
|
gcvSURF_INFO_UNKNOWN = 0,
|
|
gcvSURF_INFO_LAYERSIZE = 1,
|
|
gcvSURF_INFO_SLICESIZE = 2,
|
|
} gceSURF_INFO_TYPE;
|
|
|
|
/* Format modifiers. */
|
|
typedef enum _gceSURF_FORMAT_MODE {
|
|
gcvSURF_FORMAT_OCL = 0x80000000,
|
|
gcvSURF_FORMAT_PATCH_BORDER = 0x40000000,
|
|
} gceSURF_FORMAT_MODE;
|
|
|
|
/* Pixel swizzle modes. */
|
|
typedef enum _gceSURF_SWIZZLE {
|
|
gcvSURF_NOSWIZZLE = 0,
|
|
gcvSURF_ARGB,
|
|
gcvSURF_ABGR,
|
|
gcvSURF_RGBA,
|
|
gcvSURF_BGRA
|
|
} gceSURF_SWIZZLE;
|
|
|
|
/* Transparency modes. */
|
|
typedef enum _gceSURF_TRANSPARENCY {
|
|
/* Valid only for PE 1.0 */
|
|
gcvSURF_OPAQUE = 0,
|
|
gcvSURF_SOURCE_MATCH,
|
|
gcvSURF_SOURCE_MASK,
|
|
gcvSURF_PATTERN_MASK,
|
|
} gceSURF_TRANSPARENCY;
|
|
|
|
/* Surface Alignment. */
|
|
typedef enum _gceSURF_ALIGNMENT {
|
|
gcvSURF_FOUR = 0,
|
|
gcvSURF_SIXTEEN,
|
|
gcvSURF_SUPER_TILED,
|
|
gcvSURF_SPLIT_TILED,
|
|
gcvSURF_SPLIT_SUPER_TILED
|
|
} gceSURF_ALIGNMENT;
|
|
|
|
/* Surface Addressing. */
|
|
typedef enum _gceSURF_ADDRESSING {
|
|
gcvSURF_NO_STRIDE_TILED = 0,
|
|
gcvSURF_NO_STRIDE_LINEAR,
|
|
gcvSURF_STRIDE_TILED,
|
|
gcvSURF_STRIDE_LINEAR
|
|
} gceSURF_ADDRESSING;
|
|
|
|
/* Transparency modes. */
|
|
typedef enum _gce2D_TRANSPARENCY {
|
|
/* Valid only for PE 2.0 */
|
|
gcv2D_OPAQUE = 0,
|
|
gcv2D_KEYED,
|
|
gcv2D_MASKED
|
|
} gce2D_TRANSPARENCY;
|
|
|
|
/* Mono packing modes. */
|
|
typedef enum _gceSURF_MONOPACK {
|
|
gcvSURF_PACKED8 = 0,
|
|
gcvSURF_PACKED16,
|
|
gcvSURF_PACKED32,
|
|
gcvSURF_UNPACKED,
|
|
} gceSURF_MONOPACK;
|
|
|
|
/* Blending modes. */
|
|
typedef enum _gceSURF_BLEND_MODE {
|
|
/* Porter-Duff blending modes. */
|
|
/* Fsrc Fdst */
|
|
gcvBLEND_CLEAR = 0, /* 0 0 */
|
|
gcvBLEND_SRC, /* 1 0 */
|
|
gcvBLEND_DST, /* 0 1 */
|
|
gcvBLEND_SRC_OVER_DST, /* 1 1 - Asrc */
|
|
gcvBLEND_DST_OVER_SRC, /* 1 - Adst 1 */
|
|
gcvBLEND_SRC_IN_DST, /* Adst 0 */
|
|
gcvBLEND_DST_IN_SRC, /* 0 Asrc */
|
|
gcvBLEND_SRC_OUT_DST, /* 1 - Adst 0 */
|
|
gcvBLEND_DST_OUT_SRC, /* 0 1 - Asrc */
|
|
gcvBLEND_SRC_ATOP_DST, /* Adst 1 - Asrc */
|
|
gcvBLEND_DST_ATOP_SRC, /* 1 - Adst Asrc */
|
|
gcvBLEND_SRC_XOR_DST, /* 1 - Adst 1 - Asrc */
|
|
|
|
/* Special blending modes. */
|
|
gcvBLEND_SET, /* DST = 1 */
|
|
gcvBLEND_SUB /* DST = DST * (1 - SRC) */
|
|
} gceSURF_BLEND_MODE;
|
|
|
|
/* Per-pixel alpha modes. */
|
|
typedef enum _gceSURF_PIXEL_ALPHA_MODE {
|
|
gcvSURF_PIXEL_ALPHA_STRAIGHT = 0,
|
|
gcvSURF_PIXEL_ALPHA_INVERSED
|
|
} gceSURF_PIXEL_ALPHA_MODE;
|
|
|
|
/* Global alpha modes. */
|
|
typedef enum _gceSURF_GLOBAL_ALPHA_MODE {
|
|
gcvSURF_GLOBAL_ALPHA_OFF = 0,
|
|
gcvSURF_GLOBAL_ALPHA_ON,
|
|
gcvSURF_GLOBAL_ALPHA_SCALE
|
|
} gceSURF_GLOBAL_ALPHA_MODE;
|
|
|
|
/* Color component modes for alpha blending. */
|
|
typedef enum _gceSURF_PIXEL_COLOR_MODE {
|
|
gcvSURF_COLOR_STRAIGHT = 0,
|
|
gcvSURF_COLOR_MULTIPLY
|
|
} gceSURF_PIXEL_COLOR_MODE;
|
|
|
|
/* Color component modes for alpha blending. */
|
|
typedef enum _gce2D_PIXEL_COLOR_MULTIPLY_MODE {
|
|
gcv2D_COLOR_MULTIPLY_DISABLE = 0,
|
|
gcv2D_COLOR_MULTIPLY_ENABLE
|
|
} gce2D_PIXEL_COLOR_MULTIPLY_MODE;
|
|
|
|
/* Color component modes for alpha blending. */
|
|
typedef enum _gce2D_GLOBAL_COLOR_MULTIPLY_MODE {
|
|
gcv2D_GLOBAL_COLOR_MULTIPLY_DISABLE = 0,
|
|
gcv2D_GLOBAL_COLOR_MULTIPLY_ALPHA,
|
|
gcv2D_GLOBAL_COLOR_MULTIPLY_COLOR
|
|
} gce2D_GLOBAL_COLOR_MULTIPLY_MODE;
|
|
|
|
/* Alpha blending factor modes. */
|
|
typedef enum _gceSURF_BLEND_FACTOR_MODE {
|
|
gcvSURF_BLEND_ZERO = 0,
|
|
gcvSURF_BLEND_ONE,
|
|
gcvSURF_BLEND_STRAIGHT,
|
|
gcvSURF_BLEND_INVERSED,
|
|
gcvSURF_BLEND_COLOR,
|
|
gcvSURF_BLEND_COLOR_INVERSED,
|
|
gcvSURF_BLEND_SRC_ALPHA_SATURATED,
|
|
gcvSURF_BLEND_STRAIGHT_NO_CROSS,
|
|
gcvSURF_BLEND_INVERSED_NO_CROSS,
|
|
gcvSURF_BLEND_COLOR_NO_CROSS,
|
|
gcvSURF_BLEND_COLOR_INVERSED_NO_CROSS,
|
|
gcvSURF_BLEND_SRC_ALPHA_SATURATED_CROSS
|
|
} gceSURF_BLEND_FACTOR_MODE;
|
|
|
|
/* Alpha blending porter duff rules. */
|
|
typedef enum _gce2D_PORTER_DUFF_RULE {
|
|
gcvPD_CLEAR = 0,
|
|
gcvPD_SRC,
|
|
gcvPD_SRC_OVER,
|
|
gcvPD_DST_OVER,
|
|
gcvPD_SRC_IN,
|
|
gcvPD_DST_IN,
|
|
gcvPD_SRC_OUT,
|
|
gcvPD_DST_OUT,
|
|
gcvPD_SRC_ATOP,
|
|
gcvPD_DST_ATOP,
|
|
gcvPD_ADD,
|
|
gcvPD_XOR,
|
|
gcvPD_DST
|
|
} gce2D_PORTER_DUFF_RULE;
|
|
|
|
/* Alpha blending factor modes. */
|
|
typedef enum _gce2D_YUV_COLOR_MODE {
|
|
gcv2D_YUV_601 = 0,
|
|
gcv2D_YUV_709,
|
|
gcv2D_YUV_2020,
|
|
gcv2D_YUV_USER_DEFINED,
|
|
gcv2D_YUV_USER_DEFINED_CLAMP,
|
|
|
|
/* Default setting is for src. gcv2D_YUV_DST
|
|
* can be ORed to set dst.
|
|
*/
|
|
gcv2D_YUV_DST = 0x80000000,
|
|
} gce2D_YUV_COLOR_MODE;
|
|
|
|
/* Nature rotation rules. */
|
|
typedef enum _gce2D_NATURE_ROTATION {
|
|
gcvNR_0_DEGREE = 0,
|
|
gcvNR_LEFT_90_DEGREE,
|
|
gcvNR_RIGHT_90_DEGREE,
|
|
gcvNR_180_DEGREE,
|
|
gcvNR_FLIP_X,
|
|
gcvNR_FLIP_Y,
|
|
gcvNR_TOTAL_RULE,
|
|
} gce2D_NATURE_ROTATION;
|
|
|
|
typedef enum _gce2D_COMMAND {
|
|
gcv2D_CLEAR = 0,
|
|
gcv2D_LINE,
|
|
gcv2D_BLT,
|
|
gcv2D_STRETCH,
|
|
gcv2D_HOR_FILTER,
|
|
gcv2D_VER_FILTER,
|
|
gcv2D_MULTI_SOURCE_BLT,
|
|
gcv2D_FILTER_BLT,
|
|
} gce2D_COMMAND;
|
|
|
|
typedef enum _gce2D_TILE_STATUS_CONFIG {
|
|
gcv2D_TSC_DISABLE = 0,
|
|
gcv2D_TSC_ENABLE = 0x00000001,
|
|
gcv2D_TSC_COMPRESSED = 0x00000002,
|
|
gcv2D_TSC_DOWN_SAMPLER = 0x00000004,
|
|
gcv2D_TSC_2D_COMPRESSED = 0x00000008,
|
|
|
|
gcv2D_TSC_DEC_COMPRESSED = 0x00000020,
|
|
gcv2D_TSC_DEC_TPC = 0x00000040,
|
|
gcv2D_TSC_DEC_TPC_COMPRESSED = 0x00000080,
|
|
|
|
gcv2D_TSC_V4_COMPRESSED = 0x00000100,
|
|
gcv2D_TSC_V4_COMPRESSED_256B = 0x00000200 | gcv2D_TSC_V4_COMPRESSED,
|
|
|
|
gcv2D_TSC_DEC_TPC_TILED = gcv2D_TSC_DEC_COMPRESSED | gcv2D_TSC_DEC_TPC,
|
|
gcv2D_TSC_DEC_TPC_TILED_COMPRESSED = gcv2D_TSC_DEC_TPC_TILED | gcv2D_TSC_DEC_TPC_COMPRESSED,
|
|
|
|
gcv2D_TSC_TPC_COMPRESSED = 0x00001000,
|
|
gcv2D_TSC_TPC_COMPRESSED_V10 = gcv2D_TSC_TPC_COMPRESSED | 0x00000400,
|
|
gcv2D_TSC_TPC_COMPRESSED_V11 = gcv2D_TSC_TPC_COMPRESSED | 0x00000800,
|
|
} gce2D_TILE_STATUS_CONFIG;
|
|
|
|
typedef enum _gce2D_DEC400_MINOR_VERSION {
|
|
gcv2D_DEC400_MINOR_V1 = 1,
|
|
gcv2D_DEC400_MINOR_V2 = 2,
|
|
gcv2D_DEC400_MINOR_V3 = 3,
|
|
gcv2D_DEC400_MINOR_V4 = 4,
|
|
} gce2D_DEC400_MINOR_VERSION;
|
|
|
|
/*Tiling version when disable compression*/
|
|
typedef enum _gce2D_TILING_MINOR_VERSION {
|
|
gcv2D_TILING_MINOR_V1 = 0,
|
|
gcv2D_TILING_MINOR_V2 = 1,
|
|
} gce2D_TILING_MINOR_VERSION;
|
|
|
|
typedef enum _gce2D_QUERY {
|
|
gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN = 0,
|
|
gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
|
|
gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
|
|
gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
|
|
gcv2D_QUERY_DEC400_MINOR_VERSION,
|
|
gcv2D_QUERY_TILING_MINOR_VERSION,
|
|
} gce2D_QUERY;
|
|
|
|
typedef enum _gce2D_SUPER_TILE_VERSION {
|
|
gcv2D_SUPER_TILE_VERSION_V1 = 1,
|
|
gcv2D_SUPER_TILE_VERSION_V2 = 2,
|
|
gcv2D_SUPER_TILE_VERSION_V3 = 3,
|
|
} gce2D_SUPER_TILE_VERSION;
|
|
|
|
typedef enum _gce2D_STATE {
|
|
gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE = 1,
|
|
gcv2D_STATE_SUPER_TILE_VERSION,
|
|
gcv2D_STATE_EN_GAMMA,
|
|
gcv2D_STATE_DE_GAMMA,
|
|
gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
|
|
gcv2D_STATE_MULTI_SRC_BLIT_BILINEAR_FILTER,
|
|
gcv2D_STATE_PROFILE_ENABLE,
|
|
gcv2D_STATE_XRGB_ENABLE,
|
|
|
|
gcv2D_STATE_ARRAY_EN_GAMMA = 0x10001,
|
|
gcv2D_STATE_ARRAY_DE_GAMMA,
|
|
gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
|
|
gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
|
|
|
|
gcv2D_STATE_DEC_TPC_NV12_10BIT = 0x20001,
|
|
gcv2D_STATE_ARRAY_YUV_SRC_TILE_STATUS_ADDR,
|
|
gcv2D_STATE_ARRAY_YUV_DST_TILE_STATUS_ADDR,
|
|
} gce2D_STATE;
|
|
|
|
typedef enum _gce2D_STATE_PROFILE {
|
|
gcv2D_STATE_PROFILE_NONE = 0x0,
|
|
gcv2D_STATE_PROFILE_COMMAND = 0x1,
|
|
gcv2D_STATE_PROFILE_SURFACE = 0x2,
|
|
gcv2D_STATE_PROFILE_ALL = 0xFFFF,
|
|
} gce2D_STATE_PROFILE;
|
|
|
|
/* Texture object types */
|
|
typedef enum _gceTEXTURE_TYPE {
|
|
gcvTEXTURE_UNKNOWN = 0,
|
|
gcvTEXTURE_1D,
|
|
gcvTEXTURE_2D,
|
|
gcvTEXTURE_3D,
|
|
gcvTEXTURE_CUBEMAP,
|
|
gcvTEXTURE_1D_ARRAY,
|
|
gcvTEXTURE_2D_ARRAY,
|
|
gcvTEXTURE_2D_MS,
|
|
gcvTEXTURE_2D_MS_ARRAY,
|
|
gcvTEXTURE_CUBEMAP_ARRAY,
|
|
gcvTEXTURE_EXTERNAL
|
|
} gceTEXTURE_TYPE;
|
|
|
|
#if gcdENABLE_3D
|
|
/* Texture functions. */
|
|
typedef enum _gceTEXTURE_FUNCTION {
|
|
gcvTEXTURE_DUMMY = 0,
|
|
gcvTEXTURE_REPLACE = 0,
|
|
gcvTEXTURE_MODULATE,
|
|
gcvTEXTURE_ADD,
|
|
gcvTEXTURE_ADD_SIGNED,
|
|
gcvTEXTURE_INTERPOLATE,
|
|
gcvTEXTURE_SUBTRACT,
|
|
gcvTEXTURE_DOT3
|
|
} gceTEXTURE_FUNCTION;
|
|
|
|
/* Texture sources. */
|
|
typedef enum _gceTEXTURE_SOURCE {
|
|
gcvCOLOR_FROM_TEXTURE = 0,
|
|
gcvCOLOR_FROM_CONSTANT_COLOR,
|
|
gcvCOLOR_FROM_PRIMARY_COLOR,
|
|
gcvCOLOR_FROM_PREVIOUS_COLOR
|
|
} gceTEXTURE_SOURCE;
|
|
|
|
/* Texture source channels. */
|
|
typedef enum _gceTEXTURE_CHANNEL {
|
|
gcvFROM_COLOR = 0,
|
|
gcvFROM_ONE_MINUS_COLOR,
|
|
gcvFROM_ALPHA,
|
|
gcvFROM_ONE_MINUS_ALPHA
|
|
} gceTEXTURE_CHANNEL;
|
|
#endif /* gcdENABLE_3D */
|
|
|
|
/* Filter types. */
|
|
typedef enum _gceFILTER_TYPE {
|
|
gcvFILTER_SYNC = 0,
|
|
gcvFILTER_BLUR,
|
|
gcvFILTER_USER
|
|
} gceFILTER_TYPE;
|
|
|
|
/* Filter pass types. */
|
|
typedef enum _gceFILTER_PASS_TYPE {
|
|
gcvFILTER_HOR_PASS = 0,
|
|
gcvFILTER_VER_PASS
|
|
} gceFILTER_PASS_TYPE;
|
|
|
|
/* Endian hints. */
|
|
typedef enum _gceENDIAN_HINT {
|
|
gcvENDIAN_NO_SWAP = 0,
|
|
gcvENDIAN_SWAP_WORD = 1,
|
|
gcvENDIAN_SWAP_DWORD = 2,
|
|
gcvENDIAN_SWAP_QWORD = 3,
|
|
} gceENDIAN_HINT;
|
|
|
|
/* Tiling modes. */
|
|
typedef enum _gceTILING {
|
|
gcvINVALIDTILED = 0x0, /* Invalid tiling */
|
|
/* Tiling basic modes enum'ed in power of 2. */
|
|
gcvLINEAR = 0x1, /* No tiling. */
|
|
gcvTILED = 0x2, /* 4x4 tiling. */
|
|
gcvSUPERTILED = 0x4, /* 64x64 tiling. */
|
|
gcvMINORTILED = 0x8, /* 2x2 tiling. */
|
|
|
|
/* Tiling special layouts. */
|
|
gcvTILING_SPLIT_BUFFER = 0x10,
|
|
gcvTILING_X_MAJOR = 0x20,
|
|
gcvTILING_Y_MAJOR = 0x40,
|
|
gcvTILING_SWAP = 0x80,
|
|
|
|
/* Tiling combination layouts. */
|
|
gcvMULTI_TILED = gcvTILED | gcvTILING_SPLIT_BUFFER,
|
|
|
|
gcvMULTI_SUPERTILED = gcvSUPERTILED | gcvTILING_SPLIT_BUFFER,
|
|
|
|
gcvYMAJOR_SUPERTILED = gcvSUPERTILED | gcvTILING_Y_MAJOR,
|
|
|
|
gcvTILED_8X4 = 0x0100,
|
|
gcvTILED_4X8 = 0x0100 | gcvTILING_SWAP,
|
|
gcvTILED_8X8 = 0x0200,
|
|
gcvTILED_16X4 = 0x0400,
|
|
gcvTILED_32X4 = 0x0800,
|
|
gcvTILED_64X4 = 0x1000,
|
|
|
|
gcvTILED_8X8_XMAJOR = gcvTILED_8X8 | gcvTILING_X_MAJOR,
|
|
gcvTILED_8X8_YMAJOR = gcvTILED_8X8 | gcvTILING_Y_MAJOR,
|
|
|
|
gcvSUPERTILED_128B = 0x10000 | gcvSUPERTILED,
|
|
gcvSUPERTILED_256B = 0x20000 | gcvSUPERTILED,
|
|
} gceTILING;
|
|
|
|
typedef enum _gceCACHE_MODE {
|
|
gcvCACHE_NONE,
|
|
gcvCACHE_128,
|
|
gcvCACHE_256,
|
|
} gceCACHE_MODE;
|
|
|
|
#define DEFAULT_CACHE_MODE gcvCACHE_256
|
|
|
|
/* 2D pattern type. */
|
|
typedef enum _gce2D_PATTERN {
|
|
gcv2D_PATTERN_SOLID = 0,
|
|
gcv2D_PATTERN_MONO,
|
|
gcv2D_PATTERN_COLOR,
|
|
gcv2D_PATTERN_INVALID
|
|
} gce2D_PATTERN;
|
|
|
|
/* 2D source type. */
|
|
typedef enum _gce2D_SOURCE {
|
|
gcv2D_SOURCE_MASKED = 0,
|
|
gcv2D_SOURCE_MONO,
|
|
gcv2D_SOURCE_COLOR,
|
|
gcv2D_SOURCE_INVALID
|
|
} gce2D_SOURCE;
|
|
|
|
typedef enum _gceMMU_MODE {
|
|
gcvMMU_MODE_1K,
|
|
gcvMMU_MODE_4K,
|
|
} gceMMU_MODE;
|
|
|
|
/* gcdDUMP message type. */
|
|
typedef enum _gceDEBUG_MESSAGE_TYPE {
|
|
gcvMESSAGE_TEXT,
|
|
gcvMESSAGE_DUMP
|
|
} gceDEBUG_MESSAGE_TYPE;
|
|
|
|
/* Shading format. */
|
|
typedef enum _gceSHADING {
|
|
gcvSHADING_SMOOTH,
|
|
gcvSHADING_FLAT_D3D,
|
|
gcvSHADING_FLAT_OPENGL,
|
|
} gceSHADING;
|
|
|
|
/* Culling modes. */
|
|
typedef enum _gceCULL {
|
|
gcvCULL_NONE,
|
|
gcvCULL_CCW,
|
|
gcvCULL_CW,
|
|
} gceCULL;
|
|
|
|
/* Fill modes. */
|
|
typedef enum _gceFILL {
|
|
gcvFILL_POINT,
|
|
gcvFILL_WIRE_FRAME,
|
|
gcvFILL_SOLID,
|
|
} gceFILL;
|
|
|
|
/* Compare modes. */
|
|
typedef enum _gceCOMPARE {
|
|
gcvCOMPARE_INVALID = 0,
|
|
gcvCOMPARE_NEVER,
|
|
gcvCOMPARE_NOT_EQUAL,
|
|
gcvCOMPARE_LESS,
|
|
gcvCOMPARE_LESS_OR_EQUAL,
|
|
gcvCOMPARE_EQUAL,
|
|
gcvCOMPARE_GREATER,
|
|
gcvCOMPARE_GREATER_OR_EQUAL,
|
|
gcvCOMPARE_ALWAYS,
|
|
} gceCOMPARE;
|
|
|
|
/* Stencil modes. */
|
|
typedef enum _gceSTENCIL_MODE {
|
|
gcvSTENCIL_NONE,
|
|
gcvSTENCIL_SINGLE_SIDED,
|
|
gcvSTENCIL_DOUBLE_SIDED,
|
|
} gceSTENCIL_MODE;
|
|
|
|
/* Stencil operations. */
|
|
typedef enum _gceSTENCIL_OPERATION {
|
|
gcvSTENCIL_KEEP,
|
|
gcvSTENCIL_REPLACE,
|
|
gcvSTENCIL_ZERO,
|
|
gcvSTENCIL_INVERT,
|
|
gcvSTENCIL_INCREMENT,
|
|
gcvSTENCIL_DECREMENT,
|
|
gcvSTENCIL_INCREMENT_SATURATE,
|
|
gcvSTENCIL_DECREMENT_SATURATE,
|
|
gcvSTENCIL_OPERATION_INVALID = -1
|
|
} gceSTENCIL_OPERATION;
|
|
|
|
/* Stencil selection. */
|
|
typedef enum _gceSTENCIL_WHERE {
|
|
gcvSTENCIL_FRONT,
|
|
gcvSTENCIL_BACK,
|
|
} gceSTENCIL_WHERE;
|
|
|
|
/* Texture addressing selection. */
|
|
typedef enum _gceTEXTURE_WHICH {
|
|
gcvTEXTURE_S,
|
|
gcvTEXTURE_T,
|
|
gcvTEXTURE_R,
|
|
} gceTEXTURE_WHICH;
|
|
|
|
/* Texture addressing modes. */
|
|
typedef enum _gceTEXTURE_ADDRESSING {
|
|
gcvTEXTURE_INVALID = 0,
|
|
gcvTEXTURE_CLAMP,
|
|
gcvTEXTURE_WRAP,
|
|
gcvTEXTURE_MIRROR,
|
|
gcvTEXTURE_BORDER,
|
|
gcvTEXTURE_MIRROR_ONCE,
|
|
} gceTEXTURE_ADDRESSING;
|
|
|
|
/* Texture filters. */
|
|
typedef enum _gceTEXTURE_FILTER {
|
|
gcvTEXTURE_NONE,
|
|
gcvTEXTURE_POINT,
|
|
gcvTEXTURE_LINEAR,
|
|
gcvTEXTURE_ANISOTROPIC,
|
|
} gceTEXTURE_FILTER;
|
|
|
|
typedef enum _gceTEXTURE_COMPONENT {
|
|
gcvTEXTURE_COMPONENT_R,
|
|
gcvTEXTURE_COMPONENT_G,
|
|
gcvTEXTURE_COMPONENT_B,
|
|
gcvTEXTURE_COMPONENT_A,
|
|
|
|
gcvTEXTURE_COMPONENT_NUM,
|
|
} gceTEXTURE_COMPONENT;
|
|
|
|
/* Texture swizzle modes. */
|
|
typedef enum _gceTEXTURE_SWIZZLE {
|
|
gcvTEXTURE_SWIZZLE_R = 0,
|
|
gcvTEXTURE_SWIZZLE_G,
|
|
gcvTEXTURE_SWIZZLE_B,
|
|
gcvTEXTURE_SWIZZLE_A,
|
|
gcvTEXTURE_SWIZZLE_0,
|
|
gcvTEXTURE_SWIZZLE_1,
|
|
|
|
gcvTEXTURE_SWIZZLE_INVALID,
|
|
} gceTEXTURE_SWIZZLE;
|
|
|
|
typedef enum _gceTEXTURE_SRGBDECODE {
|
|
gcvTEXTURE_SRGB_INVALID = 0,
|
|
gcvTEXTURE_DECODE,
|
|
gcvTEXTURE_SKIP_DECODE,
|
|
} gceTEXTURE_SRGBDECODE;
|
|
|
|
typedef enum _gceTEXTURE_COMPARE_MODE {
|
|
gcvTEXTURE_COMPARE_MODE_INVALID = 0,
|
|
gcvTEXTURE_COMPARE_MODE_NONE,
|
|
gcvTEXTURE_COMPARE_MODE_REF,
|
|
} gceTEXTURE_COMPARE_MODE;
|
|
|
|
typedef enum _gceTEXTURE_DS_MODE {
|
|
gcvTEXTURE_DS_MODE_INVALID = 0,
|
|
gcvTEXTURE_DS_MODE_DEPTH = 1,
|
|
gcvTEXTURE_DS_MODE_STENCIL = 2,
|
|
} gceTEXTURE_DS_MODE;
|
|
|
|
typedef enum _gceTEXTURE_DS_TEX_MODE {
|
|
gcvTEXTURE_DS_TEXTURE_MODE_LUMINANCE = 0,
|
|
gcvTEXTURE_DS_TEXTURE_MODE_INTENSITY,
|
|
gcvTEXTURE_DS_TEXTURE_MODE_ALPHA,
|
|
gcvTEXTURE_DS_TEXTURE_MODE_RED,
|
|
|
|
gcvTEXTURE_DS_TEXTURE_MODE_INVALID,
|
|
} gceTEXTURE_DS_TEX_MODE;
|
|
|
|
/* Texture stage */
|
|
typedef enum _gceTEXTURE_STAGE {
|
|
gcvTEXTURE_STAGE_INVALID = -1,
|
|
gcvTEXTURE_STAGE_VS = 0,
|
|
gcvTEXTURE_STAGE_TCS,
|
|
gcvTEXTURE_STAGE_TES,
|
|
gcvTEXTURE_STAGE_GS,
|
|
gcvTEXTURE_STAGE_FS,
|
|
gcvTEXTURE_STAGE_CS,
|
|
|
|
gcvTEXTURE_STAGE_LAST
|
|
} gceTEXTURE_STAGE;
|
|
|
|
/* Pixel output swizzle modes. */
|
|
typedef enum _gcePIXEL_SWIZZLE {
|
|
gcvPIXEL_SWIZZLE_R = gcvTEXTURE_SWIZZLE_R,
|
|
gcvPIXEL_SWIZZLE_G = gcvTEXTURE_SWIZZLE_G,
|
|
gcvPIXEL_SWIZZLE_B = gcvTEXTURE_SWIZZLE_B,
|
|
gcvPIXEL_SWIZZLE_A = gcvTEXTURE_SWIZZLE_A,
|
|
|
|
gcvPIXEL_SWIZZLE_INVALID,
|
|
} gcePIXEL_SWIZZLE;
|
|
|
|
/* Primitive types. */
|
|
typedef enum _gcePRIMITIVE {
|
|
gcvPRIMITIVE_POINT_LIST,
|
|
gcvPRIMITIVE_LINE_LIST,
|
|
gcvPRIMITIVE_LINE_STRIP,
|
|
gcvPRIMITIVE_LINE_LOOP,
|
|
gcvPRIMITIVE_TRIANGLE_LIST,
|
|
gcvPRIMITIVE_TRIANGLE_STRIP,
|
|
gcvPRIMITIVE_TRIANGLE_FAN,
|
|
gcvPRIMITIVE_RECTANGLE,
|
|
gcvPRIMITIVE_LINES_ADJACENCY,
|
|
gcvPRIMITIVE_LINE_STRIP_ADJACENCY,
|
|
gcvPRIMITIVE_TRIANGLES_ADJACENCY,
|
|
gcvPRIMITIVE_TRIANGLE_STRIP_ADJACENCY,
|
|
gcvPRIMITIVE_PATCH_LIST,
|
|
} gcePRIMITIVE;
|
|
|
|
/* Index types. */
|
|
typedef enum _gceINDEX_TYPE {
|
|
gcvINDEX_8,
|
|
gcvINDEX_16,
|
|
gcvINDEX_32,
|
|
} gceINDEX_TYPE;
|
|
|
|
/* Multi GPU rendering modes. */
|
|
typedef enum _gceMULTI_GPU_RENDERING_MODE {
|
|
gcvMULTI_GPU_RENDERING_MODE_OFF,
|
|
gcvMULTI_GPU_RENDERING_MODE_SPLIT_WIDTH,
|
|
gcvMULTI_GPU_RENDERING_MODE_SPLIT_HEIGHT,
|
|
gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_64x64,
|
|
gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x64,
|
|
gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x128,
|
|
gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED,
|
|
gcvMULTI_GPU_RENDERING_MODE_INVALID
|
|
} gceMULTI_GPU_RENDERING_MODE;
|
|
|
|
typedef enum _gceMACHINECODE {
|
|
gcvMACHINECODE_ANTUTU0 = 0x0,
|
|
|
|
gcvMACHINECODE_GLB27_RELEASE_0,
|
|
|
|
gcvMACHINECODE_GLB25_RELEASE_0,
|
|
gcvMACHINECODE_GLB25_RELEASE_1,
|
|
|
|
gcvMACHINECODE_COUNT,
|
|
|
|
/* flag as dynamic allocation for shader partial replace */
|
|
gcvSHADER_SRC_PARTIAL_REPLACE,
|
|
} gceMACHINECODE;
|
|
|
|
typedef enum _gceUNIFORMCVT {
|
|
gcvUNIFORMCVT_NONE = 0,
|
|
gcvUNIFORMCVT_TO_BOOL,
|
|
gcvUNIFORMCVT_TO_FLOAT,
|
|
} gceUNIFORMCVT;
|
|
|
|
typedef enum _gceHAL_ARG_VERSION {
|
|
gcvHAL_ARG_VERSION_V1 = 0x0,
|
|
gcvHAL_ARG_VERSION_V2,
|
|
} gceHAL_ARG_VERSION;
|
|
|
|
|
|
/** endian mode for each 2Bytes
|
|
* endian mode endian
|
|
* mode0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
* mode1: 1 0 3 2 5 4 7 6 9 8 11 10 13 12 15 14
|
|
* mode2: 2 3 0 1 6 7 4 5 10 11 8 9 14 15 12 13
|
|
* mode3: 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12
|
|
* mode4: 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3
|
|
* mode5: 13 12 15 14 9 8 11 10 5 4 7 6 1 0 3 2
|
|
* mode6: 14 15 12 13 10 11 8 9 6 7 4 5 2 3 0 1
|
|
* mode7: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
|
|
**/
|
|
typedef enum _gceENDIAN_MODE {
|
|
gcvENDIAN_MODE0 = 0x0, /* endian mode0 */
|
|
gcvENDIAN_MODE1 = 0x1, /* endian mode1 */
|
|
gcvENDIAN_MODE2 = 0x2, /* endian mode2 */
|
|
gcvENDIAN_MODE3 = 0x3, /* endian mode3 */
|
|
gcvENDIAN_MODE4 = 0x4, /* endian mode4 */
|
|
gcvENDIAN_MODE5 = 0x5, /* endian mode5 */
|
|
gcvENDIAN_MODE6 = 0x6, /* endian mode6 */
|
|
gcvENDIAN_MODE7 = 0x7, /* endian mode7 */
|
|
} gceENDIAN_MODE;
|
|
|
|
typedef enum _gceHW_FE_TYPE {
|
|
gcvHW_FE_WAIT_LINK,
|
|
gcvHW_FE_ASYNC,
|
|
gcvHW_FE_MULTI_CHANNEL,
|
|
gcvHW_FE_END,
|
|
} gceHW_FE_TYPE;
|
|
|
|
typedef enum _gceMCFE_CHANNEL_TYPE {
|
|
gcvMCFE_CHANNEL_NONE = 0,
|
|
gcvMCFE_CHANNEL_SYSTEM,
|
|
gcvMCFE_CHANNEL_SHADER,
|
|
gcvMCFE_CHANNEL_NN,
|
|
gcvMCFE_CHANNEL_TP,
|
|
|
|
gcvMCFE_CHANNEL_3DBLIT = 128,
|
|
} gceMCFE_CHANNEL_TYPE;
|
|
|
|
typedef enum _gcePAGE_TYPE {
|
|
gcvPAGE_TYPE_4K,
|
|
gcvPAGE_TYPE_64K,
|
|
gcvPAGE_TYPE_1M,
|
|
gcvPAGE_TYPE_16M,
|
|
} gcePAGE_TYPE;
|
|
|
|
typedef enum _gceAREA_TYPE {
|
|
gcvAREA_TYPE_UNKNOWN = 0,
|
|
gcvAREA_TYPE_FLATMAP,
|
|
gcvAREA_TYPE_1M,
|
|
gcvAREA_TYPE_4K,
|
|
} gceAREA_TYPE;
|
|
|
|
typedef enum _gce2D_U8ToU10_CONVERSION_MODE
|
|
{
|
|
gcvADD_LOWER_BITS,
|
|
gcvNOT_ADD_LOWER_BITS,
|
|
gcvNOT_ADD_HIGHER_BITS
|
|
} gce2D_U8ToU10_CONVERSION_MODE;
|
|
|
|
typedef enum _gce2D_NORMALIZATION_MODE
|
|
{
|
|
gcvNORMALIZATION_STD_Z_SCORE,
|
|
gcvNORMALIZATION_Z_SCORE,
|
|
gcvNORMALIZATION_MIN_MAX,
|
|
} gce2D_NORMALIZATION_MODE;
|
|
|
|
typedef enum _gce2D_MULTICORE_MODE
|
|
{
|
|
gcvMULTICORE_COMBINED_MODE = 0,
|
|
gcvMULTICORE_INDEPENDENT_MODE
|
|
}gce2D_MULTICORE_MODE;
|
|
|
|
typedef enum _gce2D_MULTICORE_INDEX
|
|
{
|
|
gcv2D_CORE_0 = 0,
|
|
gcv2D_CORE_1,
|
|
gcv2D_CORE_2,
|
|
gcv2D_CORE_3,
|
|
}gce2D_MULTICORE_INDEX;
|
|
|
|
/* Available enumeration values that can be used to set 2D state */
|
|
typedef enum _gce2D_STATE_KEY
|
|
{
|
|
gcvNORMALIZATION_ENABLE = 0,
|
|
gcvNORMALIZATION_MODE,
|
|
gcvNORMALIZATION_MAXMINRECIPROCAL,
|
|
gcvNORMALIZATION_MINVALUE,
|
|
gcvNORMALIZATION_MEANVALUE,
|
|
gcvNORMALIZATION_STDRECIPROCAL,
|
|
gcvQUANTIZATION_STEPRECIPROCAL,
|
|
gcvQUANTIZATION_BYPASSSTEPQUANTIZATION,
|
|
gcvUINT8_2_UINT10_CONVERSION_MODE,
|
|
gcvMulticoreMode,
|
|
|
|
gcvSTATE_TAIL,
|
|
} gce2D_STATE_KEY;
|
|
|
|
/*******************************************************************************
|
|
** Broadcast interface.
|
|
*/
|
|
|
|
typedef enum _gceBROADCAST {
|
|
/* GPU might be idle. */
|
|
gcvBROADCAST_GPU_IDLE,
|
|
|
|
/* A commit is going to happen. */
|
|
gcvBROADCAST_GPU_COMMIT,
|
|
|
|
/* GPU seems to be stuck. */
|
|
gcvBROADCAST_GPU_STUCK,
|
|
|
|
/* First process gets attached. */
|
|
gcvBROADCAST_FIRST_PROCESS,
|
|
|
|
/* Last process gets detached. */
|
|
gcvBROADCAST_LAST_PROCESS,
|
|
|
|
/* AXI bus error. */
|
|
gcvBROADCAST_AXI_BUS_ERROR,
|
|
|
|
/* Out of memory. */
|
|
gcvBROADCAST_OUT_OF_MEMORY,
|
|
} gceBROADCAST;
|
|
|
|
/* Notifications. */
|
|
typedef enum _gceNOTIFY {
|
|
gcvNOTIFY_INTERRUPT,
|
|
gcvNOTIFY_COMMAND_QUEUE,
|
|
} gceNOTIFY;
|
|
|
|
/* Flush flags. */
|
|
typedef enum _gceKERNEL_FLUSH {
|
|
gcvFLUSH_COLOR = 0x01,
|
|
gcvFLUSH_DEPTH = 0x02,
|
|
gcvFLUSH_TEXTURE = 0x04,
|
|
gcvFLUSH_2D = 0x08,
|
|
gcvFLUSH_L2 = 0x10,
|
|
gcvFLUSH_TILE_STATUS = 0x20,
|
|
gcvFLUSH_ICACHE = 0x40,
|
|
gcvFLUSH_TXDESC = 0x80,
|
|
gcvFLUSH_FENCE = 0x100,
|
|
gcvFLUSH_VERTEX = 0x200,
|
|
gcvFLUSH_TFBHEADER = 0x400,
|
|
gcvFLUSH_ALL = gcvFLUSH_COLOR
|
|
| gcvFLUSH_DEPTH
|
|
| gcvFLUSH_TEXTURE
|
|
| gcvFLUSH_2D
|
|
| gcvFLUSH_L2
|
|
| gcvFLUSH_TILE_STATUS
|
|
| gcvFLUSH_ICACHE
|
|
| gcvFLUSH_TXDESC
|
|
| gcvFLUSH_FENCE
|
|
| gcvFLUSH_VERTEX
|
|
| gcvFLUSH_TFBHEADER
|
|
} gceKERNEL_FLUSH;
|
|
|
|
typedef enum _gceCOUNTER {
|
|
gcvCOUNTER_FRONT_END,
|
|
gcvCOUNTER_VERTEX_SHADER,
|
|
gcvCOUNTER_PRIMITIVE_ASSEMBLY,
|
|
gcvCOUNTER_SETUP,
|
|
gcvCOUNTER_RASTERIZER,
|
|
gcvCOUNTER_PIXEL_SHADER,
|
|
gcvCOUNTER_TEXTURE,
|
|
gcvCOUNTER_PIXEL_ENGINE,
|
|
gcvCOUNTER_MEMORY_CONTROLLER_COLOR,
|
|
gcvCOUNTER_MEMORY_CONTROLLER_DEPTH,
|
|
gcvCOUNTER_HOST_INTERFACE0,
|
|
gcvCOUNTER_HOST_INTERFACE1,
|
|
gcvCOUNTER_GPUL2_CACHE,
|
|
gcvCOUNTER_COUNT
|
|
} gceCOUNTER;
|
|
|
|
typedef enum _gceProfilerClient {
|
|
gcvCLIENT_OPENGLES11 = 1,
|
|
gcvCLIENT_OPENGLES,
|
|
gcvCLIENT_OPENGL,
|
|
gcvCLIENT_OPENVG,
|
|
gcvCLIENT_OPENCL,
|
|
gcvCLIENT_OPENVX,
|
|
gcvCLIENT_OPENVK,
|
|
} gceProfilerClient;
|
|
|
|
typedef enum _gceCOUNTER_OPTYPE {
|
|
gcvCOUNTER_OP_DRAW = 0,
|
|
gcvCOUNTER_OP_BLT = 1,
|
|
gcvCOUNTER_OP_COMPUTE = 2,
|
|
gcvCOUNTER_OP_RS = 3,
|
|
gcvCOUNTER_OP_FINISH = 4,
|
|
gcvCOUNTER_OP_FRAME = 5,
|
|
gcvCOUNTER_OP_OPERATION = 6,
|
|
gcvCOUNTER_OP_NONE = 7
|
|
}
|
|
gceCOUNTER_OPTYPE;
|
|
|
|
typedef enum _gceProbeStatus {
|
|
gcvPROBE_Disabled = 0,
|
|
gcvPROBE_Paused = 1,
|
|
gcvPROBE_Enabled = 2,
|
|
} gceProbeStatus;
|
|
|
|
typedef enum _gceProbeCmd {
|
|
gcvPROBECMD_BEGIN = 0,
|
|
gcvPROBECMD_PAUSE = 1,
|
|
gcvPROBECMD_RESUME = 2,
|
|
gcvPROBECMD_END = 3,
|
|
} gceProbeCmd;
|
|
|
|
/*******************************************************************************
|
|
* Events. *********************************************************************
|
|
*/
|
|
|
|
typedef enum _halEventType {
|
|
/* Keyboard event. */
|
|
HAL_KEYBOARD,
|
|
|
|
/* Mouse move event. */
|
|
HAL_POINTER,
|
|
|
|
/* Mouse button event. */
|
|
HAL_BUTTON,
|
|
|
|
/* Application close event. */
|
|
HAL_CLOSE,
|
|
|
|
/* Application window has been updated. */
|
|
HAL_WINDOW_UPDATE
|
|
} halEventType;
|
|
|
|
/* Scancodes for keyboard. */
|
|
typedef enum _halKeys {
|
|
HAL_UNKNOWN = -1,
|
|
|
|
HAL_BACKSPACE = 0x08,
|
|
HAL_TAB,
|
|
HAL_ENTER = 0x0D,
|
|
HAL_ESCAPE = 0x1B,
|
|
|
|
HAL_SPACE = 0x20,
|
|
HAL_SINGLEQUOTE = 0x27,
|
|
HAL_PAD_ASTERISK = 0x2A,
|
|
HAL_COMMA = 0x2C,
|
|
HAL_HYPHEN,
|
|
HAL_PERIOD,
|
|
HAL_SLASH,
|
|
HAL_0,
|
|
HAL_1,
|
|
HAL_2,
|
|
HAL_3,
|
|
HAL_4,
|
|
HAL_5,
|
|
HAL_6,
|
|
HAL_7,
|
|
HAL_8,
|
|
HAL_9,
|
|
HAL_SEMICOLON = 0x3B,
|
|
HAL_EQUAL = 0x3D,
|
|
HAL_A = 0x41,
|
|
HAL_B,
|
|
HAL_C,
|
|
HAL_D,
|
|
HAL_E,
|
|
HAL_F,
|
|
HAL_G,
|
|
HAL_H,
|
|
HAL_I,
|
|
HAL_J,
|
|
HAL_K,
|
|
HAL_L,
|
|
HAL_M,
|
|
HAL_N,
|
|
HAL_O,
|
|
HAL_P,
|
|
HAL_Q,
|
|
HAL_R,
|
|
HAL_S,
|
|
HAL_T,
|
|
HAL_U,
|
|
HAL_V,
|
|
HAL_W,
|
|
HAL_X,
|
|
HAL_Y,
|
|
HAL_Z,
|
|
HAL_LBRACKET,
|
|
HAL_BACKSLASH,
|
|
HAL_RBRACKET,
|
|
HAL_BACKQUOTE = 0x60,
|
|
|
|
HAL_F1 = 0x80,
|
|
HAL_F2,
|
|
HAL_F3,
|
|
HAL_F4,
|
|
HAL_F5,
|
|
HAL_F6,
|
|
HAL_F7,
|
|
HAL_F8,
|
|
HAL_F9,
|
|
HAL_F10,
|
|
HAL_F11,
|
|
HAL_F12,
|
|
|
|
HAL_LCTRL,
|
|
HAL_RCTRL,
|
|
HAL_LSHIFT,
|
|
HAL_RSHIFT,
|
|
HAL_LALT,
|
|
HAL_RALT,
|
|
HAL_CAPSLOCK,
|
|
HAL_NUMLOCK,
|
|
HAL_SCROLLLOCK,
|
|
HAL_PAD_0,
|
|
HAL_PAD_1,
|
|
HAL_PAD_2,
|
|
HAL_PAD_3,
|
|
HAL_PAD_4,
|
|
HAL_PAD_5,
|
|
HAL_PAD_6,
|
|
HAL_PAD_7,
|
|
HAL_PAD_8,
|
|
HAL_PAD_9,
|
|
HAL_PAD_HYPHEN,
|
|
HAL_PAD_PLUS,
|
|
HAL_PAD_SLASH,
|
|
HAL_PAD_PERIOD,
|
|
HAL_PAD_ENTER,
|
|
HAL_SYSRQ,
|
|
HAL_PRNTSCRN,
|
|
HAL_BREAK,
|
|
HAL_UP,
|
|
HAL_LEFT,
|
|
HAL_RIGHT,
|
|
HAL_DOWN,
|
|
HAL_HOME,
|
|
HAL_END,
|
|
HAL_PGUP,
|
|
HAL_PGDN,
|
|
HAL_INSERT,
|
|
HAL_DELETE,
|
|
HAL_LWINDOW,
|
|
HAL_RWINDOW,
|
|
HAL_MENU,
|
|
HAL_POWER,
|
|
HAL_SLEEP,
|
|
HAL_WAKE
|
|
} halKeys;
|
|
|
|
/*!
|
|
* @brief Command codes between kernel module and TrustZone
|
|
* @discussion
|
|
* Critical services must be done in TrustZone to avoid sensitive content leak.
|
|
* Most of kernel module is kept in non-Secure os to minimize code in TrustZone.
|
|
*/
|
|
typedef enum kernel_packet_command {
|
|
KERNEL_START_COMMAND,
|
|
KERNEL_SUBMIT,
|
|
KERNEL_MAP_MEMORY, /* */
|
|
KERNEL_UNMAP_MEMORY,
|
|
KERNEL_ALLOCATE_SECRUE_MEMORY, /*! Security memory management. */
|
|
KERNEL_FREE_SECURE_MEMORY,
|
|
KERNEL_EXECUTE, /* Execute a command buffer. */
|
|
KERNEL_DUMP_MMU_EXCEPTION,
|
|
KERNEL_HANDLE_MMU_EXCEPTION,
|
|
KERNEL_READ_MMU_EXCEPTION,
|
|
} kernel_packet_command_t;
|
|
|
|
enum {
|
|
gcvTA_COMMAND_INIT,
|
|
gcvTA_COMMAND_DISPATCH,
|
|
|
|
gcvTA_CALLBACK_ALLOC_SECURE_MEM,
|
|
gcvTA_CALLBACK_FREE_SECURE_MEM,
|
|
};
|
|
|
|
typedef enum {
|
|
gcvFENCE_TYPE_READ = 0x1,
|
|
gcvFENCE_TYPE_WRITE = 0x2,
|
|
gcvFENCE_TYPE_ALL = gcvFENCE_TYPE_READ | gcvFENCE_TYPE_WRITE,
|
|
gcvFNECE_TYPE_INVALID = 0x10000,
|
|
} gceFENCE_TYPE;
|
|
|
|
typedef enum _gceTLS_KEY {
|
|
gcvTLS_KEY_EGL,
|
|
gcvTLS_KEY_OPENGL_ES,
|
|
gcvTLS_KEY_OPENVG,
|
|
gcvTLS_KEY_OPENGL,
|
|
gcvTLS_KEY_OPENCL,
|
|
gcvTLS_KEY_OPENVX,
|
|
|
|
gcvTLS_KEY_COUNT
|
|
} gceTLS_KEY;
|
|
|
|
typedef enum _gcePLS_VALUE {
|
|
gcePLS_VALUE_EGL_DISPLAY_INFO,
|
|
gcePLS_VALUE_EGL_CONFIG_FORMAT_INFO,
|
|
gcePLS_VALUE_EGL_DESTRUCTOR_INFO,
|
|
} gcePLS_VALUE;
|
|
|
|
#if gcdENABLE_3D
|
|
/* Blending functions. */
|
|
typedef enum _gceBLEND_FUNCTION {
|
|
gcvBLEND_ZERO,
|
|
gcvBLEND_ONE,
|
|
gcvBLEND_SOURCE_COLOR,
|
|
gcvBLEND_INV_SOURCE_COLOR,
|
|
gcvBLEND_SOURCE_ALPHA,
|
|
gcvBLEND_INV_SOURCE_ALPHA,
|
|
gcvBLEND_TARGET_COLOR,
|
|
gcvBLEND_INV_TARGET_COLOR,
|
|
gcvBLEND_TARGET_ALPHA,
|
|
gcvBLEND_INV_TARGET_ALPHA,
|
|
gcvBLEND_SOURCE_ALPHA_SATURATE,
|
|
gcvBLEND_CONST_COLOR,
|
|
gcvBLEND_INV_CONST_COLOR,
|
|
gcvBLEND_CONST_ALPHA,
|
|
gcvBLEND_INV_CONST_ALPHA,
|
|
} gceBLEND_FUNCTION;
|
|
|
|
/* Blending modes. */
|
|
typedef enum _gceBLEND_MODE {
|
|
gcvBLEND_ADD = 0,
|
|
gcvBLEND_SUBTRACT,
|
|
gcvBLEND_REVERSE_SUBTRACT,
|
|
gcvBLEND_MIN,
|
|
gcvBLEND_MAX,
|
|
gcvBLEND_MULTIPLY,
|
|
gcvBLEND_SCREEN,
|
|
gcvBLEND_OVERLAY,
|
|
gcvBLEND_DARKEN,
|
|
gcvBLEND_LIGHTEN,
|
|
gcvBLEND_COLORDODGE,
|
|
gcvBLEND_COLORBURN,
|
|
gcvBLEND_HARDLIGHT,
|
|
gcvBLEND_SOFTLIGHT,
|
|
gcvBLEND_DIFFERENCE,
|
|
gcvBLEND_EXCLUSION,
|
|
gcvBLEND_HSL_HUE,
|
|
gcvBLEND_HSL_SATURATION,
|
|
gcvBLEND_HSL_COLOR,
|
|
gcvBLEND_HSL_LUMINOSITY,
|
|
|
|
gcvBLEND_TOTAL
|
|
} gceBLEND_MODE;
|
|
|
|
/* Depth modes. */
|
|
typedef enum _gceDEPTH_MODE {
|
|
gcvDEPTH_NONE,
|
|
gcvDEPTH_Z,
|
|
gcvDEPTH_W,
|
|
} gceDEPTH_MODE;
|
|
#endif /* gcdENABLE_3D */
|
|
|
|
/* API flags. */
|
|
typedef enum _gceAPI {
|
|
gcvAPI_D3D = 1,
|
|
gcvAPI_OPENGL_ES11,
|
|
gcvAPI_OPENGL_ES20,
|
|
gcvAPI_OPENGL_ES30,
|
|
gcvAPI_OPENGL_ES31,
|
|
gcvAPI_OPENGL_ES32,
|
|
gcvAPI_OPENGL,
|
|
gcvAPI_OPENVG,
|
|
gcvAPI_OPENCL,
|
|
gcvAPI_OPENVK,
|
|
} gceAPI;
|
|
|
|
typedef enum _gceWHERE {
|
|
gcvWHERE_COMMAND_PREFETCH = 0,
|
|
gcvWHERE_COMMAND,
|
|
gcvWHERE_RASTER,
|
|
gcvWHERE_PIXEL,
|
|
gcvWHERE_BLT,
|
|
} gceWHERE;
|
|
|
|
typedef enum _gceHOW {
|
|
gcvHOW_SEMAPHORE = 0x1,
|
|
gcvHOW_STALL = 0x2,
|
|
gcvHOW_SEMAPHORE_STALL = 0x3,
|
|
} gceHOW;
|
|
|
|
typedef enum _gceSignalHandlerType {
|
|
gcvHANDLE_SIGFPE_WHEN_SIGNAL_CODE_IS_0 = 0x1,
|
|
} gceSignalHandlerType;
|
|
|
|
typedef enum _gceFILE_MODE {
|
|
gcvFILE_CREATE = 0,
|
|
gcvFILE_APPEND,
|
|
gcvFILE_READ,
|
|
gcvFILE_CREATETEXT,
|
|
gcvFILE_APPENDTEXT,
|
|
gcvFILE_READTEXT,
|
|
gcvFILE_READWRITE,
|
|
} gceFILE_MODE;
|
|
|
|
typedef enum _gceFILE_WHENCE {
|
|
gcvFILE_SEEK_SET,
|
|
gcvFILE_SEEK_CUR,
|
|
gcvFILE_SEEK_END
|
|
} gceFILE_WHENCE;
|
|
|
|
/* Color format classes. */
|
|
typedef enum _gceFORMAT_CLASS {
|
|
gcvFORMAT_CLASS_RGBA = 4500,
|
|
gcvFORMAT_CLASS_YUV,
|
|
gcvFORMAT_CLASS_INDEX,
|
|
gcvFORMAT_CLASS_LUMINANCE,
|
|
gcvFORMAT_CLASS_BUMP,
|
|
gcvFORMAT_CLASS_DEPTH,
|
|
gcvFORMAT_CLASS_ASTC,
|
|
gcvFORMAT_CLASS_COMPRESSED,
|
|
gcvFORMAT_CLASS_OTHER,
|
|
gcvFORMAT_CLASS_INTENSITY
|
|
} gceFORMAT_CLASS;
|
|
|
|
/* Color format data type */
|
|
typedef enum _gceFORMAT_DATATYPE {
|
|
gcvFORMAT_DATATYPE_UNSIGNED_NORMALIZED,
|
|
gcvFORMAT_DATATYPE_SIGNED_NORMALIZED,
|
|
gcvFORMAT_DATATYPE_UNSIGNED_INTEGER,
|
|
gcvFORMAT_DATATYPE_SIGNED_INTEGER,
|
|
gcvFORMAT_DATATYPE_FLOAT16,
|
|
gcvFORMAT_DATATYPE_FLOAT32,
|
|
gcvFORMAT_DATATYPE_FLOAT_E5B9G9R9,
|
|
gcvFORMAT_DATATYPE_FLOAT_B10G11R11F,
|
|
gcvFORMAT_DATATYPE_INDEX,
|
|
gcvFORMAT_DATATYPE_SRGB,
|
|
gcvFORMAT_DATATYPE_FLOAT32_UINT,
|
|
} gceFORMAT_DATATYPE;
|
|
|
|
typedef enum _gceORIENTATION {
|
|
gcvORIENTATION_TOP_BOTTOM,
|
|
gcvORIENTATION_BOTTOM_TOP,
|
|
} gceORIENTATION;
|
|
|
|
/* Special enums for width field in gcsFORMAT_COMPONENT. */
|
|
typedef enum _gceCOMPONENT_CONTROL {
|
|
gcvCOMPONENT_NOTPRESENT = 0x00,
|
|
gcvCOMPONENT_DONTCARE = 0x80,
|
|
gcvCOMPONENT_WIDTHMASK = 0x7F,
|
|
gcvCOMPONENT_ODD = 0x80
|
|
} gceCOMPONENT_CONTROL;
|
|
|
|
/* User option. */
|
|
typedef enum _gceDEBUG_MSG {
|
|
gcvDEBUG_MSG_NONE,
|
|
gcvDEBUG_MSG_ERROR,
|
|
gcvDEBUG_MSG_WARNING
|
|
} gceDEBUG_MSG;
|
|
|
|
/* Compressed format now was defined same as dec400d, should be general. */
|
|
typedef enum _VIV_COMPRESS_FMT {
|
|
_VIV_CFMT_ARGB8 = 0,
|
|
_VIV_CFMT_XRGB8,
|
|
_VIV_CFMT_AYUV,
|
|
_VIV_CFMT_UYVY,
|
|
_VIV_CFMT_YUY2,
|
|
_VIV_CFMT_YUV_ONLY,
|
|
_VIV_CFMT_UV_MIX,
|
|
_VIV_CFMT_ARGB4,
|
|
_VIV_CFMT_XRGB4,
|
|
_VIV_CFMT_A1R5G5B5,
|
|
_VIV_CFMT_X1R5G5B5,
|
|
_VIV_CFMT_R5G6B5,
|
|
_VIV_CFMT_Z24S8,
|
|
_VIV_CFMT_Z24,
|
|
_VIV_CFMT_Z16,
|
|
_VIV_CFMT_A2R10G10B10,
|
|
_VIV_CFMT_BAYER,
|
|
_VIV_CFMT_SIGNED_BAYER,
|
|
_VIV_CFMT_VAA16,
|
|
_VIV_CFMT_S8,
|
|
|
|
_VIV_CFMT_MAX,
|
|
} _VIV_COMPRESS_FMT;
|
|
|
|
typedef enum _gcePROGRAM_STAGE {
|
|
gcvPROGRAM_STAGE_VERTEX = 0x0,
|
|
gcvPROGRAM_STAGE_TCS = 0x1,
|
|
gcvPROGRAM_STAGE_TES = 0x2,
|
|
gcvPROGRAM_STAGE_GEOMETRY = 0x3,
|
|
gcvPROGRAM_STAGE_GPIPE_COUNT = 0x4,
|
|
gcvPROGRAM_STAGE_FRAGMENT = 0x4,
|
|
gcvPROGRAM_STAGE_GRAPHICS_COUNT = 0x5,
|
|
gcvPROGRAM_STAGE_COMPUTE = 0x5,
|
|
gcvPROGRAM_STAGE_OPENCL = 0x6,
|
|
gcvPROGRAM_STAGE_LAST
|
|
} gcePROGRAM_STAGE;
|
|
|
|
typedef enum _gcePROGRAM_STAGE_BIT {
|
|
gcvPROGRAM_STAGE_VERTEX_BIT = 1 << gcvPROGRAM_STAGE_VERTEX,
|
|
gcvPROGRAM_STAGE_TCS_BIT = 1 << gcvPROGRAM_STAGE_TCS,
|
|
gcvPROGRAM_STAGE_TES_BIT = 1 << gcvPROGRAM_STAGE_TES,
|
|
gcvPROGRAM_STAGE_GEOMETRY_BIT = 1 << gcvPROGRAM_STAGE_GEOMETRY,
|
|
gcvPROGRAM_STAGE_FRAGMENT_BIT = 1 << gcvPROGRAM_STAGE_FRAGMENT,
|
|
gcvPROGRAM_STAGE_COMPUTE_BIT = 1 << gcvPROGRAM_STAGE_COMPUTE,
|
|
gcvPROGRAM_STAGE_OPENCL_BIT = 1 << gcvPROGRAM_STAGE_OPENCL,
|
|
} gcePROGRAM_STAGE_BIT;
|
|
|
|
typedef enum _gceBLIT_FLAG {
|
|
gcvBLIT_FLAG_SKIP_DEPTH_WRITE = 1 << 0,
|
|
gcvBLIT_FLAG_SKIP_STENCIL_WRITE = 1 << 1,
|
|
} gceBLIT_FLAG;
|
|
|
|
/* Clear flags. */
|
|
typedef enum _gceCLEAR {
|
|
gcvCLEAR_COLOR = 0x1,
|
|
gcvCLEAR_DEPTH = 0x2,
|
|
gcvCLEAR_STENCIL = 0x4,
|
|
gcvCLEAR_HZ = 0x8,
|
|
gcvCLEAR_WITH_GPU_ONLY = 0x100,
|
|
gcvCLEAR_WITH_CPU_ONLY = 0x200,
|
|
gcvCLEAR_MULTI_SLICES = 0x400,
|
|
} gceCLEAR;
|
|
|
|
typedef enum _gceBLIT_TYPE {
|
|
gcvBLIT_DRAW_CLEAR = 0,
|
|
gcvBLIT_DRAW_BLIT = 1,
|
|
gcvBLIT_DRAW_BLIT_DEPTH = 2,
|
|
gcvBLIT_COMPUTE_BLIT = 3,
|
|
|
|
/* last number, not a real type */
|
|
gcvBLIT_NUM_TYPE
|
|
} gceBLIT_TYPE;
|
|
|
|
typedef enum _gceSPLIT_DRAW_TYPE {
|
|
gcvSPLIT_DRAW_UNKNOWN = 0x0,
|
|
gcvSPLIT_DRAW_1,
|
|
gcvSPLIT_DRAW_2,
|
|
gcvSPLIT_DRAW_3,
|
|
gcvSPLIT_DRAW_4,
|
|
gcvSPLIT_DRAW_XFB,
|
|
gcvSPLIT_DRAW_INDEX_FETCH,
|
|
gcvSPLIT_DRAW_TCS,
|
|
gcvSPLIT_DRAW_STIPPLE,
|
|
gcvSPLIT_DRAW_WIDE_LINE,
|
|
gcvSPLIT_DRAW_LINES_HW_ZERO_AREA_LINE_PATCH,
|
|
gcvSPLIT_DRAW_LAST
|
|
} gceSPLIT_DRAW_TYPE;
|
|
|
|
/* Blending targets. */
|
|
typedef enum _gceBLEND_UNIT {
|
|
gcvBLEND_SOURCE,
|
|
gcvBLEND_TARGET,
|
|
} gceBLEND_UNIT;
|
|
|
|
typedef enum _gceXfbCmd {
|
|
gcvXFBCMD_BEGIN = 0,
|
|
gcvXFBCMD_PAUSE = 1,
|
|
gcvXFBCMD_RESUME = 2,
|
|
gcvXFBCMD_END = 3,
|
|
gcvXFBCMD_PAUSE_INCOMMIT = 4,
|
|
gcvXFBCMD_RESUME_INCOMMIT = 5,
|
|
gcvXFBCMD_INVALID = 6,
|
|
} gceXfbCmd;
|
|
|
|
typedef enum _gceXfbStatus {
|
|
gcvXFB_Disabled = 0,
|
|
gcvXFB_Paused,
|
|
gcvXFB_Enabled,
|
|
} gceXfbStatus;
|
|
|
|
typedef enum _gceQueryStatus {
|
|
gcvQUERY_Disabled = 0,
|
|
gcvQUERY_Paused = 1,
|
|
gcvQUERY_Enabled = 2,
|
|
} gceQueryStatus;
|
|
|
|
typedef enum _gceQueryCmd {
|
|
gcvQUERYCMD_BEGIN = 0,
|
|
gcvQUERYCMD_PAUSE = 1,
|
|
gcvQUERYCMD_RESUME = 2,
|
|
gcvQUERYCMD_END = 3,
|
|
gcvQUERYCMD_INVALID = 4,
|
|
} gceQueryCmd;
|
|
|
|
typedef enum _gceQueryType {
|
|
gcvQUERY_OCCLUSION = 0,
|
|
gcvQUERY_XFB_WRITTEN = 1,
|
|
gcvQUERY_PRIM_GENERATED = 2,
|
|
gcvQUERY_TIME_ELAPSED = 3,
|
|
gcvQUERY_MAX_NUM = 4,
|
|
} gceQueryType;
|
|
|
|
/* Cube faces. */
|
|
typedef enum _gceTEXTURE_FACE {
|
|
gcvFACE_NONE = 0,
|
|
gcvFACE_POSITIVE_X,
|
|
gcvFACE_NEGATIVE_X,
|
|
gcvFACE_POSITIVE_Y,
|
|
gcvFACE_NEGATIVE_Y,
|
|
gcvFACE_POSITIVE_Z,
|
|
gcvFACE_NEGATIVE_Z,
|
|
} gceTEXTURE_FACE;
|
|
|
|
typedef enum _gceVERTEX_FORMAT {
|
|
gcvVERTEX_BYTE,
|
|
gcvVERTEX_UNSIGNED_BYTE,
|
|
gcvVERTEX_SHORT,
|
|
gcvVERTEX_UNSIGNED_SHORT,
|
|
gcvVERTEX_INT,
|
|
gcvVERTEX_UNSIGNED_INT,
|
|
gcvVERTEX_FIXED,
|
|
gcvVERTEX_HALF,
|
|
gcvVERTEX_FLOAT,
|
|
gcvVERTEX_DOUBLE,
|
|
gcvVERTEX_UNSIGNED_INT_10_10_10_2,
|
|
gcvVERTEX_INT_10_10_10_2,
|
|
gcvVERTEX_UNSIGNED_INT_2_10_10_10_REV,
|
|
gcvVERTEX_INT_2_10_10_10_REV,
|
|
/* integer format */
|
|
gcvVERTEX_INT8,
|
|
gcvVERTEX_INT16,
|
|
gcvVERTEX_INT32,
|
|
} gceVERTEX_FORMAT;
|
|
|
|
/* What the SW converting scheme to create temp attrib */
|
|
typedef enum _gceATTRIB_SCHEME {
|
|
gcvATTRIB_SCHEME_KEEP = 0,
|
|
gcvATTRIB_SCHEME_2_10_10_10_REV_TO_FLOAT,
|
|
gcvATTRIB_SCHEME_BYTE_TO_IVEC4,
|
|
gcvATTRIB_SCHEME_SHORT_TO_IVEC4,
|
|
gcvATTRIB_SCHEME_INT_TO_IVEC4,
|
|
gcvATTRIB_SCHEME_UBYTE_TO_UVEC4,
|
|
gcvATTRIB_SCHEME_USHORT_TO_UVEC4,
|
|
gcvATTRIB_SCHEME_UINT_TO_UVEC4,
|
|
gcvATTRIB_SCHEME_DOUBLE_TO_FLOAT,
|
|
gcvATTRIB_SCHEME_UBYTE_BGRA_TO_UBYTE_RGBA,
|
|
gcvATTRIB_SCHEME_2_10_10_10_REV_BGRA_TO_FLOAT_RGBA,
|
|
} gceATTRIB_SCHEME;
|
|
|
|
typedef enum _gceBUFOBJ_TYPE {
|
|
gcvBUFOBJ_TYPE_ARRAY_BUFFER = 1,
|
|
gcvBUFOBJ_TYPE_ELEMENT_ARRAY_BUFFER = 2,
|
|
gcvBUFOBJ_TYPE_UNIFORM_BUFFER = 3,
|
|
gcvBUFOBJ_TYPE_DRAW_INDIRECT_BUFFER = 4,
|
|
gcvBUFOBJ_TYPE_XFB_BUFFER = 5,
|
|
gcvBUFOBJ_TYPE_GENERIC_BUFFER = 100
|
|
|
|
} gceBUFOBJ_TYPE;
|
|
|
|
typedef enum _gceBUFOBJ_USAGE {
|
|
gcvBUFOBJ_USAGE_NONE = 0x0,
|
|
gcvBUFOBJ_USAGE_STREAM_DRAW = 0x1,
|
|
gcvBUFOBJ_USAGE_STREAM_READ = 0x2,
|
|
gcvBUFOBJ_USAGE_STREAM_COPY = 0x3,
|
|
gcvBUFOBJ_USAGE_STATIC_DRAW = 0x4,
|
|
gcvBUFOBJ_USAGE_STATIC_READ = 0x5,
|
|
gcvBUFOBJ_USAGE_STATIC_COPY = 0x6,
|
|
gcvBUFOBJ_USAGE_DYNAMIC_DRAW = 0x7,
|
|
gcvBUFOBJ_USAGE_DYNAMIC_READ = 0x8,
|
|
gcvBUFOBJ_USAGE_DYNAMIC_COPY = 0x9,
|
|
gcvBUFOBJ_USAGE_PROBE_COUTNER = 0x10,
|
|
|
|
/* Use 8bits to save the usage. */
|
|
gcvBUFOBJ_USAGE_MASK = 0xFF,
|
|
|
|
/* Some special flags. */
|
|
/* special patch for optimaize performance,
|
|
* no fence and duplicate stream to ensure data correct
|
|
*/
|
|
gcvBUFOBJ_USAGE_FLAG_DISABLE_FENCE_DYNAMIC_STREAM = 0x100,
|
|
|
|
/* This buffer object is used by driver,
|
|
* so we need to copy the data to the logical memory.
|
|
*/
|
|
gcvBUFOBJ_USAGE_FLAG_DATA_USED_BY_DRIVER = 0x200,
|
|
/* Allocate video memory under 4GB. */
|
|
gcvBUFOBJ_USAGE_FLAG_32BIT_VA = 0x400,
|
|
} gceBUFOBJ_USAGE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Channel mask values.
|
|
**
|
|
** This enumeration defines the values for channel mask used in image
|
|
** filtering.
|
|
*/
|
|
|
|
/******************************************************************************
|
|
******************************** VG Enumerations *****************************
|
|
******************************************************************************/
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Tiling mode for painting and imagig.
|
|
**
|
|
** This enumeration defines the tiling modes supported by the HAL. This is
|
|
** in fact a one-to-one mapping of the OpenVG 1.1 tile modes.
|
|
*/
|
|
typedef enum _gceTILE_MODE {
|
|
gcvTILE_FILL,
|
|
gcvTILE_PAD,
|
|
gcvTILE_REPEAT,
|
|
gcvTILE_REFLECT
|
|
} gceTILE_MODE;
|
|
|
|
/******************************************************************************/
|
|
/** @ingroup gcoVG
|
|
**
|
|
** @brief The different paint modes.
|
|
**
|
|
** This enumeration lists the available paint modes.
|
|
*/
|
|
typedef enum _gcePAINT_TYPE {
|
|
/** Solid color. */
|
|
gcvPAINT_MODE_SOLID,
|
|
|
|
/** Linear gradient. */
|
|
gcvPAINT_MODE_LINEAR,
|
|
|
|
/** Radial gradient. */
|
|
gcvPAINT_MODE_RADIAL,
|
|
|
|
/** Pattern. */
|
|
gcvPAINT_MODE_PATTERN,
|
|
|
|
/** Mode count. */
|
|
gcvPAINT_MODE_COUNT
|
|
} gcePAINT_TYPE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Types of path data supported by HAL.
|
|
**
|
|
** This enumeration defines the types of path data supported by the HAL.
|
|
** This is in fact a one-to-one mapping of the OpenVG 1.1 path types.
|
|
*/
|
|
typedef enum _gcePATHTYPE {
|
|
gcePATHTYPE_UNKNOWN = -1,
|
|
gcePATHTYPE_INT8,
|
|
gcePATHTYPE_INT16,
|
|
gcePATHTYPE_INT32,
|
|
gcePATHTYPE_FLOAT
|
|
} gcePATHTYPE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Supported path segment commands.
|
|
**
|
|
** This enumeration defines the path segment commands supported by the HAL.
|
|
*/
|
|
typedef enum _gceVGCMD {
|
|
gcvVGCMD_END, /* 0: 0x00 */
|
|
gcvVGCMD_CLOSE, /* 1: 0x01 */
|
|
gcvVGCMD_MOVE, /* 2: 0x02 */
|
|
gcvVGCMD_MOVE_REL, /* 3: 0x03 */
|
|
gcvVGCMD_LINE, /* 4: 0x04 */
|
|
gcvVGCMD_LINE_REL, /* 5: 0x05 */
|
|
gcvVGCMD_QUAD, /* 6: 0x06 */
|
|
gcvVGCMD_QUAD_REL, /* 7: 0x07 */
|
|
gcvVGCMD_CUBIC, /* 8: 0x08 */
|
|
gcvVGCMD_CUBIC_REL, /* 9: 0x09 */
|
|
gcvVGCMD_BREAK, /* 10: 0x0A */
|
|
gcvVGCMD_HLINE, /* 11: ******* R E S E R V E D *******/
|
|
gcvVGCMD_HLINE_REL, /* 12: ******* R E S E R V E D *******/
|
|
gcvVGCMD_VLINE, /* 13: ******* R E S E R V E D *******/
|
|
gcvVGCMD_VLINE_REL, /* 14: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SQUAD, /* 15: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SQUAD_REL, /* 16: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCUBIC, /* 17: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCUBIC_REL, /* 18: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCCWARC, /* 19: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCCWARC_REL, /* 20: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCWARC, /* 21: ******* R E S E R V E D *******/
|
|
gcvVGCMD_SCWARC_REL, /* 22: ******* R E S E R V E D *******/
|
|
gcvVGCMD_LCCWARC, /* 23: ******* R E S E R V E D *******/
|
|
gcvVGCMD_LCCWARC_REL, /* 24: ******* R E S E R V E D *******/
|
|
gcvVGCMD_LCWARC, /* 25: ******* R E S E R V E D *******/
|
|
gcvVGCMD_LCWARC_REL, /* 26: ******* R E S E R V E D *******/
|
|
|
|
/* The width of the command recognized by the hardware on bits. */
|
|
gcvVGCMD_WIDTH = 5,
|
|
|
|
/* Hardware command mask. */
|
|
gcvVGCMD_MASK = (1 << gcvVGCMD_WIDTH) - 1,
|
|
|
|
/* Command modifiers. */
|
|
gcvVGCMD_H_MOD = 1 << gcvVGCMD_WIDTH, /* = 32 */
|
|
gcvVGCMD_V_MOD = 2 << gcvVGCMD_WIDTH, /* = 64 */
|
|
gcvVGCMD_S_MOD = 3 << gcvVGCMD_WIDTH, /* = 96 */
|
|
gcvVGCMD_ARC_MOD = 4 << gcvVGCMD_WIDTH, /* = 128 */
|
|
|
|
/* Emulated LINE commands. */
|
|
gcvVGCMD_HLINE_EMUL = gcvVGCMD_H_MOD | gcvVGCMD_LINE, /* = 36 */
|
|
gcvVGCMD_HLINE_EMUL_REL = gcvVGCMD_H_MOD | gcvVGCMD_LINE_REL, /* = 37 */
|
|
gcvVGCMD_VLINE_EMUL = gcvVGCMD_V_MOD | gcvVGCMD_LINE, /* = 68 */
|
|
gcvVGCMD_VLINE_EMUL_REL = gcvVGCMD_V_MOD | gcvVGCMD_LINE_REL, /* = 69 */
|
|
|
|
/* Emulated SMOOTH commands. */
|
|
gcvVGCMD_SQUAD_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD, /* = 102 */
|
|
gcvVGCMD_SQUAD_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD_REL, /* = 103 */
|
|
gcvVGCMD_SCUBIC_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC, /* = 104 */
|
|
gcvVGCMD_SCUBIC_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC_REL, /* = 105 */
|
|
|
|
/* Emulation ARC commands. */
|
|
gcvVGCMD_ARC_LINE = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE, /* = 132 */
|
|
gcvVGCMD_ARC_LINE_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE_REL, /* = 133 */
|
|
gcvVGCMD_ARC_QUAD = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD, /* = 134 */
|
|
gcvVGCMD_ARC_QUAD_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD_REL /* = 135 */
|
|
} gceVGCMD;
|
|
typedef enum _gceVGCMD *gceVGCMD_PTR;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Blending modes supported by the HAL.
|
|
**
|
|
** This enumeration defines the blending modes supported by the HAL. This is
|
|
** in fact a one-to-one mapping of the OpenVG 1.1 blending modes.
|
|
*/
|
|
typedef enum _gceVG_BLEND {
|
|
gcvVG_BLEND_SRC,
|
|
gcvVG_BLEND_SRC_OVER,
|
|
gcvVG_BLEND_DST_OVER,
|
|
gcvVG_BLEND_SRC_IN,
|
|
gcvVG_BLEND_DST_IN,
|
|
gcvVG_BLEND_MULTIPLY,
|
|
gcvVG_BLEND_SCREEN,
|
|
gcvVG_BLEND_DARKEN,
|
|
gcvVG_BLEND_LIGHTEN,
|
|
gcvVG_BLEND_ADDITIVE,
|
|
gcvVG_BLEND_SUBTRACT,
|
|
gcvVG_BLEND_FILTER
|
|
} gceVG_BLEND;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Image modes supported by the HAL.
|
|
**
|
|
** This enumeration defines the image modes supported by the HAL. This is
|
|
** in fact a one-to-one mapping of the OpenVG 1.1 image modes with the addition
|
|
** of NO IMAGE.
|
|
*/
|
|
typedef enum _gceVG_IMAGE {
|
|
gcvVG_IMAGE_NONE,
|
|
gcvVG_IMAGE_NORMAL,
|
|
gcvVG_IMAGE_MULTIPLY,
|
|
gcvVG_IMAGE_STENCIL,
|
|
gcvVG_IMAGE_FILTER
|
|
} gceVG_IMAGE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Filter mode patterns and imaging.
|
|
**
|
|
** This enumeration defines the filter modes supported by the HAL.
|
|
*/
|
|
typedef enum _gceIMAGE_FILTER {
|
|
gcvFILTER_POINT,
|
|
gcvFILTER_LINEAR,
|
|
gcvFILTER_BI_LINEAR
|
|
} gceIMAGE_FILTER;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Primitive modes supported by the HAL.
|
|
**
|
|
** This enumeration defines the primitive modes supported by the HAL.
|
|
*/
|
|
typedef enum _gceVG_PRIMITIVE {
|
|
gcvVG_SCANLINE,
|
|
gcvVG_RECTANGLE,
|
|
gcvVG_TESSELLATED,
|
|
gcvVG_TESSELLATED_TILED
|
|
} gceVG_PRIMITIVE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Rendering quality modes supported by the HAL.
|
|
**
|
|
** This enumeration defines the rendering quality modes supported by the HAL.
|
|
*/
|
|
typedef enum _gceRENDER_QUALITY {
|
|
gcvVG_NONANTIALIASED,
|
|
gcvVG_2X2_MSAA,
|
|
gcvVG_2X4_MSAA,
|
|
gcvVG_4X4_MSAA
|
|
} gceRENDER_QUALITY;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Fill rules supported by the HAL.
|
|
**
|
|
** This enumeration defines the fill rules supported by the HAL.
|
|
*/
|
|
typedef enum _gceFILL_RULE { gcvVG_EVEN_ODD, gcvVG_NON_ZERO } gceFILL_RULE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Cap styles supported by the HAL.
|
|
**
|
|
** This enumeration defines the cap styles supported by the HAL.
|
|
*/
|
|
typedef enum _gceCAP_STYLE { gcvCAP_BUTT, gcvCAP_ROUND, gcvCAP_SQUARE } gceCAP_STYLE;
|
|
|
|
/**
|
|
** @ingroup gcoVG
|
|
**
|
|
** @brief Join styles supported by the HAL.
|
|
**
|
|
** This enumeration defines the join styles supported by the HAL.
|
|
*/
|
|
typedef enum _gceJOIN_STYLE {
|
|
gcvJOIN_MITER,
|
|
gcvJOIN_ROUND,
|
|
gcvJOIN_BEVEL
|
|
} gceJOIN_STYLE;
|
|
|
|
/* Base values for channel mask definitions. */
|
|
#define gcvCHANNEL_X (0)
|
|
#define gcvCHANNEL_R (1 << 0)
|
|
#define gcvCHANNEL_G (1 << 1)
|
|
#define gcvCHANNEL_B (1 << 2)
|
|
#define gcvCHANNEL_A (1 << 3)
|
|
|
|
typedef enum _gceCHANNEL {
|
|
gcvCHANNEL_XXXX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
|
|
gcvCHANNEL_XXXA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
|
|
gcvCHANNEL_XXBX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
|
|
gcvCHANNEL_XXBA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
|
|
|
|
gcvCHANNEL_XGXX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
|
|
gcvCHANNEL_XGXA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
|
|
gcvCHANNEL_XGBX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
|
|
gcvCHANNEL_XGBA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
|
|
|
|
gcvCHANNEL_RXXX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
|
|
gcvCHANNEL_RXXA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
|
|
gcvCHANNEL_RXBX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
|
|
gcvCHANNEL_RXBA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
|
|
|
|
gcvCHANNEL_RGXX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
|
|
gcvCHANNEL_RGXA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
|
|
gcvCHANNEL_RGBX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
|
|
gcvCHANNEL_RGBA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
|
|
} gceCHANNEL;
|
|
|
|
/* Defines the statistical data keys monitored by the statistics module */
|
|
typedef enum _gceSTATISTICS {
|
|
gcvFRAME_FPS = 1,
|
|
} gceSTATISTICS;
|
|
|
|
/* Value types. */
|
|
typedef enum _gceVALUE_TYPE {
|
|
gcvVALUE_UINT = 0x0,
|
|
gcvVALUE_FIXED,
|
|
gcvVALUE_FLOAT,
|
|
gcvVALUE_INT,
|
|
|
|
/*
|
|
** The value need be unsigned denormalized. clamp (0.0-1.0) should be done first.
|
|
*/
|
|
gcvVALUE_FLAG_UNSIGNED_DENORM = 0x00010000,
|
|
|
|
/*
|
|
** The value need be signed denormalized. clamp (-1.0-1.0) should be done first.
|
|
*/
|
|
gcvVALUE_FLAG_SIGNED_DENORM = 0x00020000,
|
|
|
|
/*
|
|
** The value need to gammar
|
|
*/
|
|
gcvVALUE_FLAG_GAMMAR = 0x00040000,
|
|
|
|
/*
|
|
** The value need to convert from float to float16
|
|
*/
|
|
gcvVALUE_FLAG_FLOAT_TO_FLOAT16 = 0x0080000,
|
|
|
|
/*
|
|
** Mask for flag field.
|
|
*/
|
|
gcvVALUE_FLAG_MASK = 0xFFFF0000,
|
|
} gceVALUE_TYPE;
|
|
|
|
typedef enum _gceTRACEMODE {
|
|
gcvTRACEMODE_NONE = 0,
|
|
gcvTRACEMODE_FULL = 1,
|
|
gcvTRACEMODE_LOGGER = 2,
|
|
gcvTRACEMODE_ALLZONE = 3,
|
|
gcvTRACEMODE_PRE = 4,
|
|
gcvTRACEMODE_POST = 5,
|
|
} gceTRACEMODE;
|
|
|
|
enum {
|
|
/* GPU can't issue more that 32bit physical address */
|
|
gcvPLATFORM_FLAG_LIMIT_4G_ADDRESS = 1 << 0,
|
|
|
|
gcvPLATFORM_FLAG_IMX_MM = 1 << 1,
|
|
};
|
|
|
|
#if gcdUSE_CAPBUF
|
|
typedef enum _gceCAPBUF_META_TYPE {
|
|
gcvCAPBUF_META_TYPE_BASE = 0,
|
|
gcvCAPBUF_META_TYPE_STATE_BUFFER = 0,
|
|
gcvCAPBUF_META_TYPE_DRAW_ID,
|
|
gcvCAPBUF_META_TYPE_SH_UNIFORM,
|
|
gcvCAPBUF_META_TYPE_VIP_SRAM,
|
|
gcvCAPBUF_META_TYPE_AXI_SRAM,
|
|
gcvCAPBUF_META_TYPE_PPU_PARAMETERS,
|
|
gcvCAPBUF_META_TYPE_VIP_SRAM_REMAP,
|
|
gcvCAPBUF_META_TYPE_AXI_SRAM_REMAP,
|
|
gcvCAPBUF_META_TYPE_IMAGE_PHYSICAL_ADDRESS,
|
|
gcvCAPBUF_META_TYPE_IMAGE_PHYSICAL_ADDRESS_40BIT,
|
|
gcvCAPBUF_META_TYPE_SH_INST_ADDRESS,
|
|
gcvCAPBUF_META_TYPE_SH_UNIFORM_ARGS_LOCAL_ADDRESS_SPACE,
|
|
gcvCAPBUF_META_TYPE_SH_UNIFORM_ARGS_CONSTANT_ADDRESS_SPACE,
|
|
gcvCAPBUF_META_TYPE_NN_TP_INST_ADDRESS,
|
|
gcvCAPBUF_META_TYPE_LOW32_OF_40BIT_PHY_ADDR,
|
|
gcvCAPBUF_META_TYPE_GPU_SYNC_CMD,
|
|
gcvCAPBUF_META_TYPE_SH_UNIFORM_ARGS_PRINTFADDRESS,
|
|
gcvCAPBUF_META_TYPE_SH_UNIFORM_ARGS_MAXPRINTFADDRESS,
|
|
/* Keep it at the end of the list. */
|
|
gcvCAPBUF_META_TYPE_COUNT
|
|
} gceCAPBUF_META_TYPE;
|
|
|
|
typedef enum _gceCAPBUF_SH_UNIFROM_ARGS {
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_INVALID = 0,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_IMAGE_PHYSICAL_ADDRESS,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_IMAGE_PHYSICAL_ADDRESS_40BIT,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_LOCAL_ADDRESS_SPACE,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_LOCAL_ADDRESS_SPACE_COMBINE,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_CONSTANT_ADDRESS_SPACE,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_LOW32_OF_40BIT_PHY_ADDR,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_LOW_HIGH_40BIT_PHY_ADDR,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_PRINTFADDRESS,
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_MAXPRINTFADDRESS,
|
|
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_40BIT_IMAGE_ADDR,
|
|
/* Keep it at the end of the list. */
|
|
gcvCAPBUF_SH_UNIFORM_ARGS_COUNT
|
|
} gceCAPBUF_SH_UNIFORM_ARGS;
|
|
|
|
typedef enum _gceCAPBUF_SH_UNIFORM_STATE_DATA_TYPE
|
|
{
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_INVALID = 0,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_IMAGE_PHYSICAL_ADDRESS,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_IMAGE_PHYSICAL_ADDRESS_40BIT_LOW,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_IMAGE_PHYSICAL_ADDRESS_40BIT_HIGH,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_IMAGE_PHYSICAL_ADDRESS_40BIT_HIGH1,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_LOCAL_ADDRESS_SPACE,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_CONSTANT_ADDRESS_SPACE,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_LOW32_OF_40BIT_PHY_ADDR,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_LOW_HIGH_40BIT_PHY_ADDR_LOW,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_LOW_HIGH_40BIT_PHY_ADDR_HIGH,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_PRINTFADDRESS,
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_MAXPRINTFADDRESS,
|
|
/* Keep it at the end of the list. */
|
|
gcvCAPBUF_SH_UNIFORM_STATE_DATA_TYPE_COUNT
|
|
} gceCAPBUF_SH_UNIFORM_STATE_DATA_TYPE;
|
|
|
|
typedef enum _gceCAPBUF_PPU_PARAMETERS_INDEX {
|
|
gcvCAPBUF_PPU_GLOBAL_OFFSET_X = 0,
|
|
gcvCAPBUF_PPU_GLOBAL_OFFSET_Y,
|
|
gcvCAPBUF_PPU_GLOBAL_OFFSET_Z,
|
|
gcvCAPBUF_PPU_GLOBAL_SCALE_X,
|
|
gcvCAPBUF_PPU_GLOBAL_SCALE_Y,
|
|
gcvCAPBUF_PPU_GLOBAL_SCALE_Z,
|
|
gcvCAPBUF_PPU_GROUP_SIZE_X,
|
|
gcvCAPBUF_PPU_GROUP_SIZE_Y,
|
|
gcvCAPBUF_PPU_GROUP_SIZE_Z,
|
|
gcvCAPBUF_PPU_GROUP_COUNT_X,
|
|
gcvCAPBUF_PPU_GROUP_COUNT_Y,
|
|
gcvCAPBUF_PPU_GROUP_COUNT_Z,
|
|
gcvCAPBUF_PPU_PARAMETERS_COUNT
|
|
} gceCAPBUF_PPU_GLOBALE_OFFSET_INDEX;
|
|
|
|
#endif
|
|
|
|
/* GL_VIV internal usage */
|
|
#ifndef GL_MAP_BUFFER_OBJ_VIV
|
|
#define GL_MAP_BUFFER_OBJ_VIV 0x10000
|
|
#endif
|
|
|
|
/* Command buffer usage. */
|
|
#define gcvCOMMAND_2D (1 << 0)
|
|
#define gcvCOMMAND_3D (1 << 1)
|
|
|
|
/* Default chip ID means chip ID same as core index. */
|
|
#define gcvCHIP_ID_DEFAULT (~0U)
|
|
|
|
/* Tile status header size */
|
|
#ifndef gcvTS_FC_HEADER_SIZE
|
|
#define gcvTS_FC_HEADER_SIZE 128
|
|
#endif
|
|
|
|
/******************************************************************************
|
|
***************************** Object Declarations ****************************
|
|
******************************************************************************/
|
|
typedef struct _gckCONTEXT *gckCONTEXT;
|
|
typedef struct _gcoCMDBUF *gcoCMDBUF;
|
|
|
|
typedef struct _gcsSTATE_DELTA *gcsSTATE_DELTA_PTR;
|
|
typedef struct _gcsQUEUE *gcsQUEUE_PTR;
|
|
typedef struct _gcoQUEUE *gcoQUEUE;
|
|
typedef struct _gcsHAL_INTERFACE *gcsHAL_INTERFACE_PTR;
|
|
#if VIVANTE_PROFILER
|
|
typedef struct _gcsHAL_PROFILER_INTERFACE *gcsHAL_PROFILER_INTERFACE_PTR;
|
|
#endif
|
|
typedef struct _gcs2D_PROFILE *gcs2D_PROFILE_PTR;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __gc_hal_enum_h_ */
|
|
|
|
|