| /**************************************************************************** |
| * |
| * The MIT License (MIT) |
| * |
| * Copyright (c) 2014 - 2020 Vivante Corporation |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a |
| * copy of this software and associated documentation files (the "Software"), |
| * to deal in the Software without restriction, including without limitation |
| * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| * and/or sell copies of the Software, and to permit persons to whom the |
| * Software is furnished to do so, subject to the following conditions: |
| * |
| * The above copyright notice and this permission notice shall be included in |
| * all copies or substantial portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
| * DEALINGS IN THE SOFTWARE. |
| * |
| ***************************************************************************** |
| * |
| * The GPL License (GPL) |
| * |
| * Copyright (C) 2014 - 2020 Vivante Corporation |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation; either version 2 |
| * of the License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| * |
| ***************************************************************************** |
| * |
| * Note: This software is released under dual MIT and GPL licenses. A |
| * recipient may use this file under the terms of either the MIT license or |
| * GPL License. If you wish to use only one license not the other, you can |
| * indicate your decision by deleting one of the above license notices in your |
| * version of this file. |
| * |
| *****************************************************************************/ |
| |
| |
| #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, |
| 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, |
| } |
| 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_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_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_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, |
| gcvFEATURE_ANDROID_ONLY, |
| 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_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_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_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, |
| |
| /* AIGPU feature. */ |
| gcvFEATURE_AI_GPU, |
| gcvFEATURE_NN_FAST_FIRST_PIXEL_POOLING, |
| gcvFEATURE_NN_FLOAT_POST_MULT, |
| |
| gcvFEATURE_FORMAT_YUV_I010, /*support YUVI010 & P010_LSB format*/ |
| |
| gcFEATURE_BIT_NN_COMPRESSION_BYPASSS, |
| gcFEATURE_BIT_BFLOAT_KERNEL_COMPRESSION_ZERO_SKIP_FIX, |
| gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN, |
| gcFEATURE_PREPROCESS_IMG_BUF_640BYTE_LIMIT, |
| /* 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_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, |
| |
| /* 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, |
| /* 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, |
| |
| /* 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, |
| |
| /* 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, |
| #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_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, |
| |
| |
| |
| /* 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, |
| } |
| 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 _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_3D_MAX = gcvCORE_3D7, |
| gcvCORE_2D, |
| gcvCORE_VG, |
| #if gcdDEC_ENABLE_AHB |
| gcvCORE_DEC, |
| #endif |
| gcvCORE_COUNT |
| } |
| gceCORE; |
| |
| #define gcdCHIP_COUNT gcvCORE_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 _gceSRAM_EXTERNAL |
| { |
| gcvSRAM_EXTERNAL0 = 0, |
| gcvSRAM_EXTERNAL1, |
| |
| gcvSRAM_EXT_COUNT |
| } |
| gceSRAM_EXTERNAL; |
| |
| 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, |
| |
| /* 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 managment 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 ***************/ |
| gcvHAL_SET_IDLE, |
| gcvHAL_RESET, |
| |
| /* Command commit done, kernel event 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 managment state. */ |
| gcvHAL_SET_POWER_MANAGEMENT_STATE, |
| gcvHAL_QUERY_POWER_MANAGEMENT_STATE, |
| |
| /* Set debug level. */ |
| gcvHAL_SET_DEBUG_LEVEL_ZONE, |
| |
| /* Dump info. */ |
| gcvHAL_DUMP_GPU_STATE, |
| gcvHAL_DUMP_EVENT, |
| gcvHAL_DUMP_GPU_PROFILE, |
| |
| /* Timer. */ |
| gcvHAL_TIMESTAMP, |
| |
| /* FSCALE_VAL. */ |
| gcvHAL_SET_FSCALE_VALUE, |
| gcvHAL_GET_FSCALE_VALUE, |
| |
| /* Destory MMU. */ |
| gcvHAL_DESTROY_MMU, |
| /*************** 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_SRAM, |
| gcvPOOL_VIRTUAL, |
| gcvPOOL_USER, |
| gcvPOOL_INTERNAL_SRAM, |
| gcvPOOL_EXTERNAL_SRAM, |
| |
| 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; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __gc_hal_enum_shared_h_ */ |
| |
| |
| |