2216 lines
70 KiB
C
2216 lines
70 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_shared_enum_h_
|
||
|
|
#define __gc_hal_shared_enum_h_
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* Chip models. */
|
||
|
|
typedef enum _gceCHIPMODEL {
|
||
|
|
gcv200 = 0x0200,
|
||
|
|
gcv300 = 0x0300,
|
||
|
|
gcv320 = 0x0320,
|
||
|
|
gcv328 = 0x0328,
|
||
|
|
gcv350 = 0x0350,
|
||
|
|
gcv355 = 0x0355,
|
||
|
|
gcv400 = 0x0400,
|
||
|
|
gcv410 = 0x0410,
|
||
|
|
gcv420 = 0x0420,
|
||
|
|
gcv428 = 0x0428,
|
||
|
|
gcv450 = 0x0450,
|
||
|
|
gcv500 = 0x0500,
|
||
|
|
gcv520 = 0x0520,
|
||
|
|
gcv530 = 0x0530,
|
||
|
|
gcv600 = 0x0600,
|
||
|
|
gcv620 = 0x0620,
|
||
|
|
gcv700 = 0x0700,
|
||
|
|
gcv800 = 0x0800,
|
||
|
|
gcv820 = 0x0820,
|
||
|
|
gcv860 = 0x0860,
|
||
|
|
gcv880 = 0x0880,
|
||
|
|
gcv900 = 0x0900,
|
||
|
|
gcv1000 = 0x1000,
|
||
|
|
gcv1500 = 0x1500,
|
||
|
|
gcv2000 = 0x2000,
|
||
|
|
gcv2100 = 0x2100,
|
||
|
|
gcv2200 = 0x2200,
|
||
|
|
gcv2500 = 0x2500,
|
||
|
|
gcv3000 = 0x3000,
|
||
|
|
gcv4000 = 0x4000,
|
||
|
|
gcv5000 = 0x5000,
|
||
|
|
gcv5200 = 0x5200,
|
||
|
|
gcv6400 = 0x6400,
|
||
|
|
gcv7000 = 0x7000,
|
||
|
|
gcv7400 = 0x7400,
|
||
|
|
gcv8000 = 0x8000,
|
||
|
|
gcv8400 = 0x8400,
|
||
|
|
gcv8800 = 0x8800,
|
||
|
|
gcv9100 = 0x9100,
|
||
|
|
gcv9200 = 0x9200,
|
||
|
|
} gceCHIPMODEL;
|
||
|
|
|
||
|
|
/* Chip features. */
|
||
|
|
typedef enum _gceFEATURE {
|
||
|
|
gcvFEATURE_PIPE_2D = 0,
|
||
|
|
gcvFEATURE_PIPE_3D,
|
||
|
|
gcvFEATURE_PIPE_VG,
|
||
|
|
gcvFEATURE_DC,
|
||
|
|
gcvFEATURE_HIGH_DYNAMIC_RANGE,
|
||
|
|
gcvFEATURE_MODULE_CG,
|
||
|
|
gcvFEATURE_MIN_AREA,
|
||
|
|
gcvFEATURE_BUFFER_INTERLEAVING,
|
||
|
|
gcvFEATURE_BYTE_WRITE_2D,
|
||
|
|
gcvFEATURE_ENDIANNESS_CONFIG,
|
||
|
|
gcvFEATURE_DUAL_RETURN_BUS,
|
||
|
|
gcvFEATURE_DEBUG_MODE,
|
||
|
|
gcvFEATURE_YUY2_RENDER_TARGET,
|
||
|
|
gcvFEATURE_FRAGMENT_PROCESSOR,
|
||
|
|
gcvFEATURE_2DPE20,
|
||
|
|
gcvFEATURE_FAST_CLEAR,
|
||
|
|
gcvFEATURE_YUV420_TILER,
|
||
|
|
gcvFEATURE_YUY2_AVERAGING,
|
||
|
|
gcvFEATURE_FLIP_Y,
|
||
|
|
gcvFEATURE_EARLY_Z,
|
||
|
|
gcvFEATURE_COMPRESSION,
|
||
|
|
gcvFEATURE_MSAA,
|
||
|
|
gcvFEATURE_SPECIAL_ANTI_ALIASING,
|
||
|
|
gcvFEATURE_SPECIAL_MSAA_LOD,
|
||
|
|
gcvFEATURE_422_TEXTURE_COMPRESSION,
|
||
|
|
gcvFEATURE_DXT_TEXTURE_COMPRESSION,
|
||
|
|
gcvFEATURE_ETC1_TEXTURE_COMPRESSION,
|
||
|
|
gcvFEATURE_TX_ETC2_COMPRESSION,
|
||
|
|
gcvFEATURE_CORRECT_TEXTURE_CONVERTER,
|
||
|
|
gcvFEATURE_TEXTURE_8K,
|
||
|
|
gcvFEATURE_SCALER,
|
||
|
|
gcvFEATURE_YUV420_SCALER,
|
||
|
|
gcvFEATURE_SHADER_HAS_W,
|
||
|
|
gcvFEATURE_SHADER_HAS_SIGN,
|
||
|
|
gcvFEATURE_SHADER_HAS_FLOOR,
|
||
|
|
gcvFEATURE_SHADER_HAS_CEIL,
|
||
|
|
gcvFEATURE_SHADER_HAS_SQRT,
|
||
|
|
gcvFEATURE_SHADER_HAS_TRIG,
|
||
|
|
gcvFEATURE_SH_SUPERSCALAR_ARCH,
|
||
|
|
gcvFEATURE_HZ,
|
||
|
|
gcvFEATURE_CORRECT_STENCIL,
|
||
|
|
gcvFEATURE_VG20,
|
||
|
|
gcvFEATURE_VG_FILTER,
|
||
|
|
gcvFEATURE_VG21,
|
||
|
|
gcvFEATURE_VG_DOUBLE_BUFFER,
|
||
|
|
gcvFEATURE_VG_RESOLUTION_8K,
|
||
|
|
gcvFEATURE_MC20,
|
||
|
|
gcvFEATURE_SUPER_TILED,
|
||
|
|
gcvFEATURE_FAST_CLEAR_FLUSH,
|
||
|
|
gcvFEATURE_2D_FILTERBLIT_PLUS_ALPHABLEND,
|
||
|
|
gcvFEATURE_2D_DITHER,
|
||
|
|
gcvFEATURE_2D_A8_TARGET,
|
||
|
|
gcvFEATURE_2D_A8_NO_ALPHA,
|
||
|
|
gcvFEATURE_2D_FILTERBLIT_FULLROTATION,
|
||
|
|
gcvFEATURE_2D_BITBLIT_FULLROTATION,
|
||
|
|
gcvFEATURE_WIDE_LINE,
|
||
|
|
gcvFEATURE_FC_FLUSH_STALL,
|
||
|
|
gcvFEATURE_FULL_DIRECTFB,
|
||
|
|
gcvFEATURE_HALF_FLOAT_PIPE,
|
||
|
|
gcvFEATURE_LINE_LOOP,
|
||
|
|
gcvFEATURE_2D_YUV_BLIT,
|
||
|
|
gcvFEATURE_2D_TILING,
|
||
|
|
gcvFEATURE_NON_POWER_OF_TWO,
|
||
|
|
gcvFEATURE_3D_TEXTURE,
|
||
|
|
gcvFEATURE_TEXTURE_ARRAY,
|
||
|
|
gcvFEATURE_TILE_FILLER,
|
||
|
|
gcvFEATURE_LOGIC_OP,
|
||
|
|
gcvFEATURE_MIXED_STREAMS,
|
||
|
|
gcvFEATURE_2D_MULTI_SOURCE_BLT,
|
||
|
|
gcvFEATURE_END_EVENT,
|
||
|
|
gcvFEATURE_VERTEX_10_10_10_2,
|
||
|
|
gcvFEATURE_TEXTURE_10_10_10_2,
|
||
|
|
gcvFEATURE_TEXTURE_ANISOTROPIC_FILTERING,
|
||
|
|
gcvFEATURE_TEXTURE_FLOAT_HALF_FLOAT,
|
||
|
|
gcvFEATURE_2D_ROTATION_STALL_FIX,
|
||
|
|
gcvFEATURE_2D_MULTI_SOURCE_BLT_EX,
|
||
|
|
gcvFEATURE_BUG_FIXES10,
|
||
|
|
gcvFEATURE_2D_MINOR_TILING,
|
||
|
|
gcvFEATURE_TEX_COMPRRESSION_SUPERTILED, /* Supertiled compressed textures are supported. */
|
||
|
|
gcvFEATURE_FAST_MSAA,
|
||
|
|
gcvFEATURE_BUG_FIXED_INDEXED_TRIANGLE_STRIP,
|
||
|
|
gcvFEATURE_TEXTURE_TILE_STATUS_READ,
|
||
|
|
gcvFEATURE_DEPTH_BIAS_FIX,
|
||
|
|
gcvFEATURE_RECT_PRIMITIVE,
|
||
|
|
gcvFEATURE_BUG_FIXES11,
|
||
|
|
gcvFEATURE_SUPERTILED_TEXTURE,
|
||
|
|
gcvFEATURE_2D_NO_COLORBRUSH_INDEX8,
|
||
|
|
gcvFEATURE_RS_YUV_TARGET,
|
||
|
|
gcvFEATURE_2D_FC_SOURCE, /* For tilestatus compression feature*/
|
||
|
|
gcvFEATURE_2D_CC_NOAA_SOURCE,
|
||
|
|
gcvFEATURE_PE_DITHER_FIX,
|
||
|
|
gcvFEATURE_2D_YUV_SEPARATE_STRIDE,
|
||
|
|
gcvFEATURE_FRUSTUM_CLIP_FIX,
|
||
|
|
gcvFEATURE_TEXTURE_SWIZZLE,
|
||
|
|
gcvFEATURE_PRIMITIVE_RESTART,
|
||
|
|
gcvFEATURE_TEXTURE_LINEAR,
|
||
|
|
gcvFEATURE_TEXTURE_YUV_ASSEMBLER,
|
||
|
|
gcvFEATURE_LINEAR_RENDER_TARGET,
|
||
|
|
gcvFEATURE_SHADER_HAS_ATOMIC,
|
||
|
|
gcvFEATURE_SHADER_HAS_INSTRUCTION_CACHE,
|
||
|
|
gcvFEATURE_SHADER_ENHANCEMENTS2,
|
||
|
|
gcvFEATURE_BUG_FIXES7,
|
||
|
|
gcvFEATURE_SHADER_HAS_RTNE,
|
||
|
|
gcvFEATURE_SHADER_HAS_EXTRA_INSTRUCTIONS2,
|
||
|
|
gcvFEATURE_SHADER_ENHANCEMENTS3,
|
||
|
|
gcvFEATURE_DYNAMIC_FREQUENCY_SCALING,
|
||
|
|
gcvFEATURE_SINGLE_BUFFER,
|
||
|
|
gcvFEATURE_OCCLUSION_QUERY,
|
||
|
|
gcvFEATURE_2D_GAMMA,
|
||
|
|
gcvFEATURE_2D_COLOR_SPACE_CONVERSION,
|
||
|
|
gcvFEATURE_2D_SUPER_TILE_VERSION,
|
||
|
|
gcvFEATURE_HALTI0,
|
||
|
|
gcvFEATURE_HALTI1,
|
||
|
|
gcvFEATURE_HALTI2,
|
||
|
|
gcvFEATURE_SUPPORT_GCREGTX,
|
||
|
|
gcvFEATURE_2D_MIRROR_EXTENSION,
|
||
|
|
gcvFEATURE_TEXTURE_ASTC,
|
||
|
|
gcvFEATURE_TEXTURE_ASTC_DECODE_FIX,
|
||
|
|
gcvFEATURE_TEXTURE_ASTC_BASE_LOD_FIX,
|
||
|
|
gcvFEATURE_2D_SUPER_TILE_V1,
|
||
|
|
gcvFEATURE_2D_SUPER_TILE_V2,
|
||
|
|
gcvFEATURE_2D_SUPER_TILE_V3,
|
||
|
|
gcvFEATURE_2D_MULTI_SOURCE_BLT_EX2,
|
||
|
|
gcvFEATURE_NEW_RA,
|
||
|
|
gcvFEATURE_BUG_FIXED_IMPLICIT_PRIMITIVE_RESTART,
|
||
|
|
gcvFEATURE_PE_MULTI_RT_BLEND_ENABLE_CONTROL,
|
||
|
|
gcvFEATURE_SMALL_MSAA, /* An upgraded version of Fast MSAA */
|
||
|
|
gcvFEATURE_VERTEX_INST_ID_AS_ATTRIBUTE,
|
||
|
|
gcvFEATURE_DUAL_16,
|
||
|
|
gcvFEATURE_BRANCH_ON_IMMEDIATE_REG,
|
||
|
|
gcvFEATURE_2D_COMPRESSION,
|
||
|
|
gcvFEATURE_TPC_COMPRESSION,
|
||
|
|
gcvFEATURE_TPCV11_COMPRESSION,
|
||
|
|
gcvFEATURE_DEC_COMPRESSION,
|
||
|
|
gcvFEATURE_DEC300_COMPRESSION,
|
||
|
|
gcvFEATURE_DEC400_COMPRESSION,
|
||
|
|
/*Its a new core for DEC400 compression*/
|
||
|
|
gcvFEATURE_DEC400EX_COMPRESSION,
|
||
|
|
gcvFEATURE_DEC_TPC_COMPRESSION,
|
||
|
|
gcvFEATURE_DEC_COMPRESSION_TILE_NV12_8BIT,
|
||
|
|
gcvFEATURE_DEC_COMPRESSION_TILE_NV12_10BIT,
|
||
|
|
gcvFEATURE_2D_OPF_YUV_OUTPUT,
|
||
|
|
gcvFEATURE_2D_FILTERBLIT_A8_ALPHA,
|
||
|
|
gcvFEATURE_2D_MULTI_SRC_BLT_TO_UNIFIED_DST_RECT,
|
||
|
|
gcvFEATURE_2D_MULTI_SRC_BLT_BILINEAR_FILTER,
|
||
|
|
gcvFEATURE_2D_MULTI_SRC_BLT_1_5_ENHANCEMENT,
|
||
|
|
gcvFEATURE_V2_COMPRESSION_Z16_FIX,
|
||
|
|
gcvFEATURE_VERTEX_INST_ID_AS_INTEGER,
|
||
|
|
gcvFEATURE_2D_YUV_MODE,
|
||
|
|
gcvFEATURE_2D_CACHE_128B256BPERLINE,
|
||
|
|
gcvFEATURE_2D_SEPARATE_CACHE,
|
||
|
|
gcvFEATURE_2D_MAJOR_SUPER_TILE,
|
||
|
|
gcvFEATURE_2D_V4COMPRESSION,
|
||
|
|
gcvFEATURE_2D_VMSAA,
|
||
|
|
gcvFEATURE_2D_10BIT_OUTPUT_LINEAR,
|
||
|
|
gcvFEATURE_2D_YUV420_OUTPUT_LINEAR,
|
||
|
|
gcvFEATURE_ACE,
|
||
|
|
gcvFEATURE_NO_YUV420_SOURCE,/* unsupported source with three planes */
|
||
|
|
gcvFEATURE_COLOR_COMPRESSION,
|
||
|
|
gcvFEATURE_32BPP_COMPONENT_TEXTURE_CHANNEL_SWIZZLE,
|
||
|
|
gcvFEATURE_64BPP_HW_CLEAR_SUPPORT,
|
||
|
|
gcvFEATURE_TX_LERP_PRECISION_FIX,
|
||
|
|
gcvFEATURE_COMPRESSION_V2,
|
||
|
|
gcvFEATURE_MMU,
|
||
|
|
gcvFEATURE_COMPRESSION_V3,
|
||
|
|
gcvFEATURE_TX_DECOMPRESSOR,
|
||
|
|
gcvFEATURE_MRT_TILE_STATUS_BUFFER,
|
||
|
|
gcvFEATURE_COMPRESSION_V1,
|
||
|
|
gcvFEATURE_V1_COMPRESSION_Z16_DECOMPRESS_FIX,
|
||
|
|
gcvFEATURE_RTT,
|
||
|
|
gcvFEATURE_GENERIC_ATTRIB,
|
||
|
|
gcvFEATURE_2D_ONE_PASS_FILTER,
|
||
|
|
gcvFEATURE_2D_ONE_PASS_FILTER_TAP,
|
||
|
|
gcvFEATURE_2D_POST_FLIP,
|
||
|
|
gcvFEATURE_2D_PIXEL_ALIGNMENT,
|
||
|
|
gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT,
|
||
|
|
gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT_WIDTH,
|
||
|
|
gcvFEATURE_8K_RT,
|
||
|
|
gcvFEATURE_HALTI3,
|
||
|
|
gcvFEATURE_EEZ,
|
||
|
|
gcvFEATURE_INTEGER_SIGNEXT_FIX,
|
||
|
|
gcvFEATURE_PSOUTPUT_MAPPING,
|
||
|
|
gcvFEATURE_8K_RT_FIX,
|
||
|
|
gcvFEATURE_TX_TILE_STATUS_MAPPING,
|
||
|
|
gcvFEATURE_SRGB_RT_SUPPORT,
|
||
|
|
gcvFEATURE_TEXTURE_16K,
|
||
|
|
gcvFEATURE_PA_FARZCLIPPING_FIX,
|
||
|
|
gcvFEATURE_PE_DITHER_COLORMASK_FIX,
|
||
|
|
gcvFEATURE_ZSCALE_FIX,
|
||
|
|
gcvFEATURE_MULTI_PIXELPIPES,
|
||
|
|
gcvFEATURE_PIPE_CL,
|
||
|
|
gcvFEATURE_BUG_FIXES18,
|
||
|
|
gcvFEATURE_UNIFIED_SAMPLERS,
|
||
|
|
gcvFEATURE_CL_PS_WALKER,
|
||
|
|
gcvFEATURE_NEW_HZ,
|
||
|
|
gcvFEATURE_TX_FRAC_PRECISION_6BIT,
|
||
|
|
gcvFEATURE_SH_INSTRUCTION_PREFETCH,
|
||
|
|
gcvFEATURE_PROBE,
|
||
|
|
gcvFEATURE_SINGLE_PIPE_HALTI1,
|
||
|
|
gcvFEATURE_BUG_FIXES8, /* This HW feature is wrong, we can't use this to check integer branch!!!*/
|
||
|
|
gcvFEATURE_2D_ALL_QUAD,
|
||
|
|
gcvFEATURE_SEPARATE_SRC_DST,
|
||
|
|
gcvFEATURE_TX_HOR_ALIGN_SEL,
|
||
|
|
gcvFEATURE_HALTI4,
|
||
|
|
gcvFEATURE_MRT_FC_FIX,
|
||
|
|
gcvFEATURE_TESSELLATION,
|
||
|
|
gcvFEATURE_DRAW_INDIRECT,
|
||
|
|
gcvFEATURE_COMPUTE_INDIRECT,
|
||
|
|
gcvFEATURE_MSAA_TEXTURE,
|
||
|
|
gcvFEATURE_STENCIL_TEXTURE,
|
||
|
|
gcvFEATURE_S8_ONLY_RENDERING,
|
||
|
|
gcvFEATURE_D24S8_SAMPLE_STENCIL,
|
||
|
|
gcvFEATURE_ADVANCED_BLEND_MODE_PART0,
|
||
|
|
gcvFEATURE_RA_DEPTH_WRITE,
|
||
|
|
gcvFEATURE_RS_DS_DOWNSAMPLE_NATIVE_SUPPORT,
|
||
|
|
gcvFEATURE_S8_MSAA_COMPRESSION,
|
||
|
|
gcvFEATURE_MSAA_FRAGMENT_OPERATION,
|
||
|
|
gcvFEATURE_FE_START_VERTEX_SUPPORT,
|
||
|
|
gcvFEATURE_DIVISOR_STREAM_ADDR_FIX,
|
||
|
|
gcvFEATURE_ZERO_ATTRIB_SUPPORT,
|
||
|
|
gcvFEATURE_DANGLING_VERTEX_FIX,
|
||
|
|
gcvFEATURE_PE_DISABLE_COLOR_PIPE,
|
||
|
|
gcvFEATURE_FE_12bit_stride,
|
||
|
|
gcvFEATURE_TX_LOD_GUARDBAND,
|
||
|
|
gcvFEATURE_HAS_PRODUCTID,
|
||
|
|
gcvFEATURE_INTEGER32_FIX,
|
||
|
|
gcvFEATURE_TEXTURE_GATHER,
|
||
|
|
gcvFEATURE_IMG_INSTRUCTION,
|
||
|
|
gcvFEATURE_HELPER_INVOCATION,
|
||
|
|
gcvFEATURE_NO_USER_CSC,
|
||
|
|
/* ANDROID_ONLY_REMOVED,remove some non-android features from gc520c:
|
||
|
|
* (1)Monochrome expansion.
|
||
|
|
* (2)Remove 3D compression and keep read tile status and tile input.
|
||
|
|
* (3)ROP2, ROP3, ROP4. Android only needs one solid color as source. Transparency by monochrome mask, pattern mask, src/dst color key, chroma key.
|
||
|
|
* (4)2x2 minor tile.
|
||
|
|
* (5)7 & 9 tap OPF.
|
||
|
|
* (6)User-defined CSC.
|
||
|
|
* (7)MultiSrc walker v1.5.
|
||
|
|
* (8)SuperTile V1.
|
||
|
|
* (9)Big endian.
|
||
|
|
*/
|
||
|
|
gcvFEATURE_ANDROID_ONLY_REMOVED,
|
||
|
|
gcvFEATURE_V2_MSAA_COHERENCY_FIX,
|
||
|
|
gcvFEATURE_BLOCK_SIZE_16x16,
|
||
|
|
gcvFEATURE_TX_SUPPORT_DEC,
|
||
|
|
gcvFEATURE_RSBLT_MSAA_DECOMPRESSION,
|
||
|
|
gcvFEATURE_TILEFILLER_32TILE_ALIGNED,
|
||
|
|
gcvFEATURE_GEOMETRY_SHADER,
|
||
|
|
gcvFEATURE_HALTI5,
|
||
|
|
gcvFEATURE_PIPELINE_32_ATTRIBUTES,
|
||
|
|
gcvFEATURE_USC,
|
||
|
|
gcvFEATURE_CUBEMAP_ARRAY,
|
||
|
|
gcvFEATURE_TX_DESCRIPTOR,
|
||
|
|
gcvFEATURE_SEPARATE_RT_CTRL,
|
||
|
|
gcvFEATURE_RENDER_ARRAY,
|
||
|
|
gcvFEATURE_BLT_ENGINE,
|
||
|
|
gcvFEATURE_TEXTURE_BUFFER,
|
||
|
|
gcvFEATURE_GS_SUPPORT_EMIT,
|
||
|
|
gcvFEATURE_SAMPLER_BASE_OFFSET,
|
||
|
|
gcvFEATURE_IMAGE_OUT_BOUNDARY_FIX,
|
||
|
|
gcvFEATURE_TX_BORDER_CLAMP,
|
||
|
|
gcvFEATURE_MSAA_SHADING,
|
||
|
|
gcvFEATURE_ADVANCED_SH_INST,
|
||
|
|
gcvFEATURE_LOD_FIX_FOR_BASELEVEL,
|
||
|
|
gcvFEATURE_MULTIDRAW_INDIRECT,
|
||
|
|
gcvFEATURE_DRAW_ELEMENTS_BASE_VERTEX,
|
||
|
|
gcvFEATURE_NEW_STEERING_AND_ICACHE_FLUSH, /* Steering base on register base. Trigger-style Icache flush state. */
|
||
|
|
gcvFEATURE_PE_DITHER_FIX2,
|
||
|
|
gcvFEATURE_INDEX_FETCH_FIX,
|
||
|
|
gcvFEATURE_TEX_BASELOD,
|
||
|
|
gcvFEATURE_TEX_SEAMLESS_CUBE,
|
||
|
|
gcvFEATURE_TEX_ETC2,
|
||
|
|
gcvFEATURE_TEX_CUBE_BORDER_LOD,
|
||
|
|
gcvFEATURE_FE_ALLOW_STALL_PREFETCH_ENG,
|
||
|
|
gcvFEATURE_TX_8BPP_TS_FIX,
|
||
|
|
gcvFEATURE_HW_TFB,
|
||
|
|
gcvFEATURE_HW_TFB_PERF_FIX,
|
||
|
|
gcvFEATURE_COMPRESSION_V4,
|
||
|
|
gcvFEATURE_FENCE_32BIT,
|
||
|
|
gcvFEATURE_FENCE_64BIT,
|
||
|
|
gcvFEATURE_R8_UNORM,
|
||
|
|
gcvFEATURE_TX_DEFAULT_VALUE_FIX,
|
||
|
|
gcvFEATURE_TX_8bit_UVFrac,
|
||
|
|
gcvFEATURE_TX_MIPFILTER_NONE_FIX,
|
||
|
|
gcvFEATURE_MC_STENCIL_CTRL,
|
||
|
|
gcvFEATURE_DEPTH_MATH_FIX,
|
||
|
|
gcvFEATURE_PE_B2B_PIXEL_FIX,
|
||
|
|
gcvFEATURE_TEXTURE_GATHER_OFFSETS,
|
||
|
|
gcvFEATURE_TEX_CACHE_FLUSH_FIX,
|
||
|
|
gcvFEATURE_WIDELINE_HELPER_FIX,
|
||
|
|
gcvFEATURE_LINE_DIAMOND_RULE_FIX,
|
||
|
|
gcvFEATURE_MULTIGPU_SYNC_V2,
|
||
|
|
gcvFEATURE_DRAW_ID,
|
||
|
|
gcvFEATURE_SNAPPAGE_CMD,
|
||
|
|
gcvFEATURE_COMMAND_PREFETCH,
|
||
|
|
gcvFEATURE_SAMPLEPOS_SWIZZLE_FIX,
|
||
|
|
gcvFEATURE_SELECTMAP_SRC0_SWIZZLE_FIX,
|
||
|
|
gcvFEATURE_LOADATTR_OOB_FIX,
|
||
|
|
gcvFEATURE_RA_DEPTH_WRITE_MSAA1X_FIX,
|
||
|
|
gcvFEATURE_MRT_8BIT_DUAL_PIPE_FIX,
|
||
|
|
gcvFEATURE_BUG_FIXES1,
|
||
|
|
gcvFEATURE_MULTI_SOURCE_BLT,
|
||
|
|
gcvFEATURE_ZCOMPRESSION,
|
||
|
|
gcvFEATURE_DITHER_AND_FILTER_PLUS_ALPHA_2D,
|
||
|
|
gcvFEATURE_ONE_PASS_2D_FILTER,
|
||
|
|
gcvFEATURE_TX_FILTER,
|
||
|
|
gcvFEATURE_CHIPENABLE_LINK,
|
||
|
|
gcvFEATURE_TEXTURE_BIAS_LOD_FIX,
|
||
|
|
gcvFEATURE_USE_GL_Z,
|
||
|
|
gcvFEATURE_SUPPORT_INTEGER,
|
||
|
|
/* PARTLY_SUPPORT_INTEGER_BRANCH:
|
||
|
|
* chips can support all integer types for compare instructions, e.g, CMP, SELECT.
|
||
|
|
* FULLLY_SUPPORT_INTEGER_BRANCH:
|
||
|
|
* chips can support all integer types for JMP instruction.
|
||
|
|
* If PARTLY_SUPPORT_INTEGER_BRANCH is TRUE but FULLLY_SUPPORT_INTEGER_BRANCH is FALSE,
|
||
|
|
* then this chip can only support INT32/UINT32 JMP instruction.
|
||
|
|
*/
|
||
|
|
gcvFEATURE_PARTLY_SUPPORT_INTEGER_BRANCH,
|
||
|
|
gcvFEATURE_FULLLY_SUPPORT_INTEGER_BRANCH,
|
||
|
|
gcvFEATURE_SUPPORT_INTEGER_ATTRIBUTE,
|
||
|
|
gcvFEATURE_SUPPORT_MOVAI,
|
||
|
|
gcvFEATURE_NEED_FIX_FOR_CL_X,
|
||
|
|
gcvFEATURE_NEED_FIX_FOR_CL_XE,
|
||
|
|
gcvFEATURE_HAS_OUTPUT_COUNT_FIX,
|
||
|
|
gcvFEATURE_VARYING_PACKING_LIMITATION,
|
||
|
|
gcvFEATURE_HIGHP_VARYING_SHIFT,
|
||
|
|
gcvFEATURE_BUG_FIXES2,
|
||
|
|
gcvFEATURE_64K_L2_CACHE,
|
||
|
|
gcvFEATURE_128BTILE,
|
||
|
|
gcvFEATURE_ADVANCED_BLEND_OPT,
|
||
|
|
gcvFEATURE_SNAPPAGE_CMD_FIX,
|
||
|
|
gcvFEATURE_L2_CACHE_FOR_2D_420,
|
||
|
|
gcvFEATURE_TILE_STATUS_2BITS,
|
||
|
|
gcvFEATURE_EXTRA_SHADER_INSTRUCTIONS0,
|
||
|
|
gcvFEATURE_EXTRA_SHADER_INSTRUCTIONS1,
|
||
|
|
gcvFEATURE_EXTRA_SHADER_INSTRUCTIONS2,
|
||
|
|
gcvFEATURE_MEDIUM_PRECISION,
|
||
|
|
gcvFEATURE_FE20_BIT_INDEX,
|
||
|
|
gcvFEATURE_BUG_FIXES4,
|
||
|
|
gcvFEATURE_BUG_FIXES12,
|
||
|
|
gcvFEATURE_VMSAA,
|
||
|
|
gcvFEATURE_ROBUST_ATOMIC,
|
||
|
|
gcvFEATURE_32F_COLORMASK_FIX,
|
||
|
|
gcvFEATURE_NEW_GPIPE,
|
||
|
|
gcvFEATURE_RS_NEW_BASEADDR,
|
||
|
|
gcvFEATURE_TX_DXT,
|
||
|
|
gcvFEATURE_SH_FLAT_INTERPOLATION_DUAL16_FIX,
|
||
|
|
gcvFEATURE_EVIS,
|
||
|
|
gcvFEATURE_SH_SUPPORT_V4,
|
||
|
|
gcvFEATURE_SH_SUPPORT_ALPHA_KILL,
|
||
|
|
gcvFEATURE_PE_NO_ALPHA_TEST,
|
||
|
|
gcvFEATURE_SH_SNAP2PAGE_MAXPAGES_FIX,
|
||
|
|
gcvFEATURE_USC_FULLCACHE_FIX,
|
||
|
|
gcvFEATURE_PE_64bit_FENCE_FIX,
|
||
|
|
gcvFEATURE_BLT_8bit_256TILE_FC_FIX,
|
||
|
|
gcvFEATURE_PE_RGBA16I_FIX,
|
||
|
|
gcvFEATURE_BLT_64bpp_MASKED_CLEAR_FIX,
|
||
|
|
gcvFEATURE_SH_PSO_MSAA1x_FIX,
|
||
|
|
gcvFEATURE_USC_ATOMIC_FIX,
|
||
|
|
gcvFEATURE_INDEX_CONST_ON_B0,
|
||
|
|
gcvFEATURE_SH_NO_ONECONST_LIMIT,
|
||
|
|
gcvFEATURE_EVIS_NO_ABSDIFF,
|
||
|
|
gcvFEATURE_EVIS_NO_BITREPLACE,
|
||
|
|
gcvFEATURE_EVIS_NO_BOXFILTER,
|
||
|
|
gcvFEATURE_EVIS_NO_CORDIAC,
|
||
|
|
gcvFEATURE_EVIS_NO_DP32,
|
||
|
|
gcvFEATURE_EVIS_NO_FILTER,
|
||
|
|
gcvFEATURE_EVIS_NO_IADD,
|
||
|
|
gcvFEATURE_EVIS_NO_SELECTADD,
|
||
|
|
gcvFEATURE_EVIS_LERP_7OUTPUT,
|
||
|
|
gcvFEATURE_EVIS_ACCSQ_8OUTPUT,
|
||
|
|
gcvFEATURE_ROBUSTNESS,
|
||
|
|
gcvFEATURE_SECURITY,
|
||
|
|
gcvFEATURE_TX_YUV_ASSEMBLER_10BIT,
|
||
|
|
gcvFEATURE_USC_GOS_ADDR_FIX,
|
||
|
|
gcvFEATURE_SUPPORT_MSAA2X,
|
||
|
|
gcvFEATURE_TX_DESC_CACHE_CLOCKGATE_FIX,
|
||
|
|
gcvFEATURE_TX_INTEGER_COORDINATE,
|
||
|
|
gcvFEATURE_PSIO_SAMPLEMASK_IN_R0ZW_FIX,
|
||
|
|
gcvFEATURE_MULTI_CORE_BLOCK_SET_CONFIG,
|
||
|
|
gcvFEATURE_SH_IMG_LDST_ON_TEMP,
|
||
|
|
gcvFEATURE_TX_INTEGER_COORDINATE_V2,
|
||
|
|
gcvFEATURE_COMPUTE_ONLY,
|
||
|
|
gcvFEATURE_SH_IMG_LDST_CLAMP,
|
||
|
|
gcvFEATURE_SH_ICACHE_ALLOC_COUNT_FIX,
|
||
|
|
gcvFEATURE_MSAA_OQ_FIX,
|
||
|
|
gcvFEATURE_PE_ENHANCEMENTS2,
|
||
|
|
gcvFEATURE_PSIO_MSAA_CL_FIX,
|
||
|
|
gcvFEATURE_FE_NEED_DUMMYDRAW,
|
||
|
|
gcvFEATURE_MULTI_CLUSTER,
|
||
|
|
gcvFEATURE_PSIO_INTERLOCK,
|
||
|
|
gcvFEATURE_BLIT_COMPRESS_DEST,
|
||
|
|
gcvFEATURE_SH_MULTI_WG_PACK,
|
||
|
|
gcvFEATURE_FE_ROBUST_FIX,
|
||
|
|
gcvFEATURE_TX_ASTC_MULTISLICE_FIX,
|
||
|
|
gcvFEATURE_PSIO_DUAL16_32bpc_FIX,
|
||
|
|
gcvFEATURE_LS_SUPPORT_PER_COMP_DEPENDENCY,
|
||
|
|
gcvFEATURE_COMPRESSION_DEC400,
|
||
|
|
gcvFEATURE_SH_TEXLD_U_FIX,
|
||
|
|
gcvFEATURE_TX_FLUSH_L1CACHE,
|
||
|
|
gcvFEATURE_USC_DEFER_FILL_FIX,
|
||
|
|
gcvFEATURE_MC_FCCACHE_BYTEMASK,
|
||
|
|
gcvFEATURE_SH_MULTI_WG_PACK_FIX,
|
||
|
|
gcvFEATURE_FE_PATCHLIST_FETCH_FIX,
|
||
|
|
gcvFEATURE_RA_CG_FIX,
|
||
|
|
gcvFEATURE_EVIS_VX2,
|
||
|
|
gcvFEATURE_SH_HALF_DEPENDENCY_FIX,
|
||
|
|
gcvFEATURE_FE_BASEINSTANCE,
|
||
|
|
gcvFEATURE_FE_COMPUREINDIRECT_SKIP_UNIFORM,
|
||
|
|
gcvFEATURE_SH_CLOCK_GATE_FIX,
|
||
|
|
gcvFEATURE_GPIPE_CLOCK_GATE_FIX,
|
||
|
|
gcvFEATURE_TP_ENGINE,
|
||
|
|
gcvFEATURE_TX_BORDER_CLAMP_FIX,
|
||
|
|
gcvFEATURE_SH_IMAGE_LD_LAST_PIXEL_FIX,
|
||
|
|
gcvFEATURE_MULTI_CORE_BLOCK_SET_CONFIG2,
|
||
|
|
gcvFEATURE_MULTIGPU_SYNC_V3,
|
||
|
|
gcvFEATURE_PE_VMSAA_COVERAGE_CACHE_FIX,
|
||
|
|
gcvFEATURE_SECURITY_AHB,
|
||
|
|
gcvFEATURE_TX_LERP_LESS_BIT,
|
||
|
|
gcvFEATURE_SMALL_BATCH,
|
||
|
|
gcvFEATURE_SH_IDIV0_SWZL_EHS,
|
||
|
|
gcvFEATURE_SH_CMPLX,
|
||
|
|
gcvFEATURE_VIP_V7,
|
||
|
|
gcvFEATURE_SH_GM_ENDIAN,
|
||
|
|
gcvFEATURE_SH_GM_USC_UNALLOC,
|
||
|
|
gcvFEATURE_SH_END_OF_BB,
|
||
|
|
gcvFEATURE_ASYNC_BLIT,
|
||
|
|
gcvFEATURE_ASYNC_FE_FENCE_FIX,
|
||
|
|
gcvFEATURE_PSCS_THROTTLE,
|
||
|
|
gcvFEATURE_SEPARATE_LS,
|
||
|
|
gcvFEATURE_PA_VARYING_COMPONENT_TOGGLE_FIX,
|
||
|
|
gcvFEATURE_TX_MULTISAMPLER_FC_FIX,
|
||
|
|
gcvFEATURE_WIDELINE_TRIANGLE_EMU,
|
||
|
|
gcvFEATURE_FENCE,
|
||
|
|
gcvFEATURE_MCFE,
|
||
|
|
gcvFEATURE_NN_INTERLEAVE8,
|
||
|
|
gcvFEATURE_TP_REORDER,
|
||
|
|
gcvFEATURE_TP_RTNE,
|
||
|
|
gcvFEATURE_TP_LRN,
|
||
|
|
gcvFEATURE_TP_ROI_POOLING,
|
||
|
|
gcvFEATURE_TP_MAX_POOLING_STRIDE1,
|
||
|
|
gcvFEATURE_NN_BRICK_MODE,
|
||
|
|
gcvFEATURE_NN_BORDER_MODE,
|
||
|
|
gcvFEATURE_NN_FP16_ALU,
|
||
|
|
gcvFEATURE_NN_BF16_ALU,
|
||
|
|
gcvFEATURE_NN_INT16_ALU,
|
||
|
|
gcvFEATURE_NN_ZDP3,
|
||
|
|
gcvFEATURE_NN_ZDP6,
|
||
|
|
gcvFEATURE_PE_DEPTH_ONLY_OQFIX,
|
||
|
|
gcvFEATURE_TX_SNORM_SUPPORT,
|
||
|
|
gcvFEATURE_HWMANAGED_LS,
|
||
|
|
gcvFEATURE_SH_SCATTER_GATHER,
|
||
|
|
gcvFEATURE_NN_POWER_ISOLATION,
|
||
|
|
gcvFEATURE_SWTILING_PHASE1,
|
||
|
|
gcvFEATURE_SWTILING_PHASE2,
|
||
|
|
gcvFEATURE_SWTILING_PHASE3,
|
||
|
|
gcvFEATURE_TF_QUANTIZATION,
|
||
|
|
gcvFEATURE_NN_XYDP9,
|
||
|
|
gcvFEATURE_TP_SIMPLE_INT16,
|
||
|
|
gcvFEATURE_TP_REAL_INT16,
|
||
|
|
gcvFEATURE_NN_FIRST_PIXEL_POOLING,
|
||
|
|
gcvFEATURE_NN_STRIDE_SUPPORT,
|
||
|
|
gcvFEATURE_NN_XYDP6,
|
||
|
|
gcvFEATURE_NN_XYDP0,
|
||
|
|
gcvFEATURE_TP_REORDER_FIX,
|
||
|
|
gcvFEATURE_NN_CONV1x1_PERF_FIX,
|
||
|
|
gcvFEATURE_NN_CACHELINE_MODE_PERF_FIX,
|
||
|
|
gcvFEATURE_NN_PER3DTILE_BUBBLE_FIX,
|
||
|
|
gcvFEATURE_SH_IO_CG_FIX,
|
||
|
|
gcvFEATURE_USC_STAY_LRU,
|
||
|
|
gcvFEATURE_NN_NONZERO_MIRROR_BORDER,
|
||
|
|
gcvFEATURE_NN_COEF_DECOMPRESS_PERF2X,
|
||
|
|
gcvFEATURE_4BIT_INPUT,
|
||
|
|
gcvFEATURE_COEF_COMPRESSION_ENHANCEMENT,
|
||
|
|
gcvFEATURE_NN_ZDP3_NO_COMPRESS_FIX,
|
||
|
|
gcvFEATURE_NN_ASYNC_COPY_PERF_FIX,
|
||
|
|
gcvFEATURE_OCB_COUNTER,
|
||
|
|
gcvFEATURE_NN_ZXDP3_KERNEL_READ_CONFLICT_FIX,
|
||
|
|
gcvFEATURE_NN_FULLCACHE_KERNEL_INTERLEAVE_FIX,
|
||
|
|
gcvFEATURE_DR_JD_DIFF_CONDITION_FOR_CACHELINE_MODE_PRE_FIX,
|
||
|
|
gcvFEATURE_USC_BOTTLENECK_FIX,
|
||
|
|
gcvFEATURE_OCB_REMAP_PHYSICAL_ADDRESS,
|
||
|
|
gcvFEATURE_BIT_NN_HW_LIMITATION_NATIVE_KER_1x2_2x1,
|
||
|
|
gcvFEATURE_NN_SLICE_PADDING_TO_64BYTE_ALIGN,
|
||
|
|
gcvFEATURE_NN_DW_1x1_CONV_MERGE,
|
||
|
|
gcvFEATURE_TP_REORDER_LAYER_SUSPEND_FIX,
|
||
|
|
gcvFEATURE_KERNEL_VIP_SRAM_READ_BW_LIMITATION_FIX,
|
||
|
|
gcvFEATURE_IMG_POP_PIPELINE_PAUSE_FIX,
|
||
|
|
gcvFEATURE_NN_SLOW_OUTPUT,
|
||
|
|
gcvFEATURE_NO_NARROW_POST_PROCESS_PIPE,
|
||
|
|
gcvFEATURE_TP_NN_PROBE,
|
||
|
|
gcvFEATURE_TP_23BITS_POST_MULTIPLIER,
|
||
|
|
gcvFEATURE_NN_TRANSPOSE,
|
||
|
|
gcvFEATURE_OUTIMAGE_X_BITWIDTH_LIMIT_FOR_NN_TRANSPOSE_FIX,
|
||
|
|
gcvFEATURE_TP_BFLOAT16,
|
||
|
|
gcvFEATURE_EVIS2_FLOP_RESET_FIX,
|
||
|
|
gcvFEATURE_USC_ASYNC_CP_RTN_FLOP_RESET_FIX,
|
||
|
|
gcvFEATURE_USC_EVICT_CTRL_FIFO_FLOP_RESET_FIX,
|
||
|
|
gcvFEATURE_NEGATIVE_POST_SHIFT_FIX,
|
||
|
|
gcvFEATURE_NN_COMMAND_KERNEL_REQUEST_CONFICT_FIX,
|
||
|
|
gcvFEATURE_NN_LEAKY_RELU,
|
||
|
|
gcvFEATURE_NN_PRELU,
|
||
|
|
gcvFEATURE_NN_NATIVE_STRIDE_TWO,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2,
|
||
|
|
gcvFEATURE_NN_TENSOR_ADD,
|
||
|
|
|
||
|
|
gcvFEATURE_IMAGE_LS_NO_FULLMASK_FIX,
|
||
|
|
gcvFEATURE_BLT_YUV_OUTPUT,
|
||
|
|
gcvFEATURE_PE_TILE_CACHE_FLUSH_FIX,
|
||
|
|
gcvFEATURE_SH_ROBUSTNESS_FIX,
|
||
|
|
gcvFEATURE_USC_ATOMIC_FIX2,
|
||
|
|
gcvFEATURE_MULTIVIEW_RENDER,
|
||
|
|
gcvFEATURE_FE_DRAW_DIRECT,
|
||
|
|
gcvFEATURE_TX_VKBORDER_MODE,
|
||
|
|
gcvFEATURE_TX_UNNORMALIZED_COORD,
|
||
|
|
gcvFEATURE_VG_IMAGE_16K,
|
||
|
|
gcvFEATURE_MULTICORE_CONFIG,
|
||
|
|
gcvFEATURE_PA_LINECLIP_FIX,
|
||
|
|
gcvFEATURE_NN_ENGINE,
|
||
|
|
gcvFEATURE_NN_ASYNC_COPY_MERGE_FIX,
|
||
|
|
gcvFEATURE_NN_CONVOUT_FIFO_DEPTH_FIX,
|
||
|
|
gcvFEATURE_NN_SMALLBATCH_PHASE1,
|
||
|
|
gcvFEATURE_TP_SMALLBATCH_PHASE1,
|
||
|
|
gcvFEATURE_VIP_SCALER,
|
||
|
|
gcvFEATURE_VIP_SCALER_4K,
|
||
|
|
gcvFEATURE_TX_8bit_UVFrac_ROUNDING_FIX,
|
||
|
|
gcvFEATURE_NN_REQ_SLOWARBITRATION_FIX,
|
||
|
|
gcvFEATUER_IMAGE_PARTIAL_CACHE,
|
||
|
|
gcvFEATURE_FULLCACHE_KERNELHEAD_FIX,
|
||
|
|
gcvFEATURE_NN_SINGLEPORT_ACCUMBUFFER,
|
||
|
|
gcvFEATURE_NN_SMALLBATCH,
|
||
|
|
gcvFEATURE_TP_SMALLBATCH,
|
||
|
|
gcvFEATURE_NN_ZDP_INIMAGE_SIZE_FIX,
|
||
|
|
gcvFEATURE_HI_REORDER_FIX,
|
||
|
|
gcvFEATURE_TP_COEF_COMPRESSION_ENHANCEMENT,
|
||
|
|
gcvFEATURE_NN_DEPTHWISE_SUPPORT,
|
||
|
|
gcvFEATURE_IMAGE_NOT_PACKED_IN_SRAM_FIX,
|
||
|
|
gcvFEATURE_IDLE_BEFORE_FLUSH_COMPLETE_FIX,
|
||
|
|
gcvFEATURE_NO_FLUSH_USC_FIX,
|
||
|
|
gcvFEATURE_COEF_DELTA_CORD_OVERFLOW_ZRL_8BIT_FIX,
|
||
|
|
gcvFEATURE_XY_OFFSET_LIMITATION_FIX,
|
||
|
|
gcvFEATURE_USC_INVALIDATE_CACHE_LINE_FIX,
|
||
|
|
gcvFEATURE_LOW_EFFICIENCY_OF_ID_WRITE_IMGBUF_FIX,
|
||
|
|
gcvFEATURE_KERNEL_PER_CORE_LESS_THAN_THIRD_COEF_BUFF_DEPTH_FIX,
|
||
|
|
gcvFEATURE_NN_PER_CHANNEL_QUANT,
|
||
|
|
gcvFEATURE_NN_NO_Z_LOCATION_OFFSET,
|
||
|
|
gcvFEATURE_NN_KERNEL_SIZE_WASTE_IN_PARTIAL_MODE_FIX,
|
||
|
|
gcvFEATURE_INCORRECT_WR_REQ_TO_USC_BETWEEN_REORDER_AND_NORMAL_LAYER_FIX,
|
||
|
|
gcvFEATURE_VIP_DEC400,
|
||
|
|
gcvFEATURE_MAX_POINTSIZE_CLAMP,
|
||
|
|
gcvFEATURE_2D_FAST_CLEAR, /* For tilestatus Fast Clear feature*/
|
||
|
|
gcvFEATURE_NN_PER_CHANNEL_QUANT_ASYM,
|
||
|
|
gcvFEATURE_SMALL_BATCH_FLOPS_RESET_FIX,
|
||
|
|
gcvFEATURE_SMALL_BATCH_DISBLE_FIX,
|
||
|
|
gcvFEATURE_FORMAT_10BIT_CROSS_4K,
|
||
|
|
gcvFEATURE_ENDIAN_CONTROL,
|
||
|
|
gcvFEATURE_SH_VX2_FLOATING_MAD_FIX,
|
||
|
|
gcvFEATURE_PE_A8B8G8R8, /* For PE support A8B8G8R8 format feature*/
|
||
|
|
gcvFEATURE_DEPTHWISE_NEIGHBOR_IMG_DATA_TRANSFER_NOT_EFFICIENT_FIX,
|
||
|
|
|
||
|
|
/* FP16 enhancement-related features. */
|
||
|
|
gcvFEATURE_DST_TEX_I2F_F2I_INST_DEPRECATE,
|
||
|
|
gcvFEATURE_ALU_FP16_INST_SUPPORT,
|
||
|
|
gcvFEATURE_DUAL16_14BIT_PC_SUPPORT,
|
||
|
|
gcvFEATURE_LDST_CONV_4ROUNDING_MODES,
|
||
|
|
gcvFEATURE_FULL_PACK_MODE_SUPPORT,
|
||
|
|
gcvFEATURE_FP32_TO_FP16_CONV_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_SH_HAS_IMGLD_COMP_COUNT_FIX,
|
||
|
|
gcvFEATURE_SH_SUPPORT_FP32_FMA,
|
||
|
|
|
||
|
|
gcvFEATURE_SH_SUPPORT_VEC2_INT_MULMAD,
|
||
|
|
gcvFEATURE_SH_SUPPORT_VEC4_INT_MULMAD,
|
||
|
|
|
||
|
|
gcvFEATURE_SH_SUPPORT_HIGHPVEC_FORMAT,
|
||
|
|
gcvFEATURE_SH_HAS_32BIT_NEG_OFFSET_FIX_FOR_40BIT_VA,
|
||
|
|
gcvFEATURE_SH_SUPPORT_AIGM,
|
||
|
|
gcvFEATURE_SH_CS_PAGE_SIZE_ISSUE,
|
||
|
|
gcvFEATURE_SH_INTEGER_FRONT_FACE,
|
||
|
|
gcvFEATURE_SH_SUPPORT_MULTIVIEWPORT,
|
||
|
|
|
||
|
|
gcvFEATURE_SH_PER_STAGE_LOCAL_STORAGE,
|
||
|
|
gcvFEATURE_SH_SUPPORT_SEPARATED_TEX,
|
||
|
|
gcvFEATURE_SH_SUPPORT_CLIP_CULL_DISTANCE,
|
||
|
|
gcvFEATURE_SH_D3D11_SUPPORT,
|
||
|
|
|
||
|
|
gcvFEATURE_SH_DYNAMIC_TEXTURE_INDEXING,
|
||
|
|
|
||
|
|
/* AIGPU feature. */
|
||
|
|
gcvFEATURE_AI_GPU,
|
||
|
|
gcvFEATURE_NN_FAST_FIRST_PIXEL_POOLING,
|
||
|
|
gcvFEATURE_NN_FLOAT_POST_MULT,
|
||
|
|
gcvFEATURE_NN_ASYMMETRIC_INT8,
|
||
|
|
|
||
|
|
gcvFEATURE_FORMAT_YUV_I010, /*support YUVI010 & P010_LSB format*/
|
||
|
|
gcvFEATURE_FORMAT_YUV420_101010, /*support YUV420_101010 format*/
|
||
|
|
gcvFEATURE_FORMAT_FLOATPOINT, /*support FloatPoint format,also include packed-RGB888*/
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_COMPRESSION_BYPASSS,
|
||
|
|
gcvFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE,
|
||
|
|
gcvFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN,
|
||
|
|
gcvFEATURE_PREPROCESS_IMG_BUF_640BYTE_LIMIT,
|
||
|
|
gcvFEATURE_BIT_TPLITE_BFLOAT16,
|
||
|
|
gcvFEATURE_VIP_HW_FINAL_RELEASE,
|
||
|
|
gcvFEATURE_OUTPUT_CONVERT_UINT8_INT8_TO_UINT16_INT16_FIX,
|
||
|
|
gcvFEATURE_IMG_ADDR_NOT_WRAP_IF_OVER_OCB_ADDR_FIX, /* 2089 */
|
||
|
|
gcvFEATURE_BIT_V8_SINGLE_PORT_ACCUMULATION_BUFFER_RW_CONFICT_ZERO_SKIP_PERF_FIX, /* 2043 */
|
||
|
|
gcvFEATURE_BIT_BURST_COLLECT_DUMMY_DATA_WASTE_CYCLES_FIX, /* 2111 */
|
||
|
|
gcvFEATURE_BIT_TP_ACCESS_VIPSRAM_OT_IS_ONE_FIX, /* 2050 */
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_USE_SINGLE_PORT_VIPSRAM,
|
||
|
|
gcvFEATURE_VALUE_DDR_KERNEL_BURST_SIZE,
|
||
|
|
gcvFEATURE_BIT_TILE_ACCESS_CAPABILITY,
|
||
|
|
gcvFEATURE_BIT_FAST_DP3_PREPROCESSOR,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_INIMG_NOT_64BYTE_ALIGN_CACHELINE_MODE_FIX, /* 2112 */
|
||
|
|
gcvFEATURE_BIT_DEPTHWISE_16BIT_FORMAT,
|
||
|
|
|
||
|
|
gcvFEATURE_2D_TILESTATUS_ROTATION, /*Fix fastclear feature with rotation*/
|
||
|
|
gcvFEATURE_BIT_TP_FC_FLOAT_LAST_PIXEL_NEGATIVE_0_FIX,
|
||
|
|
gcvFEATURE_TS_FC_VULKAN_SUPPORT,
|
||
|
|
gcvFEATURE_BIT_V8_ACCUMLATION_READ_OUT_HAS_BUBBLES_PERF_FIX, /* 2044 */
|
||
|
|
gcvFEATURE_BIT_MAX_TILE_SIZE,
|
||
|
|
gcvFEATURE_2D_TARGET_MAJOR_SUPER_TILE, /*target support supertile Y major*/
|
||
|
|
gcvFEATURE_BIT_INIMAGE_2DTILE_NOT_LESS_160PIXEL_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX, /* 2131 */
|
||
|
|
gcvFEATURE_BIT_US_SRAM_READ_INTF_FIFO_OVERFLOW_FIX, /* 2280 */
|
||
|
|
|
||
|
|
/* TP reorder the int tile x should be less than 512 */
|
||
|
|
gcvFEATURE_TP_REORDER_INTILE_X_SIZE_512_FIX,
|
||
|
|
gcvFEATURE_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX,
|
||
|
|
gcvFEATURE_BIT_BFP_COEF_AUTO_PAD_INCOMPLETE_ZERO_IN_KZ_PLANE,
|
||
|
|
gcvFEATURE_NN_FLOAT32_IO,
|
||
|
|
gcvFEATURE_TP_FLOAT32_IO,
|
||
|
|
/* add for support INT16x(U)INT8 */
|
||
|
|
gcvFEATURE_BIT_NN_23BITS_POST_MULTIPLIER_VIP_V7,
|
||
|
|
gcvFEATURE_BIT_TP_23BITS_POST_MULTIPLIER_VIP_V7,
|
||
|
|
gcvFEATURE_CONV_INT16X8BIT_VIP_V7,
|
||
|
|
|
||
|
|
/* Q channel support. */
|
||
|
|
gcvFEATURE_Q_CHANNEL_SUPPORT,
|
||
|
|
|
||
|
|
/* MMU descriptor new refinement. */
|
||
|
|
gcvFEATURE_MMU_PAGE_DESCRIPTOR,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_TILE_NUM_BIGGER_THAN_1024_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_HI1_L2_CACHE,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_CONV_1D,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX,
|
||
|
|
|
||
|
|
/* only support gcvSURF_B8G8R8_PLANAR & gcvSURF_AYUV format as target */
|
||
|
|
gcvFEATURE_BIT_BGR_PLANAR,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_USC_INDIVIDUAL_PORT_WRT_EARLY_EVICT_DATA_CORRUPT_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_TP_SOFTMAX,
|
||
|
|
gcvFEATURE_TP_TENSOR_ADD_MUL,
|
||
|
|
|
||
|
|
gcvFEATURE_NN_REMOVE_POOLING,
|
||
|
|
gcvFEATURE_BIT_NN_DEPTHWISE_INT16XINT8,
|
||
|
|
gcvFEATURE_BIT_NN_DEPTHWISE_8BIT_VIP_V7,
|
||
|
|
gcvFEATURE_BIT_NN_ZDP_TRANSPOSE_CH9_ONLY,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_DUMMY_TILE,
|
||
|
|
gcvFEATURE_BIT_USE_VIPSRAM_FOR_KERNEL_STREAMING,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN,
|
||
|
|
gcvFEATURE_BIT_NN_SMALL_BATCH_PHASE2,
|
||
|
|
gcvFEATURE_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_ENHANCED_MAX_POOLING,
|
||
|
|
gcvFEATURE_NN_1x1_NON_POOLING_PACKING,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_ALU,
|
||
|
|
gcvFEATURE_BIT_NN_TRANSPOSE_PHASE2,
|
||
|
|
gcvFEATURE_BIT_NN_FC_ENHANCEMENT,
|
||
|
|
gcvFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_TENSOR_ADD_FIELD_MOVE_TO_EXT_CMD,
|
||
|
|
|
||
|
|
gcvFEATURE_IMGLD_WIDTH_LT16_FIX,
|
||
|
|
gcvFEATURE_BIT_GPU_INSPECTOR_COUNTERS,
|
||
|
|
|
||
|
|
gcvFEATURE_VIP_REMOVE_MMU,
|
||
|
|
gcvFEATURE_BIT_TPLITE_SUPPORT_TP_DATA_TRANSPOSE,
|
||
|
|
gcvFEATURE_BIT_NN_JD_DIRECT_MODE_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_CONV_CORE_BYPASS,
|
||
|
|
gcvFEATURE_BIT_TP_REMOVE_FC,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_TENSOR_ADD_RELU,
|
||
|
|
gcvFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16,
|
||
|
|
gcvFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16,
|
||
|
|
gcvFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32,
|
||
|
|
gcvFEATURE_BIT_NN_POST_OUT_SUPPORT_INT32,
|
||
|
|
gcvFEATURE_BIT_DEPTHWISE_FLOAT_FIX,
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Using event 28 as frame done interrupt, set by End command with bit 28
|
||
|
|
* interrupt enabled by AHB 0x14 register and clear by 0x10 register.
|
||
|
|
*/
|
||
|
|
gcvFEATURE_2D_FRAME_DONE_INTR,
|
||
|
|
gcvFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_POST_MULT_SUPPORT_FP_CONV,
|
||
|
|
|
||
|
|
/*
|
||
|
|
* support AXI Front-End hardware moudle for IP (subsystem) directly interfacing
|
||
|
|
* to SOC through AXI port.
|
||
|
|
*/
|
||
|
|
gcvFEATURE_BIT_AXI_FE,
|
||
|
|
gcvFEATURE_BIT_V83_1ST_CACHE_MODE_VIPSRAM_RD_UPDATE_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_KERNEL_MSS_SBP2_DIRECT_STEAM_STEAM_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_RD_IMG_NEED_EXTRA_SPACE,
|
||
|
|
gcvFEATURE_BIT_V83_NUMOFPENDINGTILES_FOR_2NDIMAGE_FIX,
|
||
|
|
gcvFEATURE_BIT_CORE_NUM_OF_KID_FOR_MULTI_LAYER_FIX,
|
||
|
|
gcvFEATURE_BIT_USC_RW_SAME_CACHELINE_UPDATE_FIX,
|
||
|
|
gcvFEATURE_BIT_V83_1ST_KERNEL_STREAM_BUFFER_UPDATE_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_CMD_SUPPORT_SLICE,
|
||
|
|
gcvFEATURE_BIT_NN_HW_V83,
|
||
|
|
|
||
|
|
/* ANDROID_ONLY_RESERVED,reserve some non-android features:
|
||
|
|
* (1)Line drawing,
|
||
|
|
* (2)8x8 pattern,
|
||
|
|
* (3)Index8 format,
|
||
|
|
* (4)Demultiply,
|
||
|
|
* (5)Alpha blending:(ONE,ONE_MINUS_SRC_ALPHA),(SRC_ALPHA,ONE_MINUS_SRC_ALPHA),global alpha and pre-multiply,
|
||
|
|
* (6)Rectangle clear and fill,
|
||
|
|
* (7)Rotation.Android uses'90 deg','H flip','V flip'three bits to describe 8 transformations.
|
||
|
|
*/
|
||
|
|
gcvFEATURE_ANDROID_ONLY_RESERVED,
|
||
|
|
gcvFEATURE_2D_MULTISOURCE_PIPE, /* move bitblit/stretchblit pipe line to multisource blit */
|
||
|
|
gcvFEATURE_2D_MASK_AND_COLORKEY, /* maskblit and src/dst color key */
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_V83_INTILESIZE_1X1_10BITS_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_CIRCULAR_BUF_WRAP_ADDRESS_OVERFLOW_FIX,
|
||
|
|
gcvFEATURE_BIT_TP_CIRCULAR_BUF_WRAP_ADDRESS_OVERFLOW_FIX,
|
||
|
|
gcvFEATURE_BIT_TP_CIRCULAR_BUF_WRAP_ADDRESS_LESS_FIX,
|
||
|
|
gcvFEATURE_BIT_USC_PAUSE_TP_WR_REQ_MORE_THAN_256_CYCLES_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_TP_SPECIAL_LIST_PARSER_FIX, /* 2365 */
|
||
|
|
|
||
|
|
gcvFEATURE_2D_STRETCH_MULTISOURCE_PIPE, /* move stretchblit pipe line to multisource blit */
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_PA_ZEROAREA_LINE_FIX, /* HW 2380 */
|
||
|
|
gcvFEATURE_BIT_RS_TILER_YUV420_FIX, /* HW 2114 */
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_JOB_CANCELATION,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_V8_DIRECT_MODE_START_ADDR_BIAS_FOR_NEGATIVE_OFFSET_FIX,
|
||
|
|
|
||
|
|
/* only support gcvSURF_B8G8R8_PLANAR & gcvSURF_AYUV format as source */
|
||
|
|
gcvFEATURE_BIT_BGR_PLANAR_SOURCE,
|
||
|
|
|
||
|
|
gcvFEATURE_2D_FC_IN_DEC400EX,/* 2D Fast Clear support in DEC400EX */
|
||
|
|
gcvFEATURE_BIT_DIRECT_INIMAGE_XSTIDE_LE_13BIT_FIX,
|
||
|
|
gcvFEATURE_BIT_PE_64BPP_LINEAR_FORMAT,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_MULTI_AXI_ID,
|
||
|
|
gcvFEATURE_BIT_NN_STREAM_PROCESSOR,
|
||
|
|
gcvFEATURE_BIT_TRSPB2_ENDADDR_EQUAL_SRAMEND_FIX,
|
||
|
|
|
||
|
|
/* Feature about normalization */
|
||
|
|
gcvFEATURE_2D_NORMALIZATION,
|
||
|
|
gcvFEATURE_2D_NORMALIZATION_QUANTIZATION,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_16_8_QUANTIZATION,
|
||
|
|
gcvFEATURE_BIT_SPECIAL_8BIT_SIGN_ABS_CONV,
|
||
|
|
gcvFEATURE_BIT_VIP_SUPPORT_TENSOR_TRANSFER,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_CMD_LOOP,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_1ST_AND_2ND_INIMAGE_RAISE_VIPSRAM_RD_UPDATE_AT_SAME_TIME_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_1ST_AND_2ND_INIMAGE_RAISE_VIPSRAM_RD_UPDATE_AT_SAME_TIME_PHASE1_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_1ST_AND_2ND_INIMAGE_RAISE_VIPSRAM_RD_UPDATE_AT_SAME_TIME_PHASE2_FIX,
|
||
|
|
gcvFEATURE_BIT_SECONDIMG_TILE_SIDEBANFIFO_FIX,
|
||
|
|
|
||
|
|
gcvFEATURE_BIT_NN_4BIT_PHASE1,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_DECONVNxN_S_LESS_THAN_16,
|
||
|
|
gcvFEATURE_BIT_NN_PICOCORE_DEPTHWISE,
|
||
|
|
gcvFEATURE_BIT_NN_SINGLE_POSTMULT_FIELDS_IN_BITSTREAM,
|
||
|
|
gcvFEATURE_VALUE_NN_SMALL_ACCUM_BITS,
|
||
|
|
gcvFEATURE_VALUE_NN_SMALL_ACCUM,
|
||
|
|
gcvFEATURE_BIT_VIP_SUPPORT_X_FRAME_COMPRESSION,
|
||
|
|
gcvFEATURE_NN_SUPPORT_EFUSE,
|
||
|
|
gcvFEATURE_BIT_NN_WRITE_WITHOUT_USC,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_CONFIGURABLE_FASTXDP3,
|
||
|
|
gcvFEATURE_BIT_SH_SUPPORT_VEC2,
|
||
|
|
gcvFEATURE_BIT_KERNEL_WR_RD_LUTLOAD_DIRECTMODE_ADDR_FIX,
|
||
|
|
gcvFEATURE_VALUE_NN_COEF_DECOMPRESS_PERF_X,
|
||
|
|
gcvFEATURE_BIT_VZ_GROUP_START_Z_OVERFLOW_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_SPLIT_X_AMONG_CLUSTE,
|
||
|
|
gcvFEATURE_BIT_SRAM_PARITY,
|
||
|
|
gcvFEATURE_BIT_TRSP2_CONV_SMALLBATCH_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_GEMM_PHASE1,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_GEMM_PHASE2,
|
||
|
|
gcvFEATURE_NN_TENSOR_ADD_INT16,
|
||
|
|
gcvFEATURE_BIT_DEPTHTOSPACE_SAME_XY_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_SUPPORT_ZDP_LOOP6,
|
||
|
|
gcvFEATURE_NN_ELEMENTWISE_BROADCAST,
|
||
|
|
gcvFEATURE_NN_2ND_IMAGE_DATA_TYPE,
|
||
|
|
gcvFEATURE_BIT_FP_INIMAGE_POST_SCALE,
|
||
|
|
gcvFEATURE_BIT_FASTXDP3_ONLY_IN_DEPTHWISE_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX,
|
||
|
|
gcvFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX,
|
||
|
|
gcvFEATURE_BIT_PERF_KERNEL_DESCRIPTOR_SOURCE_FIX,
|
||
|
|
|
||
|
|
/* Insert features above this comment only. */
|
||
|
|
gcvFEATURE_COUNT /* Not a feature. */
|
||
|
|
} gceFEATURE;
|
||
|
|
|
||
|
|
/* Chip Power Status. */
|
||
|
|
typedef enum _gceCHIPPOWERSTATE {
|
||
|
|
gcvPOWER_INVALID = -1,
|
||
|
|
|
||
|
|
/* Global/base states. */
|
||
|
|
gcvPOWER_ON = 0,
|
||
|
|
gcvPOWER_IDLE,
|
||
|
|
gcvPOWER_SUSPEND,
|
||
|
|
gcvPOWER_OFF,
|
||
|
|
|
||
|
|
/* Power on but not global or broadcast. */
|
||
|
|
gcvPOWER_ON_AUTO,
|
||
|
|
|
||
|
|
/* Broadcast states. */
|
||
|
|
gcvPOWER_FLAG_BROADCAST = 0x10,
|
||
|
|
gcvPOWER_IDLE_BROADCAST = gcvPOWER_IDLE | gcvPOWER_FLAG_BROADCAST,
|
||
|
|
gcvPOWER_SUSPEND_BROADCAST = gcvPOWER_SUSPEND | gcvPOWER_FLAG_BROADCAST,
|
||
|
|
gcvPOWER_OFF_BROADCAST = gcvPOWER_OFF | gcvPOWER_FLAG_BROADCAST,
|
||
|
|
|
||
|
|
/* Timeout states. */
|
||
|
|
gcvPOWER_FLAG_TIMEOUT = 0x20,
|
||
|
|
gcvPOWER_IDLE_TIMEOUT = gcvPOWER_IDLE | gcvPOWER_FLAG_TIMEOUT,
|
||
|
|
gcvPOWER_SUSPEND_TIMEOUT = gcvPOWER_SUSPEND | gcvPOWER_FLAG_TIMEOUT,
|
||
|
|
gcvPOWER_OFF_TIMEOUT = gcvPOWER_OFF | gcvPOWER_FLAG_TIMEOUT,
|
||
|
|
|
||
|
|
} gceCHIPPOWERSTATE;
|
||
|
|
|
||
|
|
/* CPU cache operations */
|
||
|
|
typedef enum _gceCACHEOPERATION {
|
||
|
|
gcvCACHE_CLEAN = 0x01, /* Flush CPU cache to mem */
|
||
|
|
gcvCACHE_INVALIDATE = 0x02, /* Invalidte CPU cache */
|
||
|
|
gcvCACHE_FLUSH = gcvCACHE_CLEAN | gcvCACHE_INVALIDATE, /* Both flush & invalidate */
|
||
|
|
gcvCACHE_MEMORY_BARRIER = 0x04
|
||
|
|
} gceCACHEOPERATION;
|
||
|
|
|
||
|
|
/* Surface types. */
|
||
|
|
typedef enum _gceSURF_TYPE {
|
||
|
|
gcvSURF_TYPE_UNKNOWN = 0,
|
||
|
|
gcvSURF_INDEX,
|
||
|
|
gcvSURF_VERTEX,
|
||
|
|
gcvSURF_TEXTURE,
|
||
|
|
gcvSURF_RENDER_TARGET,
|
||
|
|
gcvSURF_DEPTH,
|
||
|
|
gcvSURF_BITMAP,
|
||
|
|
gcvSURF_TILE_STATUS,
|
||
|
|
gcvSURF_IMAGE,
|
||
|
|
gcvSURF_MASK,
|
||
|
|
gcvSURF_SCISSOR,
|
||
|
|
gcvSURF_HIERARCHICAL_DEPTH,
|
||
|
|
gcvSURF_ICACHE,
|
||
|
|
gcvSURF_TXDESC,
|
||
|
|
gcvSURF_FENCE,
|
||
|
|
gcvSURF_TFBHEADER,
|
||
|
|
gcvSURF_NUM_TYPES, /* Make sure this is the last one! */
|
||
|
|
|
||
|
|
/* Combinations. */
|
||
|
|
gcvSURF_NO_TILE_STATUS = 0x100,
|
||
|
|
gcvSURF_NO_VIDMEM = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
|
||
|
|
* In Android, vidmem node is allocated by another process.
|
||
|
|
*/
|
||
|
|
gcvSURF_CACHEABLE = 0x400, /* Used to allocate a cacheable surface */
|
||
|
|
gcvSURF_TILE_RLV_FENCE = 0x800, /* create texture fence as tile */
|
||
|
|
gcvSURF_TILE_STATUS_DIRTY = 0x1000, /* Init tile status to all dirty */
|
||
|
|
gcvSURF_LINEAR = 0x2000,
|
||
|
|
gcvSURF_CREATE_AS_TEXTURE = 0x4000, /* create it as a texture */
|
||
|
|
gcvSURF_PROTECTED_CONTENT = 0x8000, /* create it as content protected */
|
||
|
|
gcvSURF_CREATE_AS_DISPLAYBUFFER = 0x10000, /*create it as a display buffer surface */
|
||
|
|
gcvSURF_CONTIGUOUS = 0x20000, /*create it as contiguous */
|
||
|
|
gcvSURF_NO_COMPRESSION = 0x40000, /* Create it as no compression, valid on when it has tile status. */
|
||
|
|
gcvSURF_DEC = 0x80000, /* Surface is DEC compressed */
|
||
|
|
gcvSURF_NO_HZ = 0x100000,
|
||
|
|
gcvSURF_3D = 0x200000, /* It's 3d surface */
|
||
|
|
gcvSURF_DMABUF_EXPORTABLE = 0x400000, /* master node can be exported as dma-buf fd */
|
||
|
|
gcvSURF_CACHE_MODE_128 = 0x800000,
|
||
|
|
gcvSURF_TILED = 0x1000000, /* force create tile buffer, as we will convert it to supertile according to related hardware feature by default */
|
||
|
|
gcvSURF_FORCE_32BIT_VA = 0x2000000, /* force allocate 32bit VA */
|
||
|
|
gcvSURF_LINEAR_NO_ALIGNMENT = 0x4000000, /* only for linear render target buffer */
|
||
|
|
|
||
|
|
gcvSURF_TEXTURE_LINEAR = gcvSURF_TEXTURE
|
||
|
|
| gcvSURF_LINEAR,
|
||
|
|
|
||
|
|
gcvSURF_RENDER_TARGET_LINEAR = gcvSURF_RENDER_TARGET
|
||
|
|
| gcvSURF_LINEAR,
|
||
|
|
|
||
|
|
gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
|
||
|
|
| gcvSURF_NO_TILE_STATUS,
|
||
|
|
|
||
|
|
gcvSURF_RENDER_TARGET_NO_COMPRESSION = gcvSURF_RENDER_TARGET
|
||
|
|
| gcvSURF_NO_COMPRESSION,
|
||
|
|
|
||
|
|
gcvSURF_RENDER_TARGET_TS_DIRTY = gcvSURF_RENDER_TARGET
|
||
|
|
| gcvSURF_TILE_STATUS_DIRTY,
|
||
|
|
|
||
|
|
gcvSURF_DEPTH_NO_TILE_STATUS = gcvSURF_DEPTH
|
||
|
|
| gcvSURF_NO_TILE_STATUS,
|
||
|
|
|
||
|
|
gcvSURF_DEPTH_TS_DIRTY = gcvSURF_DEPTH
|
||
|
|
| gcvSURF_TILE_STATUS_DIRTY,
|
||
|
|
|
||
|
|
/* Supported surface types with no vidmem node. */
|
||
|
|
gcvSURF_BITMAP_NO_VIDMEM = gcvSURF_BITMAP
|
||
|
|
| gcvSURF_NO_VIDMEM,
|
||
|
|
|
||
|
|
gcvSURF_TEXTURE_NO_VIDMEM = gcvSURF_TEXTURE
|
||
|
|
| gcvSURF_NO_VIDMEM,
|
||
|
|
|
||
|
|
/* Cacheable surface types with no vidmem node. */
|
||
|
|
gcvSURF_CACHEABLE_BITMAP_NO_VIDMEM = gcvSURF_BITMAP_NO_VIDMEM
|
||
|
|
| gcvSURF_CACHEABLE,
|
||
|
|
|
||
|
|
gcvSURF_CACHEABLE_BITMAP = gcvSURF_BITMAP
|
||
|
|
| gcvSURF_CACHEABLE,
|
||
|
|
|
||
|
|
gcvSURF_TEXTURE_3D = gcvSURF_TEXTURE
|
||
|
|
| gcvSURF_3D
|
||
|
|
} gceSURF_TYPE;
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Surface formats.
|
||
|
|
* Name rules is from MSB->LSB.
|
||
|
|
*/
|
||
|
|
typedef enum _gceSURF_FORMAT {
|
||
|
|
/* Unknown format. */
|
||
|
|
gcvSURF_UNKNOWN = 0,
|
||
|
|
|
||
|
|
/* Format test */
|
||
|
|
gcvSURF_TEST = 1,
|
||
|
|
|
||
|
|
/* Palettized formats. */
|
||
|
|
gcvSURF_INDEX1 = 100,
|
||
|
|
gcvSURF_INDEX4,
|
||
|
|
gcvSURF_INDEX8,
|
||
|
|
#if gcdVG_ONLY
|
||
|
|
gcvSURF_INDEX2,
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* RGB formats. */
|
||
|
|
gcvSURF_A2R2G2B2 = 200,
|
||
|
|
gcvSURF_R3G3B2,
|
||
|
|
gcvSURF_A8R3G3B2,
|
||
|
|
gcvSURF_X4R4G4B4,
|
||
|
|
gcvSURF_A4R4G4B4,
|
||
|
|
gcvSURF_R4G4B4A4,
|
||
|
|
gcvSURF_X1R5G5B5,
|
||
|
|
gcvSURF_A1R5G5B5,
|
||
|
|
gcvSURF_R5G5B5A1,
|
||
|
|
gcvSURF_R5G6B5,
|
||
|
|
gcvSURF_R8G8B8,
|
||
|
|
gcvSURF_X8R8G8B8,
|
||
|
|
gcvSURF_A8R8G8B8,
|
||
|
|
gcvSURF_R8G8B8A8,
|
||
|
|
gcvSURF_G8R8G8B8,
|
||
|
|
gcvSURF_R8G8B8G8,
|
||
|
|
gcvSURF_X2R10G10B10,
|
||
|
|
gcvSURF_A2R10G10B10,
|
||
|
|
gcvSURF_R10G10B10A2,
|
||
|
|
gcvSURF_X12R12G12B12,
|
||
|
|
gcvSURF_A12R12G12B12,
|
||
|
|
gcvSURF_X16R16G16B16,
|
||
|
|
gcvSURF_A16R16G16B16,
|
||
|
|
gcvSURF_A32R32G32B32,
|
||
|
|
gcvSURF_R8G8B8X8,
|
||
|
|
gcvSURF_R5G5B5X1,
|
||
|
|
gcvSURF_R4G4B4X4,
|
||
|
|
gcvSURF_X16R16G16B16_2_A8R8G8B8,
|
||
|
|
gcvSURF_A16R16G16B16_2_A8R8G8B8,
|
||
|
|
gcvSURF_A32R32G32B32_2_G32R32F,
|
||
|
|
gcvSURF_A32R32G32B32_4_A8R8G8B8,
|
||
|
|
gcvSURF_R8G8B8_PLANAR,
|
||
|
|
gcvSURF_R8G8B8I,
|
||
|
|
gcvSURF_R8G8B8I_PLANAR,
|
||
|
|
gcvSURF_R16G16B16I,
|
||
|
|
gcvSURF_R16G16B16I_PLANAR,
|
||
|
|
|
||
|
|
/* BGR formats. */
|
||
|
|
gcvSURF_A4B4G4R4 = 300,
|
||
|
|
gcvSURF_A1B5G5R5,
|
||
|
|
gcvSURF_B5G6R5,
|
||
|
|
gcvSURF_B8G8R8,
|
||
|
|
gcvSURF_B16G16R16,
|
||
|
|
gcvSURF_X8B8G8R8,
|
||
|
|
gcvSURF_A8B8G8R8,
|
||
|
|
gcvSURF_A2B10G10R10,
|
||
|
|
gcvSURF_X16B16G16R16,
|
||
|
|
gcvSURF_A16B16G16R16,
|
||
|
|
gcvSURF_B32G32R32,
|
||
|
|
gcvSURF_X32B32G32R32,
|
||
|
|
gcvSURF_A32B32G32R32,
|
||
|
|
gcvSURF_B4G4R4A4,
|
||
|
|
gcvSURF_B5G5R5A1,
|
||
|
|
gcvSURF_B8G8R8X8,
|
||
|
|
gcvSURF_B8G8R8A8,
|
||
|
|
gcvSURF_B10G10R10A2,
|
||
|
|
gcvSURF_X4B4G4R4,
|
||
|
|
gcvSURF_X1B5G5R5,
|
||
|
|
gcvSURF_B4G4R4X4,
|
||
|
|
gcvSURF_B5G5R5X1,
|
||
|
|
gcvSURF_X2B10G10R10,
|
||
|
|
gcvSURF_B8G8R8_SNORM,
|
||
|
|
gcvSURF_X8B8G8R8_SNORM,
|
||
|
|
gcvSURF_A8B8G8R8_SNORM,
|
||
|
|
gcvSURF_A8B12G12R12_2_A8R8G8B8,
|
||
|
|
gcvSURF_B8G8R8_PLANAR,
|
||
|
|
|
||
|
|
/* Compressed formats. */
|
||
|
|
gcvSURF_DXT1 = 400,
|
||
|
|
gcvSURF_DXT2,
|
||
|
|
gcvSURF_DXT3,
|
||
|
|
gcvSURF_DXT4,
|
||
|
|
gcvSURF_DXT5,
|
||
|
|
gcvSURF_CXV8U8,
|
||
|
|
gcvSURF_ETC1,
|
||
|
|
gcvSURF_R11_EAC,
|
||
|
|
gcvSURF_SIGNED_R11_EAC,
|
||
|
|
gcvSURF_RG11_EAC,
|
||
|
|
gcvSURF_SIGNED_RG11_EAC,
|
||
|
|
gcvSURF_RGB8_ETC2,
|
||
|
|
gcvSURF_SRGB8_ETC2,
|
||
|
|
gcvSURF_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
||
|
|
gcvSURF_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
||
|
|
gcvSURF_RGBA8_ETC2_EAC,
|
||
|
|
gcvSURF_SRGB8_ALPHA8_ETC2_EAC,
|
||
|
|
gcvSURF_SDXT1,
|
||
|
|
gcvSURF_SDXT3,
|
||
|
|
gcvSURF_SDXT5,
|
||
|
|
|
||
|
|
/* YUV formats. */
|
||
|
|
gcvSURF_YUY2 = 500,
|
||
|
|
gcvSURF_UYVY,
|
||
|
|
gcvSURF_YV12,
|
||
|
|
gcvSURF_I420,
|
||
|
|
gcvSURF_NV12,
|
||
|
|
gcvSURF_NV21,
|
||
|
|
gcvSURF_NV16,
|
||
|
|
gcvSURF_NV61,
|
||
|
|
gcvSURF_YVYU,
|
||
|
|
gcvSURF_VYUY,
|
||
|
|
gcvSURF_AYUV,
|
||
|
|
gcvSURF_YUV420_10_ST,
|
||
|
|
gcvSURF_YUV420_TILE_ST,
|
||
|
|
gcvSURF_YUV420_TILE_10_ST,
|
||
|
|
gcvSURF_NV12_10BIT,
|
||
|
|
gcvSURF_NV21_10BIT,
|
||
|
|
gcvSURF_NV16_10BIT,
|
||
|
|
gcvSURF_NV61_10BIT,
|
||
|
|
gcvSURF_P010,
|
||
|
|
gcvSURF_P010_LSB,
|
||
|
|
gcvSURF_I010,
|
||
|
|
gcvSURF_I010_LSB,
|
||
|
|
gcvSURF_YUV420_101010,
|
||
|
|
gcvSURF_GRAY8,
|
||
|
|
#if gcdVG_ONLY
|
||
|
|
gcvSURF_AYUY2,
|
||
|
|
gcvSURF_ANV12,
|
||
|
|
gcvSURF_ANV16,
|
||
|
|
gcvSURF_AUYVY,
|
||
|
|
gcvSURF_YV16,
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* Depth formats. */
|
||
|
|
gcvSURF_D16 = 600,
|
||
|
|
gcvSURF_D24S8,
|
||
|
|
gcvSURF_D32,
|
||
|
|
gcvSURF_D24X8,
|
||
|
|
gcvSURF_D32F,
|
||
|
|
gcvSURF_S8D32F,
|
||
|
|
gcvSURF_S8D32F_1_G32R32F,
|
||
|
|
gcvSURF_S8D32F_2_A8R8G8B8,
|
||
|
|
gcvSURF_D24S8_1_A8R8G8B8,
|
||
|
|
gcvSURF_S8,
|
||
|
|
gcvSURF_X24S8,
|
||
|
|
gcvSURF_X24S8_1_A8R8G8B8,
|
||
|
|
|
||
|
|
/* Alpha formats. */
|
||
|
|
gcvSURF_A4 = 700,
|
||
|
|
gcvSURF_A8,
|
||
|
|
gcvSURF_A12,
|
||
|
|
gcvSURF_A16,
|
||
|
|
gcvSURF_A32,
|
||
|
|
gcvSURF_A1,
|
||
|
|
|
||
|
|
/* Luminance formats. */
|
||
|
|
gcvSURF_L4 = 800,
|
||
|
|
gcvSURF_L8,
|
||
|
|
gcvSURF_L12,
|
||
|
|
gcvSURF_L16,
|
||
|
|
gcvSURF_L32,
|
||
|
|
gcvSURF_L1,
|
||
|
|
gcvSURF_L8_RAW,
|
||
|
|
|
||
|
|
/* Alpha/Luminance formats. */
|
||
|
|
gcvSURF_A4L4 = 900,
|
||
|
|
gcvSURF_A2L6,
|
||
|
|
gcvSURF_A8L8,
|
||
|
|
gcvSURF_A4L12,
|
||
|
|
gcvSURF_A12L12,
|
||
|
|
gcvSURF_A16L16,
|
||
|
|
|
||
|
|
gcvSURF_A8L8_1_A8R8G8B8,
|
||
|
|
|
||
|
|
gcvSURF_A8L8_RAW,
|
||
|
|
|
||
|
|
/* Bump formats. */
|
||
|
|
gcvSURF_L6V5U5 = 1000,
|
||
|
|
gcvSURF_V8U8,
|
||
|
|
gcvSURF_X8L8V8U8,
|
||
|
|
gcvSURF_Q8W8V8U8,
|
||
|
|
gcvSURF_A2W10V10U10,
|
||
|
|
gcvSURF_V16U16,
|
||
|
|
gcvSURF_Q16W16V16U16,
|
||
|
|
|
||
|
|
/* R/RG/RA formats. */
|
||
|
|
gcvSURF_R8 = 1100,
|
||
|
|
gcvSURF_X8R8,
|
||
|
|
gcvSURF_G8R8,
|
||
|
|
gcvSURF_X8G8R8,
|
||
|
|
gcvSURF_A8R8,
|
||
|
|
gcvSURF_R16,
|
||
|
|
gcvSURF_X16R16,
|
||
|
|
gcvSURF_G16R16,
|
||
|
|
gcvSURF_X16G16R16,
|
||
|
|
gcvSURF_A16R16,
|
||
|
|
gcvSURF_R32,
|
||
|
|
gcvSURF_X32R32,
|
||
|
|
gcvSURF_G32R32,
|
||
|
|
gcvSURF_X32G32R32,
|
||
|
|
gcvSURF_A32R32,
|
||
|
|
gcvSURF_RG16,
|
||
|
|
gcvSURF_R8_SNORM,
|
||
|
|
gcvSURF_G8R8_SNORM,
|
||
|
|
|
||
|
|
gcvSURF_R8_1_X8R8G8B8,
|
||
|
|
gcvSURF_G8R8_1_X8R8G8B8,
|
||
|
|
|
||
|
|
/* Floating point formats. */
|
||
|
|
gcvSURF_R16F = 1200,
|
||
|
|
gcvSURF_X16R16F,
|
||
|
|
gcvSURF_G16R16F,
|
||
|
|
gcvSURF_X16G16R16F,
|
||
|
|
gcvSURF_B16G16R16F,
|
||
|
|
gcvSURF_X16B16G16R16F,
|
||
|
|
gcvSURF_A16B16G16R16F,
|
||
|
|
gcvSURF_R32F,
|
||
|
|
gcvSURF_X32R32F,
|
||
|
|
gcvSURF_G32R32F,
|
||
|
|
gcvSURF_X32G32R32F,
|
||
|
|
gcvSURF_B32G32R32F,
|
||
|
|
gcvSURF_X32B32G32R32F,
|
||
|
|
gcvSURF_A32B32G32R32F,
|
||
|
|
gcvSURF_A16F,
|
||
|
|
gcvSURF_L16F,
|
||
|
|
gcvSURF_A16L16F,
|
||
|
|
gcvSURF_A16R16F,
|
||
|
|
gcvSURF_A32F,
|
||
|
|
gcvSURF_L32F,
|
||
|
|
gcvSURF_A32L32F,
|
||
|
|
gcvSURF_A32R32F,
|
||
|
|
gcvSURF_E5B9G9R9,
|
||
|
|
gcvSURF_B10G11R11F,
|
||
|
|
gcvSURF_B16G16R16F_PLANAR,
|
||
|
|
gcvSURF_B32G32R32F_PLANAR,
|
||
|
|
gcvSURF_R16G16B16F,
|
||
|
|
gcvSURF_R32G32B32F,
|
||
|
|
|
||
|
|
gcvSURF_GRAY16F,
|
||
|
|
gcvSURF_GRAY32F,
|
||
|
|
|
||
|
|
gcvSURF_X16B16G16R16F_2_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16F_2_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16F_2_G16R16F,
|
||
|
|
gcvSURF_G32R32F_2_A8R8G8B8,
|
||
|
|
gcvSURF_X32B32G32R32F_2_G32R32F,
|
||
|
|
gcvSURF_A32B32G32R32F_2_G32R32F,
|
||
|
|
gcvSURF_X32B32G32R32F_4_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32F_4_A8R8G8B8,
|
||
|
|
|
||
|
|
gcvSURF_R16F_1_A4R4G4B4,
|
||
|
|
gcvSURF_G16R16F_1_A8R8G8B8,
|
||
|
|
gcvSURF_B16G16R16F_2_A8R8G8B8,
|
||
|
|
|
||
|
|
gcvSURF_R32F_1_A8R8G8B8,
|
||
|
|
gcvSURF_B32G32R32F_3_A8R8G8B8,
|
||
|
|
gcvSURF_B10G11R11F_1_A8R8G8B8,
|
||
|
|
|
||
|
|
gcvSURF_A32F_1_R32F,
|
||
|
|
gcvSURF_L32F_1_R32F,
|
||
|
|
gcvSURF_A32L32F_1_G32R32F,
|
||
|
|
|
||
|
|
gcvSURF_R16G16B16F_PLANAR,
|
||
|
|
gcvSURF_R32G32B32F_PLANAR,
|
||
|
|
|
||
|
|
/* sRGB format. */
|
||
|
|
gcvSURF_SBGR8 = 1400,
|
||
|
|
gcvSURF_A8_SBGR8,
|
||
|
|
gcvSURF_X8_SBGR8,
|
||
|
|
gcvSURF_A8_SRGB8,
|
||
|
|
gcvSURF_X8_SRGB8,
|
||
|
|
|
||
|
|
/* Integer formats. */
|
||
|
|
gcvSURF_R8I = 1500,
|
||
|
|
gcvSURF_R8UI,
|
||
|
|
gcvSURF_R16I,
|
||
|
|
gcvSURF_R16UI,
|
||
|
|
gcvSURF_R32I,
|
||
|
|
gcvSURF_R32UI,
|
||
|
|
gcvSURF_X8R8I,
|
||
|
|
gcvSURF_G8R8I,
|
||
|
|
gcvSURF_X8R8UI,
|
||
|
|
gcvSURF_G8R8UI,
|
||
|
|
gcvSURF_X16R16I,
|
||
|
|
gcvSURF_G16R16I,
|
||
|
|
gcvSURF_X16R16UI,
|
||
|
|
gcvSURF_G16R16UI,
|
||
|
|
gcvSURF_X32R32I,
|
||
|
|
gcvSURF_G32R32I,
|
||
|
|
gcvSURF_X32R32UI,
|
||
|
|
gcvSURF_G32R32UI,
|
||
|
|
gcvSURF_X8G8R8I,
|
||
|
|
gcvSURF_B8G8R8I,
|
||
|
|
gcvSURF_X8G8R8UI,
|
||
|
|
gcvSURF_B8G8R8UI,
|
||
|
|
gcvSURF_X16G16R16I,
|
||
|
|
gcvSURF_B16G16R16I,
|
||
|
|
gcvSURF_X16G16R16UI,
|
||
|
|
gcvSURF_B16G16R16UI,
|
||
|
|
gcvSURF_X32G32R32I,
|
||
|
|
gcvSURF_B32G32R32I,
|
||
|
|
gcvSURF_X32G32R32UI,
|
||
|
|
gcvSURF_B32G32R32UI,
|
||
|
|
gcvSURF_X8B8G8R8I,
|
||
|
|
gcvSURF_A8B8G8R8I,
|
||
|
|
gcvSURF_X8B8G8R8UI,
|
||
|
|
gcvSURF_A8B8G8R8UI,
|
||
|
|
gcvSURF_X16B16G16R16I,
|
||
|
|
gcvSURF_A16B16G16R16I,
|
||
|
|
gcvSURF_X16B16G16R16UI,
|
||
|
|
gcvSURF_A16B16G16R16UI,
|
||
|
|
gcvSURF_X32B32G32R32I,
|
||
|
|
gcvSURF_A32B32G32R32I,
|
||
|
|
gcvSURF_X32B32G32R32UI,
|
||
|
|
gcvSURF_A32B32G32R32UI,
|
||
|
|
gcvSURF_A2B10G10R10UI,
|
||
|
|
gcvSURF_G32R32I_2_A8R8G8B8,
|
||
|
|
gcvSURF_G32R32I_1_G32R32F,
|
||
|
|
gcvSURF_G32R32UI_2_A8R8G8B8,
|
||
|
|
gcvSURF_G32R32UI_1_G32R32F,
|
||
|
|
gcvSURF_X16B16G16R16I_2_A8R8G8B8,
|
||
|
|
gcvSURF_X16B16G16R16I_1_G32R32F,
|
||
|
|
gcvSURF_A16B16G16R16I_2_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16I_1_G32R32F,
|
||
|
|
gcvSURF_X16B16G16R16UI_2_A8R8G8B8,
|
||
|
|
gcvSURF_X16B16G16R16UI_1_G32R32F,
|
||
|
|
gcvSURF_A16B16G16R16UI_2_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16UI_1_G32R32F,
|
||
|
|
gcvSURF_X32B32G32R32I_2_G32R32I,
|
||
|
|
gcvSURF_A32B32G32R32I_2_G32R32I,
|
||
|
|
gcvSURF_A32B32G32R32I_2_G32R32F,
|
||
|
|
gcvSURF_X32B32G32R32I_3_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32I_4_A8R8G8B8,
|
||
|
|
gcvSURF_X32B32G32R32UI_2_G32R32UI,
|
||
|
|
gcvSURF_A32B32G32R32UI_2_G32R32UI,
|
||
|
|
gcvSURF_A32B32G32R32UI_2_G32R32F,
|
||
|
|
gcvSURF_X32B32G32R32UI_3_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32UI_4_A8R8G8B8,
|
||
|
|
gcvSURF_A2B10G10R10UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_A8B8G8R8I_1_A8R8G8B8,
|
||
|
|
gcvSURF_A8B8G8R8UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_R8I_1_A4R4G4B4,
|
||
|
|
gcvSURF_R8UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_R16I_1_A4R4G4B4,
|
||
|
|
gcvSURF_R16UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_R32I_1_A8R8G8B8,
|
||
|
|
gcvSURF_R32UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_X8R8I_1_A4R4G4B4,
|
||
|
|
gcvSURF_X8R8UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_G8R8I_1_A4R4G4B4,
|
||
|
|
gcvSURF_G8R8UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_X16R16I_1_A4R4G4B4,
|
||
|
|
gcvSURF_X16R16UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_G16R16I_1_A8R8G8B8,
|
||
|
|
gcvSURF_G16R16UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_X32R32I_1_A8R8G8B8,
|
||
|
|
gcvSURF_X32R32UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_X8G8R8I_1_A4R4G4B4,
|
||
|
|
gcvSURF_X8G8R8UI_1_A4R4G4B4,
|
||
|
|
gcvSURF_B8G8R8I_1_A8R8G8B8,
|
||
|
|
gcvSURF_B8G8R8UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_B16G16R16I_2_A8R8G8B8,
|
||
|
|
gcvSURF_B16G16R16I_1_G32R32F,
|
||
|
|
gcvSURF_B16G16R16UI_2_A8R8G8B8,
|
||
|
|
gcvSURF_B16G16R16UI_1_G32R32F,
|
||
|
|
gcvSURF_B32G32R32I_3_A8R8G8B8,
|
||
|
|
gcvSURF_B32G32R32UI_3_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16_2_A8R8G8B8,
|
||
|
|
gcvSURF_R8G8B8_1_A8R8G8B8,
|
||
|
|
gcvSURF_G16R16_1_A8R8G8B8,
|
||
|
|
gcvSURF_A2B10G10R10_1_A8R8G8B8,
|
||
|
|
gcvSURF_A2R10G10B10_1_A8R8G8B8,
|
||
|
|
gcvSURF_A2W10V10U10_1_A8R8G8B8,
|
||
|
|
|
||
|
|
/* ASTC formats. */
|
||
|
|
gcvSURF_ASTC4x4 = 1600,
|
||
|
|
gcvSURF_ASTC5x4,
|
||
|
|
gcvSURF_ASTC5x5,
|
||
|
|
gcvSURF_ASTC6x5,
|
||
|
|
gcvSURF_ASTC6x6,
|
||
|
|
gcvSURF_ASTC8x5,
|
||
|
|
gcvSURF_ASTC8x6,
|
||
|
|
gcvSURF_ASTC8x8,
|
||
|
|
gcvSURF_ASTC10x5,
|
||
|
|
gcvSURF_ASTC10x6,
|
||
|
|
gcvSURF_ASTC10x8,
|
||
|
|
gcvSURF_ASTC10x10,
|
||
|
|
gcvSURF_ASTC12x10,
|
||
|
|
gcvSURF_ASTC12x12,
|
||
|
|
gcvSURF_ASTC4x4_SRGB,
|
||
|
|
gcvSURF_ASTC5x4_SRGB,
|
||
|
|
gcvSURF_ASTC5x5_SRGB,
|
||
|
|
gcvSURF_ASTC6x5_SRGB,
|
||
|
|
gcvSURF_ASTC6x6_SRGB,
|
||
|
|
gcvSURF_ASTC8x5_SRGB,
|
||
|
|
gcvSURF_ASTC8x6_SRGB,
|
||
|
|
gcvSURF_ASTC8x8_SRGB,
|
||
|
|
gcvSURF_ASTC10x5_SRGB,
|
||
|
|
gcvSURF_ASTC10x6_SRGB,
|
||
|
|
gcvSURF_ASTC10x8_SRGB,
|
||
|
|
gcvSURF_ASTC10x10_SRGB,
|
||
|
|
gcvSURF_ASTC12x10_SRGB,
|
||
|
|
gcvSURF_ASTC12x12_SRGB,
|
||
|
|
|
||
|
|
/* Recompile format*/
|
||
|
|
gcvSURF_L16_1_A4R4G4B4 = 1700,
|
||
|
|
gcvSURF_V16U16_1_A8R8G8B8,
|
||
|
|
gcvSURF_Q8W8V8U8_1_A8R8G8B8,
|
||
|
|
gcvSURF_X8L8V8U8_1_A8R8G8B8,
|
||
|
|
gcvSURF_R3G3B2_1_A8R8G8B8,
|
||
|
|
gcvSURF_A8R3G3B2_1_A8R8G8B8,
|
||
|
|
gcvSURF_W11V11U10_1_A8R8G8B8,
|
||
|
|
gcvSURF_Q16W16V16U16_2_A8R8G8B8,
|
||
|
|
gcvSURF_W11V11U10,
|
||
|
|
gcvSURF_V8U8_1_A4R4G4B4,
|
||
|
|
gcvSURF_A8B8G8R8_1_A8R8G8B8,
|
||
|
|
gcvSURF_A32R32G32B32_1_A8R8G8B8,
|
||
|
|
gcvSURF_X16B16G16R16F_1_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16F_1_A8R8G8B8,
|
||
|
|
gcvSURF_G32R32F_1_A8R8G8B8,
|
||
|
|
gcvSURF_X32B32G32R32F_1_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32F_1_A8R8G8B8,
|
||
|
|
gcvSURF_G32R32I_1_A8R8G8B8,
|
||
|
|
gcvSURF_G32R32UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32I_1_A8R8G8B8,
|
||
|
|
gcvSURF_A32B32G32R32UI_1_A8R8G8B8,
|
||
|
|
gcvSURF_Q16W16V16U16_1_A8R8G8B8,
|
||
|
|
gcvSURF_A16B16G16R16_1_A8R8G8B8,
|
||
|
|
|
||
|
|
/* Integer formats (2)) */
|
||
|
|
gcvSURF_R10G10B10A2UI = 1800,
|
||
|
|
gcvSURF_R5G6B5UI,
|
||
|
|
gcvSURF_B5G6R5UI,
|
||
|
|
gcvSURF_R3G3B2UI,
|
||
|
|
gcvSURF_B2G3R3UI,
|
||
|
|
gcvSURF_R4G4B4A4UI,
|
||
|
|
gcvSURF_A4B4G4R4UI,
|
||
|
|
gcvSURF_R5G5B5A1UI,
|
||
|
|
gcvSURF_A1B5G5R5UI,
|
||
|
|
gcvSURF_R8G8B8A8UI,
|
||
|
|
|
||
|
|
/* GL4 formats */
|
||
|
|
gcvSURF_G8 = 1900,
|
||
|
|
gcvSURF_B8,
|
||
|
|
gcvSURF_G32F,
|
||
|
|
gcvSURF_B32F,
|
||
|
|
|
||
|
|
/* Intensity formats */
|
||
|
|
gcvSURF_I4 = 2000,
|
||
|
|
gcvSURF_I8,
|
||
|
|
gcvSURF_I12,
|
||
|
|
gcvSURF_I16,
|
||
|
|
|
||
|
|
/* D3D typeless format*/
|
||
|
|
gcvSURF_R32G32B32A32_TYPELESS = 2100,
|
||
|
|
gcvSURF_R32G32B32_TYPELESS,
|
||
|
|
gcvSURF_R16G16B16A16_TYPELESS,
|
||
|
|
gcvSURF_R32G32_TYPELESS,
|
||
|
|
gcvSURF_R32G8X24_TYPELESS,
|
||
|
|
gcvSURF_R32_FLOAT_X8X24_TYPELESS,
|
||
|
|
gcvSURF_X32_TYPELESS_G8X24_UINT,
|
||
|
|
gcvSURF_R10G10B10A2_TYPELESS,
|
||
|
|
gcvSURF_R8G8B8A8_TYPELESS,
|
||
|
|
gcvSURF_R16G16_TYPELESS,
|
||
|
|
gcvSURF_R32_TYPELESS,
|
||
|
|
gcvSURF_R24G8_TYPELESS,
|
||
|
|
gcvSURF_R24_UNORM_X8_TYPELESS,
|
||
|
|
gcvSURF_X24_TYPELESS_G8_UINT,
|
||
|
|
gcvSURF_R8G8_TYPELESS,
|
||
|
|
gcvSURF_R16_TYPELESS,
|
||
|
|
gcvSURF_R8_TYPELESS,
|
||
|
|
gcvSURF_BC1_TYPELESS,
|
||
|
|
gcvSURF_BC2_TYPELESS,
|
||
|
|
gcvSURF_BC3_TYPELESS,
|
||
|
|
gcvSURF_BC4_TYPELESS,
|
||
|
|
gcvSURF_BC5_TYPELESS,
|
||
|
|
gcvSURF_B8G8R8A8_TYPELESS,
|
||
|
|
gcvSURF_B8G8R8X8_TYPELESS,
|
||
|
|
gcvSURF_BC6H_TYPELESS,
|
||
|
|
gcvSURF_BC7_TYPELESS,
|
||
|
|
} gceSURF_FORMAT;
|
||
|
|
|
||
|
|
/* Pipes. */
|
||
|
|
typedef enum _gcePIPE_SELECT {
|
||
|
|
gcvPIPE_INVALID = ~0,
|
||
|
|
gcvPIPE_3D = 0,
|
||
|
|
gcvPIPE_2D
|
||
|
|
} gcePIPE_SELECT;
|
||
|
|
|
||
|
|
/* Hardware type. */
|
||
|
|
typedef enum _gceHARDWARE_TYPE {
|
||
|
|
gcvHARDWARE_INVALID,
|
||
|
|
gcvHARDWARE_3D2D,
|
||
|
|
gcvHARDWARE_3D,
|
||
|
|
gcvHARDWARE_2D,
|
||
|
|
gcvHARDWARE_VIP,
|
||
|
|
gcvHARDWARE_VG,
|
||
|
|
gcvHARDWARE_NUM_TYPES,
|
||
|
|
} gceHARDWARE_TYPE;
|
||
|
|
|
||
|
|
/* User signal command codes. */
|
||
|
|
typedef enum _gceUSER_SIGNAL_COMMAND_CODES {
|
||
|
|
gcvUSER_SIGNAL_CREATE,
|
||
|
|
gcvUSER_SIGNAL_DESTROY,
|
||
|
|
gcvUSER_SIGNAL_SIGNAL,
|
||
|
|
gcvUSER_SIGNAL_WAIT,
|
||
|
|
gcvUSER_SIGNAL_MAP,
|
||
|
|
gcvUSER_SIGNAL_UNMAP,
|
||
|
|
} gceUSER_SIGNAL_COMMAND_CODES;
|
||
|
|
|
||
|
|
/* Shared buffer command codes. */
|
||
|
|
typedef enum _gceSHBUF_COMMAND_CODES {
|
||
|
|
gcvSHBUF_CREATE,
|
||
|
|
gcvSHBUF_DESTROY,
|
||
|
|
gcvSHBUF_MAP,
|
||
|
|
gcvSHBUF_WRITE,
|
||
|
|
gcvSHBUF_READ,
|
||
|
|
} gceSHBUF_COMMAND_CODES;
|
||
|
|
|
||
|
|
/* Event locations. */
|
||
|
|
typedef enum _gceKERNEL_WHERE {
|
||
|
|
gcvKERNEL_COMMAND,
|
||
|
|
gcvKERNEL_VERTEX,
|
||
|
|
gcvKERNEL_TRIANGLE,
|
||
|
|
gcvKERNEL_TEXTURE,
|
||
|
|
gcvKERNEL_PIXEL,
|
||
|
|
gcvKERNEL_BLT,
|
||
|
|
} gceKERNEL_WHERE;
|
||
|
|
|
||
|
|
typedef enum _gceBLOCK {
|
||
|
|
gcvBLOCK_COMMAND,
|
||
|
|
gcvBLOCK_TESSELLATOR,
|
||
|
|
gcvBLOCK_TESSELLATOR2,
|
||
|
|
gcvBLOCK_TESSELLATOR3,
|
||
|
|
gcvBLOCK_RASTER,
|
||
|
|
gcvBLOCK_VG,
|
||
|
|
gcvBLOCK_VG2,
|
||
|
|
gcvBLOCK_VG3,
|
||
|
|
gcvBLOCK_PIXEL,
|
||
|
|
|
||
|
|
/* Number of defined blocks. */
|
||
|
|
gcvBLOCK_COUNT
|
||
|
|
} gceBLOCK;
|
||
|
|
|
||
|
|
typedef enum _gceCORE_3D_MASK {
|
||
|
|
gcvCORE_3D_0_MASK = (1 << 0),
|
||
|
|
gcvCORE_3D_1_MASK = (1 << 1),
|
||
|
|
|
||
|
|
gcvCORE_3D_ALL_MASK = (0xFFFF)
|
||
|
|
} gceCORE_3D_MASK;
|
||
|
|
|
||
|
|
typedef enum _gceCORE_3D_ID {
|
||
|
|
gcvCORE_3D_0_ID = 0,
|
||
|
|
gcvCORE_3D_1_ID = 1,
|
||
|
|
|
||
|
|
gcvCORE_3D_ID_INVALID = ~0UL
|
||
|
|
} gceCORE_3D_ID;
|
||
|
|
|
||
|
|
typedef enum _gceCORE_2D_MASK {
|
||
|
|
gcvCORE_2D_0_MASK = (1 << 0),
|
||
|
|
gcvCORE_2D_1_MASK = (1 << 1),
|
||
|
|
gcvCORE_2D_2_MASK = (1 << 2),
|
||
|
|
gcvCORE_2D_3_MASK = (1 << 3),
|
||
|
|
|
||
|
|
gcvCORE_2D_ALL_MASK = (0xFFFF)
|
||
|
|
} gceCORE_2D_MASK;
|
||
|
|
|
||
|
|
typedef enum _gceCORE_2D_ID {
|
||
|
|
gcvCORE_2D_0_ID = 0,
|
||
|
|
gcvCORE_2D_1_ID = 1,
|
||
|
|
|
||
|
|
gcvCORE_2D_ID_INVALID = ~0UL
|
||
|
|
} gceCORE_2D_ID;
|
||
|
|
|
||
|
|
|
||
|
|
typedef enum _gceCHIP_FLAG {
|
||
|
|
gcvCHIP_FLAG_MSAA_COHERENCEY_ECO_FIX = 1 << 0,
|
||
|
|
gcvCHIP_FLAG_GC2000_R2 = 1 << 1,
|
||
|
|
gcvCHIP_AXI_BUS128_BITS = 1 << 2,
|
||
|
|
} gceCHIP_FLAG;
|
||
|
|
|
||
|
|
/* If different, choose render engine */
|
||
|
|
#define PRIORITY_ENGINE(a, b) gcmMIN(a, b)
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
gcvENGINE_RENDER = 0,
|
||
|
|
gcvENGINE_BLT = 1,
|
||
|
|
gcvENGINE_GPU_ENGINE_COUNT = 2,
|
||
|
|
gcvENGINE_CPU = gcvENGINE_GPU_ENGINE_COUNT,
|
||
|
|
gcvENGINE_ALL_COUNT = gcvENGINE_CPU + 1,
|
||
|
|
gcvENGINE_INVALID = gcvENGINE_ALL_COUNT + 0x100
|
||
|
|
} gceENGINE;
|
||
|
|
|
||
|
|
/* CORE enum. */
|
||
|
|
typedef enum _gceCORE {
|
||
|
|
gcvCORE_MAJOR,
|
||
|
|
gcvCORE_3D1,
|
||
|
|
gcvCORE_3D2,
|
||
|
|
gcvCORE_3D3,
|
||
|
|
gcvCORE_3D4,
|
||
|
|
gcvCORE_3D5,
|
||
|
|
gcvCORE_3D6,
|
||
|
|
gcvCORE_3D7,
|
||
|
|
gcvCORE_3D8,
|
||
|
|
gcvCORE_3D9,
|
||
|
|
gcvCORE_3D10,
|
||
|
|
gcvCORE_3D11,
|
||
|
|
gcvCORE_3D12,
|
||
|
|
gcvCORE_3D13,
|
||
|
|
gcvCORE_3D14,
|
||
|
|
gcvCORE_3D15,
|
||
|
|
gcvCORE_3D_MAX = gcvCORE_3D15,
|
||
|
|
gcvCORE_2D,
|
||
|
|
gcvCORE_2D1,
|
||
|
|
gcvCORE_2D2,
|
||
|
|
gcvCORE_2D3,
|
||
|
|
gcvCORE_2D_MAX = gcvCORE_2D3,
|
||
|
|
gcvCORE_VG,
|
||
|
|
#if gcdDEC_ENABLE_AHB
|
||
|
|
gcvCORE_DEC,
|
||
|
|
#endif
|
||
|
|
gcvCORE_COUNT
|
||
|
|
} gceCORE;
|
||
|
|
|
||
|
|
#define gcdCORE_3D_COUNT (gcvCORE_3D_MAX + 1)
|
||
|
|
#define gcdCORE_2D_COUNT 4
|
||
|
|
|
||
|
|
#define gcdMAX_MAJOR_CORE_COUNT (gcvCORE_2D_MAX + 1)
|
||
|
|
|
||
|
|
#ifndef gcdDEVICE_COUNT
|
||
|
|
#define gcdDEVICE_COUNT 2
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcdPLATFORM_COUNT
|
||
|
|
#define gcdPLATFORM_COUNT gcdDEVICE_COUNT
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcvSRAM_EXT_COUNT
|
||
|
|
#define gcvSRAM_EXT_COUNT gcdDEVICE_COUNT
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcdSYSTEM_RESERVE_COUNT
|
||
|
|
#define gcdSYSTEM_RESERVE_COUNT gcdDEVICE_COUNT
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcdLOCAL_MEMORY_COUNT
|
||
|
|
#define gcdLOCAL_MEMORY_COUNT gcdDEVICE_COUNT
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcdGLOBAL_CORE_COUNT
|
||
|
|
#define gcdGLOBAL_CORE_COUNT (gcdDEVICE_COUNT * gcdCORE_3D_COUNT)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef gcdGLOBAL_2D_COUNT
|
||
|
|
#define gcdGLOBAL_2D_COUNT gcdCORE_2D_COUNT
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#define gcdCHIP_COUNT gcdGLOBAL_CORE_COUNT
|
||
|
|
|
||
|
|
typedef enum _gceSECURE_MODE {
|
||
|
|
/* For cores without gcvFEATURE_SECURITY. */
|
||
|
|
gcvSECURE_NONE,
|
||
|
|
|
||
|
|
/* Use registers added in gcvFEATURE_SECURITY in normal driver,
|
||
|
|
* In this mode, GPU always works under non secure mode and
|
||
|
|
* should not touch secure buffer. It is used to test basic function.
|
||
|
|
*/
|
||
|
|
gcvSECURE_IN_NORMAL,
|
||
|
|
|
||
|
|
/* Make use of gcvFEATURE_SECURITY in trust application. */
|
||
|
|
gcvSECURE_IN_TA
|
||
|
|
} gceSECURE_MODE;
|
||
|
|
|
||
|
|
/* kernel driver compression option, as it's a system global option,
|
||
|
|
* it means kernel driver allows the options, NOT necessarily means it must be on.
|
||
|
|
*/
|
||
|
|
typedef enum _gceCOMPRESSION_OPTION {
|
||
|
|
gcvCOMPRESSION_OPTION_NONE = 0x0, /* No any compression */
|
||
|
|
gcvCOMPRESSION_OPTION_COLOR = 0x1, /* Compression for non-msaa color format */
|
||
|
|
gcvCOMPRESSION_OPTION_DEPTH = 0x2, /* Compression for non-msaa depth format */
|
||
|
|
gcvCOMPRESSION_OPTION_MSAA_COLOR = 0x4, /* Compression for msaa color */
|
||
|
|
gcvCOMPRESSION_OPTION_MSAA_DEPTH = 0x8, /* Compression for msaa depth */
|
||
|
|
|
||
|
|
/* default compressio option */
|
||
|
|
gcvCOMPRESSION_OPTION_DEFAULT = gcvCOMPRESSION_OPTION_DEPTH |
|
||
|
|
gcvCOMPRESSION_OPTION_COLOR |
|
||
|
|
gcvCOMPRESSION_OPTION_MSAA_COLOR |
|
||
|
|
gcvCOMPRESSION_OPTION_MSAA_DEPTH,
|
||
|
|
} gceCOMPRESSION_OPTION;
|
||
|
|
|
||
|
|
typedef enum _gceSRAM_INTERNAL {
|
||
|
|
gcvSRAM_INTERNAL0 = 0,
|
||
|
|
gcvSRAM_INTERNAL1,
|
||
|
|
|
||
|
|
gcvSRAM_INTER_COUNT
|
||
|
|
} gceSRAM_INTERNAL;
|
||
|
|
|
||
|
|
typedef enum _gceFLATMAP_FLAG {
|
||
|
|
gcvFLATMAP_DIRECT,
|
||
|
|
gcvFLATMAP_SHIFT,
|
||
|
|
} gceFLATMAP_FLAG;
|
||
|
|
|
||
|
|
/* Video memory alloation type. */
|
||
|
|
typedef enum _gceVIDMEM_TYPE {
|
||
|
|
gcvVIDMEM_TYPE_GENERIC = gcvSURF_TYPE_UNKNOWN,
|
||
|
|
gcvVIDMEM_TYPE_INDEX_BUFFER = gcvSURF_INDEX,
|
||
|
|
gcvVIDMEM_TYPE_VERTEX_BUFFER = gcvSURF_VERTEX,
|
||
|
|
gcvVIDMEM_TYPE_TEXTURE = gcvSURF_TEXTURE,
|
||
|
|
gcvVIDMEM_TYPE_COLOR_BUFFER = gcvSURF_RENDER_TARGET,
|
||
|
|
gcvVIDMEM_TYPE_DEPTH_BUFFER = gcvSURF_DEPTH,
|
||
|
|
gcvVIDMEM_TYPE_BITMAP = gcvSURF_BITMAP,
|
||
|
|
gcvVIDMEM_TYPE_TILE_STATUS = gcvSURF_TILE_STATUS,
|
||
|
|
gcvVIDMEM_TYPE_IMAGE = gcvSURF_IMAGE,
|
||
|
|
gcvVIDMEM_TYPE_MASK = gcvSURF_MASK,
|
||
|
|
gcvVIDMEM_TYPE_SCISSOR = gcvSURF_SCISSOR,
|
||
|
|
gcvVIDMEM_TYPE_HZ_BUFFER = gcvSURF_HIERARCHICAL_DEPTH,
|
||
|
|
gcvVIDMEM_TYPE_ICACHE = gcvSURF_ICACHE,
|
||
|
|
gcvVIDMEM_TYPE_TXDESC = gcvSURF_TXDESC,
|
||
|
|
gcvVIDMEM_TYPE_FENCE = gcvSURF_FENCE,
|
||
|
|
gcvVIDMEM_TYPE_TFBHEADER = gcvSURF_TFBHEADER,
|
||
|
|
gcvVIDMEM_TYPE_COMMAND,
|
||
|
|
gcvVIDMEM_TYPE_COUNT
|
||
|
|
} gceVIDMEM_TYPE;
|
||
|
|
|
||
|
|
typedef enum _gceTASK {
|
||
|
|
gcvTASK_LINK,
|
||
|
|
gcvTASK_CLUSTER,
|
||
|
|
gcvTASK_INCREMENT,
|
||
|
|
gcvTASK_DECREMENT,
|
||
|
|
gcvTASK_SIGNAL,
|
||
|
|
gcvTASK_LOCKDOWN,
|
||
|
|
gcvTASK_UNLOCK_VIDEO_MEMORY,
|
||
|
|
gcvTASK_FREE_VIDEO_MEMORY,
|
||
|
|
gcvTASK_FREE_CONTIGUOUS_MEMORY,
|
||
|
|
} gceTASK;
|
||
|
|
|
||
|
|
/******************************************************************************
|
||
|
|
******************************** Status Codes ********************************
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
typedef enum _gceSTATUS {
|
||
|
|
gcvSTATUS_OK = 0,
|
||
|
|
gcvSTATUS_FALSE = 0,
|
||
|
|
gcvSTATUS_TRUE = 1,
|
||
|
|
gcvSTATUS_NO_MORE_DATA = 2,
|
||
|
|
gcvSTATUS_CACHED = 3,
|
||
|
|
gcvSTATUS_MIPMAP_TOO_LARGE = 4,
|
||
|
|
gcvSTATUS_NAME_NOT_FOUND = 5,
|
||
|
|
gcvSTATUS_NOT_OUR_INTERRUPT = 6,
|
||
|
|
gcvSTATUS_MISMATCH = 7,
|
||
|
|
gcvSTATUS_MIPMAP_TOO_SMALL = 8,
|
||
|
|
gcvSTATUS_LARGER = 9,
|
||
|
|
gcvSTATUS_SMALLER = 10,
|
||
|
|
gcvSTATUS_CHIP_NOT_READY = 11,
|
||
|
|
gcvSTATUS_NEED_CONVERSION = 12,
|
||
|
|
gcvSTATUS_SKIP = 13,
|
||
|
|
gcvSTATUS_DATA_TOO_LARGE = 14,
|
||
|
|
gcvSTATUS_INVALID_CONFIG = 15,
|
||
|
|
gcvSTATUS_CHANGED = 16,
|
||
|
|
gcvSTATUS_NOT_SUPPORT_DITHER = 17,
|
||
|
|
gcvSTATUS_EXECUTED = 18,
|
||
|
|
gcvSTATUS_TERMINATE = 19,
|
||
|
|
|
||
|
|
gcvSTATUS_INVALID_ARGUMENT = -1,
|
||
|
|
gcvSTATUS_INVALID_OBJECT = -2,
|
||
|
|
gcvSTATUS_OUT_OF_MEMORY = -3,
|
||
|
|
gcvSTATUS_MEMORY_LOCKED = -4,
|
||
|
|
gcvSTATUS_MEMORY_UNLOCKED = -5,
|
||
|
|
gcvSTATUS_HEAP_CORRUPTED = -6,
|
||
|
|
gcvSTATUS_GENERIC_IO = -7,
|
||
|
|
gcvSTATUS_INVALID_ADDRESS = -8,
|
||
|
|
gcvSTATUS_CONTEXT_LOSSED = -9,
|
||
|
|
gcvSTATUS_TOO_COMPLEX = -10,
|
||
|
|
gcvSTATUS_BUFFER_TOO_SMALL = -11,
|
||
|
|
gcvSTATUS_INTERFACE_ERROR = -12,
|
||
|
|
gcvSTATUS_NOT_SUPPORTED = -13,
|
||
|
|
gcvSTATUS_MORE_DATA = -14,
|
||
|
|
gcvSTATUS_TIMEOUT = -15,
|
||
|
|
gcvSTATUS_OUT_OF_RESOURCES = -16,
|
||
|
|
gcvSTATUS_INVALID_DATA = -17,
|
||
|
|
gcvSTATUS_INVALID_MIPMAP = -18,
|
||
|
|
gcvSTATUS_NOT_FOUND = -19,
|
||
|
|
gcvSTATUS_NOT_ALIGNED = -20,
|
||
|
|
gcvSTATUS_INVALID_REQUEST = -21,
|
||
|
|
gcvSTATUS_GPU_NOT_RESPONDING = -22,
|
||
|
|
gcvSTATUS_TIMER_OVERFLOW = -23,
|
||
|
|
gcvSTATUS_VERSION_MISMATCH = -24,
|
||
|
|
gcvSTATUS_LOCKED = -25,
|
||
|
|
gcvSTATUS_INTERRUPTED = -26,
|
||
|
|
gcvSTATUS_DEVICE = -27,
|
||
|
|
gcvSTATUS_NOT_MULTI_PIPE_ALIGNED = -28,
|
||
|
|
gcvSTATUS_OUT_OF_SAMPLER = -29,
|
||
|
|
gcvSTATUS_PROBE_LATER = -30,
|
||
|
|
gcvSTATUS_RESLUT_OVERFLOW = -31,
|
||
|
|
gcvSTATUS_RECOVERY = -32,
|
||
|
|
gcvSTATUS_CANCEL_JOB = -33,
|
||
|
|
|
||
|
|
/* register allocation errors. */
|
||
|
|
gcvSTATUS_OUT_OF_REG_FAIL = -100,
|
||
|
|
|
||
|
|
/* Linker errors. */
|
||
|
|
gcvSTATUS_GLOBAL_TYPE_MISMATCH = -1000,
|
||
|
|
gcvSTATUS_TOO_MANY_ATTRIBUTES = -1001,
|
||
|
|
gcvSTATUS_TOO_MANY_UNIFORMS = -1002,
|
||
|
|
gcvSTATUS_TOO_MANY_VARYINGS = -1003,
|
||
|
|
gcvSTATUS_UNDECLARED_VARYING = -1004,
|
||
|
|
gcvSTATUS_VARYING_TYPE_MISMATCH = -1005,
|
||
|
|
gcvSTATUS_MISSING_MAIN = -1006,
|
||
|
|
gcvSTATUS_NAME_MISMATCH = -1007,
|
||
|
|
gcvSTATUS_INVALID_INDEX = -1008,
|
||
|
|
gcvSTATUS_UNIFORM_MISMATCH = -1009,
|
||
|
|
gcvSTATUS_UNSAT_LIB_SYMBOL = -1010,
|
||
|
|
gcvSTATUS_TOO_MANY_SHADERS = -1011,
|
||
|
|
gcvSTATUS_LINK_INVALID_SHADERS = -1012,
|
||
|
|
gcvSTATUS_CS_NO_WORKGROUP_SIZE = -1013,
|
||
|
|
gcvSTATUS_LINK_LIB_ERROR = -1014,
|
||
|
|
|
||
|
|
gcvSTATUS_SHADER_VERSION_MISMATCH = -1015,
|
||
|
|
gcvSTATUS_TOO_MANY_INSTRUCTION = -1016,
|
||
|
|
gcvSTATUS_SSBO_MISMATCH = -1017,
|
||
|
|
gcvSTATUS_TOO_MANY_OUTPUT = -1018,
|
||
|
|
gcvSTATUS_TOO_MANY_INPUT = -1019,
|
||
|
|
gcvSTATUS_NOT_SUPPORT_CL = -1020,
|
||
|
|
gcvSTATUS_NOT_SUPPORT_INTEGER = -1021,
|
||
|
|
gcvSTATUS_UNIFORM_TYPE_MISMATCH = -1022,
|
||
|
|
|
||
|
|
gcvSTATUS_MISSING_PRIMITIVE_TYPE = -1023,
|
||
|
|
gcvSTATUS_MISSING_OUTPUT_VERTEX_COUNT = -1024,
|
||
|
|
gcvSTATUS_NON_INVOCATION_ID_AS_INDEX = -1025,
|
||
|
|
gcvSTATUS_INPUT_ARRAY_SIZE_MISMATCH = -1026,
|
||
|
|
gcvSTATUS_OUTPUT_ARRAY_SIZE_MISMATCH = -1027,
|
||
|
|
gcvSTATUS_LOCATION_ALIASED = -1028,
|
||
|
|
gcvSTATUS_LOCATION_OVERLAP = -1029,
|
||
|
|
gcvSTATUS_LOCATION_NOTCONSISTENT = -1030,
|
||
|
|
|
||
|
|
/* Compiler errors. */
|
||
|
|
gcvSTATUS_COMPILER_FE_PREPROCESSOR_ERROR = -2000,
|
||
|
|
gcvSTATUS_COMPILER_FE_PARSER_ERROR = -2001,
|
||
|
|
|
||
|
|
/* Recompilation Errors */
|
||
|
|
gcvSTATUS_RECOMPILER_CONVERT_UNIMPLEMENTED = -3000,
|
||
|
|
} gceSTATUS;
|
||
|
|
|
||
|
|
/* The patch types. */
|
||
|
|
enum _gceHAL_PATCH_TYPE {
|
||
|
|
gcvHAL_PATCH_VIDMEM_ADDRESS = 1,
|
||
|
|
gcvHAL_PATCH_MCFE_SEMAPHORE,
|
||
|
|
gcvHAL_PATCH_VIDMEM_TIMESTAMP,
|
||
|
|
|
||
|
|
/* Must be the last one for counting. */
|
||
|
|
gcvHAL_PATCH_TYPE_COUNT,
|
||
|
|
};
|
||
|
|
|
||
|
|
/******************************************************************************
|
||
|
|
******************************** Command Codes *******************************
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
typedef enum _gceHAL_COMMAND_CODES {
|
||
|
|
/*************** Common ***************/
|
||
|
|
|
||
|
|
/* Chip info: count, type and so on. */
|
||
|
|
gcvHAL_CHIP_INFO,
|
||
|
|
|
||
|
|
/* HAL driver version. */
|
||
|
|
gcvHAL_VERSION,
|
||
|
|
|
||
|
|
/* Query chip id and options. */
|
||
|
|
gcvHAL_QUERY_CHIP_IDENTITY,
|
||
|
|
gcvHAL_QUERY_CHIP_OPTION,
|
||
|
|
|
||
|
|
/* Query chip frequency, used by CL. */
|
||
|
|
gcvHAL_QUERY_CHIP_FREQUENCY,
|
||
|
|
|
||
|
|
/* Query system pool video memory, used by CL. */
|
||
|
|
gcvHAL_QUERY_VIDEO_MEMORY,
|
||
|
|
|
||
|
|
/* Memory management. */
|
||
|
|
gcvHAL_ALLOCATE_LINEAR_VIDEO_MEMORY,
|
||
|
|
gcvHAL_WRAP_USER_MEMORY,
|
||
|
|
gcvHAL_RELEASE_VIDEO_MEMORY,
|
||
|
|
gcvHAL_LOCK_VIDEO_MEMORY,
|
||
|
|
gcvHAL_UNLOCK_VIDEO_MEMORY,
|
||
|
|
gcvHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY,
|
||
|
|
gcvHAL_MAP_MEMORY,
|
||
|
|
gcvHAL_UNMAP_MEMORY,
|
||
|
|
|
||
|
|
/* Cache operations. */
|
||
|
|
gcvHAL_CACHE,
|
||
|
|
|
||
|
|
/* HAL user attach and detach. */
|
||
|
|
gcvHAL_ATTACH,
|
||
|
|
gcvHAL_DETACH,
|
||
|
|
|
||
|
|
/* Event commit. */
|
||
|
|
gcvHAL_EVENT_COMMIT,
|
||
|
|
|
||
|
|
/* User command commit. */
|
||
|
|
gcvHAL_COMMIT,
|
||
|
|
|
||
|
|
/* Set hardware timeout, used by CL. */
|
||
|
|
gcvHAL_SET_TIMEOUT,
|
||
|
|
|
||
|
|
/* User signal operations. */
|
||
|
|
gcvHAL_USER_SIGNAL,
|
||
|
|
|
||
|
|
/* Event signal, commit stall. */
|
||
|
|
gcvHAL_SIGNAL,
|
||
|
|
|
||
|
|
/* Profile related. */
|
||
|
|
gcvHAL_SET_PROFILE_SETTING,
|
||
|
|
gcvHAL_READ_PROFILER_REGISTER_SETTING,
|
||
|
|
gcvHAL_READ_ALL_PROFILE_REGISTERS_PART1,
|
||
|
|
gcvHAL_READ_ALL_PROFILE_REGISTERS_PART2,
|
||
|
|
|
||
|
|
/* Query process database info when debug trace and proflie. */
|
||
|
|
gcvHAL_DATABASE,
|
||
|
|
|
||
|
|
/* Power management enable/disable. */
|
||
|
|
gcvHAL_CONFIG_POWER_MANAGEMENT,
|
||
|
|
|
||
|
|
/* Debug/dump feature. */
|
||
|
|
gcvHAL_DEBUG_DUMP,
|
||
|
|
|
||
|
|
/*************** Common end ***************/
|
||
|
|
|
||
|
|
/*************** GPU only ***************/
|
||
|
|
/* Register operations, 2D only. */
|
||
|
|
gcvHAL_READ_REGISTER,
|
||
|
|
gcvHAL_WRITE_REGISTER,
|
||
|
|
gcvHAL_PROFILE_REGISTERS_2D,
|
||
|
|
|
||
|
|
/* Get base address for old mmu. */
|
||
|
|
gcvHAL_GET_BASE_ADDRESS,
|
||
|
|
|
||
|
|
/* Read frame database, 3D only. */
|
||
|
|
gcvHAL_GET_FRAME_INFO,
|
||
|
|
|
||
|
|
/* Set video memory meta data. */
|
||
|
|
gcvHAL_SET_VIDEO_MEMORY_METADATA,
|
||
|
|
|
||
|
|
/* Query command buffer, VG only. */
|
||
|
|
gcvHAL_QUERY_COMMAND_BUFFER,
|
||
|
|
|
||
|
|
/* Reset time stamp. */
|
||
|
|
gcvHAL_QUERY_RESET_TIME_STAMP,
|
||
|
|
|
||
|
|
/* Create native fence. */
|
||
|
|
gcvHAL_CREATE_NATIVE_FENCE,
|
||
|
|
|
||
|
|
/* Wait native fence. */
|
||
|
|
gcvHAL_WAIT_NATIVE_FENCE,
|
||
|
|
|
||
|
|
/* Wait until GPU finishes access to a resource. */
|
||
|
|
gcvHAL_WAIT_FENCE,
|
||
|
|
|
||
|
|
/* Video memory node operations. */
|
||
|
|
gcvHAL_EXPORT_VIDEO_MEMORY,
|
||
|
|
gcvHAL_NAME_VIDEO_MEMORY,
|
||
|
|
gcvHAL_IMPORT_VIDEO_MEMORY,
|
||
|
|
|
||
|
|
/* Mutex Operation. */
|
||
|
|
gcvHAL_DEVICE_MUTEX,
|
||
|
|
/*************** GPU only end ***************/
|
||
|
|
|
||
|
|
/*************** DEC only ***************/
|
||
|
|
/* DEC200 test. */
|
||
|
|
gcvHAL_DEC200_TEST,
|
||
|
|
|
||
|
|
/* DEC300 related operations. */
|
||
|
|
gcvHAL_DEC300_READ,
|
||
|
|
gcvHAL_DEC300_WRITE,
|
||
|
|
gcvHAL_DEC300_FLUSH,
|
||
|
|
gcvHAL_DEC300_FLUSH_WAIT,
|
||
|
|
/*************** DEC only end ***************/
|
||
|
|
|
||
|
|
/*************** OS specific ***************/
|
||
|
|
|
||
|
|
/* Android gralloc: shared buffer operations. */
|
||
|
|
gcvHAL_SHBUF,
|
||
|
|
|
||
|
|
/* Android gralloc: get graphic buffer fd. */
|
||
|
|
gcvHAL_GET_GRAPHIC_BUFFER_FD,
|
||
|
|
|
||
|
|
/* Vsimulator only. */
|
||
|
|
gcvHAL_UPDATE_DEBUG_CALLBACK,
|
||
|
|
gcvHAL_CONFIG_CTX_FRAMEWORK,
|
||
|
|
|
||
|
|
/* Non paged memory management backup compatibility, windows, qnx. */
|
||
|
|
gcvHAL_ALLOCATE_NON_PAGED_MEMORY,
|
||
|
|
gcvHAL_FREE_NON_PAGED_MEMORY,
|
||
|
|
|
||
|
|
/* Write user data, windows only. */
|
||
|
|
gcvHAL_WRITE_DATA,
|
||
|
|
|
||
|
|
/*************** OS specific end ***************/
|
||
|
|
|
||
|
|
/*************** Reserved ***************/
|
||
|
|
/* Access APB register. */
|
||
|
|
gcvHAL_APB_AXIFE_ACCESS,
|
||
|
|
|
||
|
|
/* Trigger a software reset. */
|
||
|
|
gcvHAL_RESET,
|
||
|
|
|
||
|
|
/* Command commit done, preemption only. */
|
||
|
|
gcvHAL_COMMIT_DONE,
|
||
|
|
|
||
|
|
/* Get video memory file description. */
|
||
|
|
gcvHAL_GET_VIDEO_MEMORY_FD,
|
||
|
|
|
||
|
|
/* Get profile setting. */
|
||
|
|
gcvHAL_GET_PROFILE_SETTING,
|
||
|
|
|
||
|
|
/* Read/Write register ex. */
|
||
|
|
gcvHAL_READ_REGISTER_EX,
|
||
|
|
gcvHAL_WRITE_REGISTER_EX,
|
||
|
|
|
||
|
|
/* Power management state. */
|
||
|
|
gcvHAL_SET_POWER_MANAGEMENT_STATE,
|
||
|
|
gcvHAL_QUERY_POWER_MANAGEMENT_STATE,
|
||
|
|
|
||
|
|
/* Query CPU frequency. */
|
||
|
|
gcvHAL_QUERY_CPU_FREQUENCY,
|
||
|
|
|
||
|
|
/* Dump HW register state. */
|
||
|
|
gcvHAL_DUMP_GPU_STATE,
|
||
|
|
|
||
|
|
/* Sync video memory for special memory pool */
|
||
|
|
gcvHAL_SYNC_VIDEO_MEMORY,
|
||
|
|
|
||
|
|
/* Cancel Job. */
|
||
|
|
gcvHAL_CANCEL_JOB,
|
||
|
|
|
||
|
|
/* Timer. */
|
||
|
|
gcvHAL_TIMESTAMP,
|
||
|
|
|
||
|
|
/* FSCALE_VAL. */
|
||
|
|
gcvHAL_SET_FSCALE_VALUE,
|
||
|
|
gcvHAL_GET_FSCALE_VALUE,
|
||
|
|
|
||
|
|
/* Destroy MMU. */
|
||
|
|
gcvHAL_DESTROY_MMU,
|
||
|
|
|
||
|
|
/* Operate fence from user*/
|
||
|
|
gcvHAL_FENCE_OP,
|
||
|
|
/*************** Reserved end ***************/
|
||
|
|
} gceHAL_COMMAND_CODES;
|
||
|
|
|
||
|
|
/******************************************************************************
|
||
|
|
******************************* gcsOBJECT Object *****************************
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
/* Macro to combine four characters into a Charcater Code. */
|
||
|
|
#define gcmCC(c1, c2, c3, c4) \
|
||
|
|
(\
|
||
|
|
(char)(c1) | \
|
||
|
|
((char)(c2) << 8) | \
|
||
|
|
((char)(c3) << 16) | \
|
||
|
|
((char)(c4) << 24) \
|
||
|
|
)
|
||
|
|
|
||
|
|
/* Type of objects. */
|
||
|
|
typedef enum _gceOBJECT_TYPE {
|
||
|
|
gcvOBJ_UNKNOWN = 0,
|
||
|
|
gcvOBJ_2D = gcmCC('2', 'D', ' ', ' '),
|
||
|
|
gcvOBJ_3D = gcmCC('3', 'D', ' ', ' '),
|
||
|
|
gcvOBJ_ATTRIBUTE = gcmCC('A', 'T', 'T', 'R'),
|
||
|
|
gcvOBJ_BRUSHCACHE = gcmCC('B', 'R', 'U', '$'),
|
||
|
|
gcvOBJ_BRUSHNODE = gcmCC('B', 'R', 'U', 'n'),
|
||
|
|
gcvOBJ_BRUSH = gcmCC('B', 'R', 'U', 'o'),
|
||
|
|
gcvOBJ_BUFFER = gcmCC('B', 'U', 'F', 'R'),
|
||
|
|
gcvOBJ_COMMAND = gcmCC('C', 'M', 'D', ' '),
|
||
|
|
gcvOBJ_COMMANDBUFFER = gcmCC('C', 'M', 'D', 'B'),
|
||
|
|
gcvOBJ_CONTEXT = gcmCC('C', 'T', 'X', 'T'),
|
||
|
|
gcvOBJ_DEVICE = gcmCC('D', 'E', 'V', ' '),
|
||
|
|
gcvOBJ_DUMP = gcmCC('D', 'U', 'M', 'P'),
|
||
|
|
gcvOBJ_EVENT = gcmCC('E', 'V', 'N', 'T'),
|
||
|
|
gcvOBJ_FUNCTION = gcmCC('F', 'U', 'N', 'C'),
|
||
|
|
gcvOBJ_HAL = gcmCC('H', 'A', 'L', ' '),
|
||
|
|
gcvOBJ_HARDWARE = gcmCC('H', 'A', 'R', 'D'),
|
||
|
|
gcvOBJ_HEAP = gcmCC('H', 'E', 'A', 'P'),
|
||
|
|
gcvOBJ_INDEX = gcmCC('I', 'N', 'D', 'X'),
|
||
|
|
gcvOBJ_INTERRUPT = gcmCC('I', 'N', 'T', 'R'),
|
||
|
|
gcvOBJ_KERNEL = gcmCC('K', 'E', 'R', 'N'),
|
||
|
|
gcvOBJ_KERNEL_FUNCTION = gcmCC('K', 'F', 'C', 'N'),
|
||
|
|
gcvOBJ_MEMORYBUFFER = gcmCC('M', 'E', 'M', 'B'),
|
||
|
|
gcvOBJ_MMU = gcmCC('M', 'M', 'U', ' '),
|
||
|
|
gcvOBJ_OS = gcmCC('O', 'S', ' ', ' '),
|
||
|
|
gcvOBJ_OUTPUT = gcmCC('O', 'U', 'T', 'P'),
|
||
|
|
gcvOBJ_PAINT = gcmCC('P', 'N', 'T', ' '),
|
||
|
|
gcvOBJ_PATH = gcmCC('P', 'A', 'T', 'H'),
|
||
|
|
gcvOBJ_QUEUE = gcmCC('Q', 'U', 'E', ' '),
|
||
|
|
gcvOBJ_SAMPLER = gcmCC('S', 'A', 'M', 'P'),
|
||
|
|
gcvOBJ_SHADER = gcmCC('S', 'H', 'D', 'R'),
|
||
|
|
gcvOBJ_VIR_SHADER = gcmCC('V', 'S', 'D', 'R'),
|
||
|
|
gcvOBJ_STREAM = gcmCC('S', 'T', 'R', 'M'),
|
||
|
|
gcvOBJ_SURF = gcmCC('S', 'U', 'R', 'F'),
|
||
|
|
gcvOBJ_TEXTURE = gcmCC('T', 'X', 'T', 'R'),
|
||
|
|
gcvOBJ_UNIFORM = gcmCC('U', 'N', 'I', 'F'),
|
||
|
|
gcvOBJ_VARIABLE = gcmCC('V', 'A', 'R', 'I'),
|
||
|
|
gcvOBJ_VERTEX = gcmCC('V', 'R', 'T', 'X'),
|
||
|
|
gcvOBJ_VIDMEM = gcmCC('V', 'M', 'E', 'M'),
|
||
|
|
gcvOBJ_VIDMEM_BLOCK = gcmCC('V', 'M', 'B', 'K'),
|
||
|
|
gcvOBJ_VG = gcmCC('V', 'G', ' ', ' '),
|
||
|
|
gcvOBJ_BUFOBJ = gcmCC('B', 'U', 'F', 'O'),
|
||
|
|
gcvOBJ_UNIFORM_BLOCK = gcmCC('U', 'B', 'L', 'K'),
|
||
|
|
gcvOBJ_CL = gcmCC('C', 'L', ' ', ' '),
|
||
|
|
gcvOBJ_STORAGE_BLOCK = gcmCC('S', 'B', 'L', 'K'),
|
||
|
|
gcvOBJ_IO_BLOCK = gcmCC('I', 'O', 'B', 'K'),
|
||
|
|
} gceOBJECT_TYPE;
|
||
|
|
|
||
|
|
/* Video memory pool type. */
|
||
|
|
typedef enum _gcePOOL {
|
||
|
|
gcvPOOL_UNKNOWN = 0,
|
||
|
|
gcvPOOL_DEFAULT,
|
||
|
|
gcvPOOL_LOCAL,
|
||
|
|
gcvPOOL_LOCAL_INTERNAL,
|
||
|
|
gcvPOOL_LOCAL_EXTERNAL,
|
||
|
|
gcvPOOL_UNIFIED,
|
||
|
|
gcvPOOL_SYSTEM,
|
||
|
|
gcvPOOL_VIRTUAL,
|
||
|
|
gcvPOOL_USER,
|
||
|
|
gcvPOOL_INTERNAL_SRAM,
|
||
|
|
gcvPOOL_EXTERNAL_SRAM,
|
||
|
|
gcvPOOL_LOCAL_EXCLUSIVE,
|
||
|
|
gcvPOOL_SYSTEM_32BIT_VA,
|
||
|
|
|
||
|
|
gcvPOOL_NUMBER_OF_POOLS
|
||
|
|
} gcePOOL;
|
||
|
|
|
||
|
|
typedef enum _gceDUMP_BUFFER_TYPE {
|
||
|
|
gcvDUMP_BUFFER_USER_STRING,
|
||
|
|
gcvDUMP_BUFFER_VERIFY,
|
||
|
|
|
||
|
|
gcvDUMP_BUFFER_MEMORY,
|
||
|
|
gcvDUMP_BUFFER_TEXTURE,
|
||
|
|
gcvDUMP_BUFFER_STREAM,
|
||
|
|
gcvDUMP_BUFFER_INDEX,
|
||
|
|
gcvDUMP_BUFFER_BUFOBJ,
|
||
|
|
gcvDUMP_BUFFER_IMAGE,
|
||
|
|
/* A type of command, but should not execute directly. */
|
||
|
|
gcvDUMP_BUFFER_INSTRUCTION,
|
||
|
|
gcvDUMP_BUFFER_CONTEXT,
|
||
|
|
gcvDUMP_BUFFER_COMMAND,
|
||
|
|
gcvDUMP_BUFFER_ASYNC_COMMAND,
|
||
|
|
gcvDUMP_BUFFER_USER_TYPE_LAST = gcvDUMP_BUFFER_ASYNC_COMMAND,
|
||
|
|
|
||
|
|
gcvDUMP_BUFFER_KERNEL_CONTEXT,
|
||
|
|
gcvDUMP_BUFFER_KERNEL_COMMAND,
|
||
|
|
|
||
|
|
gcvDUMP_BUFFER_PHYSICAL_MEMORY,
|
||
|
|
|
||
|
|
gcvDUMP_BUFFER_TYPE_COUNT,
|
||
|
|
} gceDUMP_BUFFER_TYPE;
|
||
|
|
|
||
|
|
typedef enum _gceLOCK_VIDEO_MEMORY_OP {
|
||
|
|
gcvLOCK_VIDEO_MEMORY_OP_NONE = 0x00,
|
||
|
|
gcvLOCK_VIDEO_MEMORY_OP_LOCK = 0x01,
|
||
|
|
gcvLOCK_VIDEO_MEMORY_OP_MAP = 0x02,
|
||
|
|
gcvLOCK_VIDEO_MEMORY_OP_UNLOCK = 0x04,
|
||
|
|
gcvLOCK_VIDEO_MEMORY_OP_UNMAP = 0x08,
|
||
|
|
} gceLOCK_VIDEO_MEMORY_OP;
|
||
|
|
|
||
|
|
typedef enum _gceSIGNAL_STATUS {
|
||
|
|
gcvSIGNAL_OK = 0,
|
||
|
|
gcvSIGNAL_RECOVERY,
|
||
|
|
gcvSIGNAL_CANCEL,
|
||
|
|
} gceSIGNAL_STATUS;
|
||
|
|
|
||
|
|
#if gcdENABLE_VIDEO_MEMORY_MIRROR
|
||
|
|
typedef enum _gceSYNC_MEMORY_DIRECTION {
|
||
|
|
gcvSYNC_MEMORY_DIRECTION_NONE = 0,
|
||
|
|
gcvSYNC_MEMORY_DIRECTION_LOCAL_TO_SYSTEM,
|
||
|
|
gcvSYNC_MEMORY_DIRECTION_SYSTEM_TO_LOCAL,
|
||
|
|
} gceSYNC_MEMORY_DIRECTION;
|
||
|
|
|
||
|
|
typedef enum _gceMIRROR_TYPE {
|
||
|
|
gcvMIRROR_TYPE_NONE = 0,
|
||
|
|
gcvMIRROR_TYPE_LOCAL_MEMORY_MIRROR,
|
||
|
|
gcvMIRROR_TYPE_SYSTEM_MEMORY_MIRROR,
|
||
|
|
} gceMIRROR_TYPE;
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef enum _gceProfilerMode {
|
||
|
|
gcvPROFILER_UNKNOWN_MODE = 0,
|
||
|
|
gcvPROFILER_PROBE_MODE,
|
||
|
|
gcvPROFILER_AHB_MODE,
|
||
|
|
} gceProfilerMode;
|
||
|
|
|
||
|
|
typedef enum _gceProbeMode {
|
||
|
|
gcvPROFILER_UNKNOWN_PROBE = 0,
|
||
|
|
gcvPROFILER_GPU_PROBE,
|
||
|
|
gcvPROFILER_VIP_PROBE,
|
||
|
|
} gceProbeMode;
|
||
|
|
|
||
|
|
typedef enum _gceMULTI_PROCESSOR_MODE {
|
||
|
|
gcvMP_MODE_COMBINED = 0,
|
||
|
|
gcvMP_MODE_INDEPENDENT = 1
|
||
|
|
} gceMULTI_PROCESSOR_MODE;
|
||
|
|
|
||
|
|
typedef enum _gceSwitchMpMode {
|
||
|
|
gcvMP_MODE_NO_SWITCH = 0,
|
||
|
|
gcvMP_MODE_SWITCH_TO_SINGLE,
|
||
|
|
gcvMP_MODE_SWITCH_TO_MULTI,
|
||
|
|
} gceSwitchMpMode;
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* __gc_hal_enum_shared_h_ */
|
||
|
|
|
||
|
|
|