From ebea86496508a86553c45773b4951111cc480f89 Mon Sep 17 00:00:00 2001 From: Xianzhong Date: Mon, 29 Mar 2021 16:44:28 +0800 Subject: [PATCH] gpu-viv: Integrate 6.4.3.p2 GPU kernel driver Major accomplishments * Vulkan driver memory leak issue * Android11 NN1.3 CTS * OCL3.0 CTS(not fully pass yet) * Solved Antutu v8 Quality and unstable issue Signed-off-by: Xianzhong --- drivers/mxc/gpu-viv/Kbuild | 1 + .../hal/kernel/arch/gc_hal_kernel_hardware.c | 45 +- .../kernel/arch/gc_hal_kernel_hardware_func.c | 2 +- .../arch/gc_hal_kernel_hardware_mc_fe.c | 55 +- .../mxc/gpu-viv/hal/kernel/gc_hal_kernel.c | 47 +- .../mxc/gpu-viv/hal/kernel/gc_hal_kernel.h | 7 +- .../hal/kernel/gc_hal_kernel_command_vg.c | 4 +- .../gpu-viv/hal/kernel/gc_hal_kernel_mmu.c | 1 - .../hal/kernel/gc_hal_kernel_video_memory.c | 68 +- .../hal/kernel/inc/gc_feature_database.h | 876 ++++++++++++++++-- .../mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h | 1 + .../gpu-viv/hal/kernel/inc/gc_hal_options.h | 9 - .../gpu-viv/hal/kernel/inc/gc_hal_profiler.h | 10 + .../gpu-viv/hal/kernel/inc/gc_hal_version.h | 4 +- .../kernel/inc/shared/gc_hal_driver_shared.h | 4 + .../kernel/inc/shared/gc_hal_enum_shared.h | 11 + .../kernel/inc/shared/gc_hal_types_shared.h | 6 +- .../default/gc_hal_kernel_allocator_gfp.c | 17 +- .../gc_hal_kernel_allocator_user_memory.c | 78 +- .../os/linux/kernel/gc_hal_kernel_allocator.c | 3 +- .../os/linux/kernel/gc_hal_kernel_allocator.h | 3 +- .../hal/os/linux/kernel/gc_hal_kernel_debug.c | 3 - .../os/linux/kernel/gc_hal_kernel_device.c | 24 +- .../os/linux/kernel/gc_hal_kernel_driver.c | 14 +- .../hal/os/linux/kernel/gc_hal_kernel_drm.c | 21 + .../hal/os/linux/kernel/gc_hal_kernel_linux.h | 4 + .../hal/os/linux/kernel/gc_hal_kernel_os.c | 24 +- .../os/linux/kernel/gc_hal_kernel_platform.h | 2 - .../default/gc_hal_kernel_platform_default.c | 1 - .../freescale/gc_hal_kernel_platform_imx.c | 6 +- .../gc_hal_kernel_platform_imx.config | 5 + 31 files changed, 1134 insertions(+), 222 deletions(-) diff --git a/drivers/mxc/gpu-viv/Kbuild b/drivers/mxc/gpu-viv/Kbuild index 9d0cf640a679..afe6b54fdedf 100644 --- a/drivers/mxc/gpu-viv/Kbuild +++ b/drivers/mxc/gpu-viv/Kbuild @@ -324,6 +324,7 @@ endif EXTRA_CFLAGS += -DHOST=\"$(HOST)\" EXTRA_CFLAGS += -DgcdENABLE_TRUST_APPLICATION=1 +EXTRA_CFLAGS += -DgcdSYS_HAS_SG_CHAIN=1 obj-$(CONFIG_MXC_GPU_VIV) = $(MODULE_NAME).o diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c index 1ea0145ac96c..b78d87c9ec55 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c +++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c @@ -1795,16 +1795,6 @@ _SetHardwareOptions( options->powerManagement = gcvTRUE; } - /* Disable profiler by default */ - status = gckOS_QueryOption(Hardware->os, "gpuProfiler", &data); - options->gpuProfiler = (data != 0); - - if (status == gcvSTATUS_NOT_SUPPORTED) - { - /* Disable profiler by default */ - options->gpuProfiler= gcvFALSE; - } - status = gckOS_QueryOption(Hardware->os, "mmu", &data); options->enableMMU = (data != 0); @@ -8889,13 +8879,45 @@ gckHARDWARE_SetGpuProfiler( + 0x00100, data)); } + else + { + gctUINT32 data = 0; + + /* enable clock gating when disable profile. */ + gcmkVERIFY_OK( + gckOS_ReadRegisterEx(Hardware->os, + Hardware->core, + Hardware->powerBaseAddress + + 0x00100, + &data)); + + data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? + 0:0) - (0 ? + 0:0) + 1) == 32) ? + ~0U : (~(~0U << ((1 ? + 0:0) - (0 ? + 0:0) + 1))))))) << (0 ? + 0:0))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? + 0:0) - (0 ? + 0:0) + 1) == 32) ? + ~0U : (~(~0U << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0))); - Hardware->options.gpuProfiler= GpuProfiler; + gcmkVERIFY_OK( + gckOS_WriteRegisterEx(Hardware->os, + Hardware->core, + Hardware->powerBaseAddress + + 0x00100, + data)); + } if (GpuProfiler == gcvTRUE) { Hardware->waitCount = 200 * 100; } + else + { + Hardware->waitCount = 200; + } /* Success. */ gcmkFOOTER_NO(); @@ -15954,7 +15976,6 @@ gckHARDWARE_ExitQueryClock( if (!shCycle) { - /*TODO: [VIV] Query SH cycle not support for old chips */ *ShClk = *McClk; return gcvSTATUS_OK; } diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c index 675f648ff79f..f592da8e9329 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c +++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c @@ -3760,7 +3760,7 @@ _FuncInit_MMU(IN gcsFUNCTION_EXECUTION_PTR Execution) mode = gcvMMU_MODE_4K; #endif - flags |= gcvALLOC_FLAG_4GB_ADDR; + flags |= gcvALLOC_FLAG_4GB_ADDR | gcvALLOC_FLAG_4K_PAGES; #if gcdENABLE_CACHEABLE_COMMAND_BUFFER flags |= gcvALLOC_FLAG_CACHEABLE; diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_mc_fe.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_mc_fe.c index 6d537d026ee0..d1947103127a 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_mc_fe.c +++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_mc_fe.c @@ -761,15 +761,26 @@ gckMCFE_Execute( IN gctUINT32 Bytes ) { + gceSTATUS status; gctUINT32 regBase; gcsMCFE_DESCRIPTOR *desc; - gcsMCFE_CHANNEL * channel = &Hardware->mcFE->channels[ChannelId]; - gcsMCFE_RING_BUF * ringBuf = Priority ? &channel->priRingBuf - : &channel->stdRingBuf; + gckMCFE mcFE = Hardware->mcFE; + gcsMCFE_CHANNEL * channel = gcvNULL; + gcsMCFE_RING_BUF * ringBuf = gcvNULL; + + gcmkHEADER_ARG("Hardware=0x%x Priority=0x%x ChannelId=%u Address=%x Bytes=%u", + Hardware, Priority, ChannelId, Address, Bytes); + + /* ChannelId should be valid. */ + gcmkASSERT(mcFE && ChannelId < mcFE->channelCount); + + channel = &mcFE->channels[ChannelId]; /* No priority channel in system channel by design. */ gcmkASSERT(!(channel->binding == gcvMCFE_CHANNEL_SYSTEM && Priority == 1)); + ringBuf = Priority ? &channel->priRingBuf : &channel->stdRingBuf; + while (_NextPtr(ringBuf->writePtr) == ringBuf->readPtr) { gctUINT32 data; @@ -814,11 +825,11 @@ gckMCFE_Execute( ringBuf->ringBufAddress + ringBuf->writePtr * 8, 8); - gcmkVERIFY_OK(gckVIDMEM_NODE_CleanCache(Hardware->kernel, - ringBuf->ringBufVideoMem, - 0, - desc, - 8)); + gcmkONERROR(gckVIDMEM_NODE_CleanCache(Hardware->kernel, + ringBuf->ringBufVideoMem, + 0, + desc, + 8)); ringBuf->writePtr = _NextPtr(ringBuf->writePtr); @@ -827,12 +838,20 @@ gckMCFE_Execute( desc->start, desc->end, Bytes, Priority ? "Pri" : "Std", ChannelId); - gcmkVERIFY_OK(gckOS_WriteRegisterEx(Hardware->os, - Hardware->core, - regBase + ChannelId * 4, - ringBuf->writePtr)); + gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, + Hardware->core, + regBase + ChannelId * 4, + ringBuf->writePtr)); + /* Success. */ + gcmkFOOTER_NO(); return gcvSTATUS_OK; + +OnError: + /* Return the status. */ + gcmkFOOTER(); + return status; + } gceSTATUS @@ -847,12 +866,18 @@ gckMCFE_HardwareIdle( gctUINT32 readPtr; gctUINT32 ChannelId = 0; gctBOOL Priority = gcvFALSE; - gcsMCFE_CHANNEL * channel = &Hardware->mcFE->channels[ChannelId]; - gcsMCFE_RING_BUF * ringBuf = Priority ? &channel->priRingBuf - : &channel->stdRingBuf; + gckMCFE mcFE = Hardware->mcFE; + gcsMCFE_CHANNEL * channel = gcvNULL; + gcsMCFE_RING_BUF * ringBuf = gcvNULL; gcmkHEADER(); + /* ChannelId should be valid. */ + gcmkASSERT(mcFE && ChannelId < mcFE->channelCount); + + channel = &mcFE->channels[ChannelId]; + ringBuf = Priority ? &channel->priRingBuf : &channel->stdRingBuf; + *isIdle = gcvTRUE; /* Read idle register. */ diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c index 6d8c1d7633c4..81a8625dccf5 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c @@ -702,8 +702,9 @@ gckKERNEL_Construct( #if VIVANTE_PROFILER /* Initialize profile setting */ - kernel->profileEnable = gcvFALSE; - kernel->profileCleanRegister = gcvTRUE; + kernel->profiler.profileEnable = gcvFALSE; + kernel->profiler.profileMode = gcvPROFILER_PROBE_MODE; + kernel->profiler.profileCleanRegister = gcvTRUE; #endif #if gcdLINUX_SYNC_FILE @@ -1411,9 +1412,6 @@ _AllocateLinearMemory( gckOS_QueryOption(Kernel->os, "allMapInOne", &mappingInOne); if (mappingInOne == 0) { - /* TODO: it should page align if driver uses dynamic mapping for mapped user memory. - * it should be adjusted with different os. - */ alignment = gcmALIGN(alignment, 4096); } @@ -2562,10 +2560,12 @@ _Commit( kernel = Device->map[HwType].kernels[subCommit->coreId]; } - if (!kernel->hardware->options.gpuProfiler || !kernel->profileEnable) +#if VIVANTE_PROFILER + if (!kernel->profiler.profileEnable || (kernel->profiler.profileMode != gcvPROFILER_AHB_MODE)) { return gcvSTATUS_OK; } +#endif do { @@ -2613,8 +2613,9 @@ _Commit( kernel = Device->map[HwType].kernels[subCommit->coreId]; } - if ((kernel->hardware->options.gpuProfiler == gcvTRUE) && - (kernel->profileEnable == gcvTRUE)) +#if VIVANTE_PROFILER + if ((kernel->profiler.profileEnable == gcvTRUE) && + (kernel->profiler.profileMode == gcvPROFILER_AHB_MODE)) { gcmkONERROR(gckCOMMAND_Stall(kernel->command, gcvTRUE)); @@ -2625,6 +2626,7 @@ _Commit( kernel->command->currContext)); } } +#endif next = subCommit->next; @@ -5696,7 +5698,7 @@ gckDEVICE_Profiler_Dispatch( gcmkONERROR( gckHARDWARE_QueryContextProfile( kernel->hardware, - kernel->profileCleanRegister, + kernel->profiler.profileCleanRegister, gcmNAME_TO_PTR(Interface->u.RegisterProfileData_part1.context), &Interface->u.RegisterProfileData_part1.Counters, gcvNULL)); @@ -5709,7 +5711,7 @@ gckDEVICE_Profiler_Dispatch( gcmkONERROR( gckHARDWARE_QueryContextProfile( kernel->hardware, - kernel->profileCleanRegister, + kernel->profiler.profileCleanRegister, gcmNAME_TO_PTR(Interface->u.RegisterProfileData_part2.context), gcvNULL, &Interface->u.RegisterProfileData_part2.Counters)); @@ -5719,33 +5721,44 @@ gckDEVICE_Profiler_Dispatch( case gcvHAL_GET_PROFILE_SETTING: /* Get profile setting */ - Interface->u.GetProfileSetting.enable = kernel->profileEnable; + Interface->u.GetProfileSetting.enable = kernel->profiler.profileEnable; + + Interface->u.GetProfileSetting.profileMode = kernel->profiler.profileMode; status = gcvSTATUS_OK; break; case gcvHAL_SET_PROFILE_SETTING: /* Set profile setting */ - if(kernel->hardware->options.gpuProfiler) + kernel->profiler.profileEnable = Interface->u.SetProfileSetting.enable; + + if(kernel->profiler.profileEnable) { - kernel->profileEnable = Interface->u.SetProfileSetting.enable; + kernel->profiler.profileMode = Interface->u.SetProfileSetting.profileMode; - if (kernel->profileEnable) + gcmkONERROR(gckHARDWARE_SetGpuProfiler( + kernel->hardware, + gcvTRUE + )); + + if (kernel->profiler.profileMode == gcvPROFILER_AHB_MODE) { gcmkONERROR(gckHARDWARE_InitProfiler(kernel->hardware)); } } else { - status = gcvSTATUS_NOT_SUPPORTED; - break; + gcmkONERROR(gckHARDWARE_SetGpuProfiler( + kernel->hardware, + gcvFALSE + )); } status = gcvSTATUS_OK; break; case gcvHAL_READ_PROFILER_REGISTER_SETTING: - kernel->profileCleanRegister = Interface->u.SetProfilerRegisterClear.bclear; + kernel->profiler.profileCleanRegister = Interface->u.SetProfilerRegisterClear.bclear; status = gcvSTATUS_OK; break; diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h index 98dd98adff70..72eca46446f3 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h @@ -567,10 +567,7 @@ struct _gckKERNEL gctPOINTER atomClients; #if VIVANTE_PROFILER - /* Enable profiling */ - gctBOOL profileEnable; - /* Clear profile register or not*/ - gctBOOL profileCleanRegister; + gckPROFILER profiler; #endif #ifdef QNX_SINGLE_THREADED_DEBUGGING @@ -1281,12 +1278,12 @@ typedef struct _gcsVIDMEM_BLOCK /* 1M page count. */ gctUINT32 pageCount; + gctUINT32 fixedPageCount; /* Gpu virtual base of this video memory heap. */ gctUINT32 addresses[gcvHARDWARE_NUM_TYPES]; gctPOINTER pageTables[gcvHARDWARE_NUM_TYPES]; - /* TODO: */ gceVIDMEM_TYPE type; /* Virtual chunk. */ diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c index e408fec2125a..6fe2a2390fa1 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c @@ -3815,9 +3815,7 @@ gckVGCOMMAND_Commit( if (EntryCount - entriesQueued == 0) { /* Modify the last command buffer's routines to handle - tasks if any. - Be sure the kernel entry have been advanced and control - functions initialized. */ + tasks if any.*/ if (haveFETasks && controlIndex == 1) { if (previousExecuted) diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c index b7d13163ebbc..44cc48a2bdf1 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c @@ -2970,7 +2970,6 @@ gckMMU_DumpAddressSpace( { gctUINT i; gctUINT next; - /* TODO: */ gcsADDRESS_AREA_PTR area = &Mmu->dynamicArea4K; gctUINT32_PTR map = area->mapLogical; gctBOOL used = gcvFALSE; diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c index 19d68b8e76ad..6d343161c406 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c @@ -273,12 +273,6 @@ gckVIDMEM_Construct( gcmkVERIFY_ARGUMENT(Bytes > 0); gcmkVERIFY_ARGUMENT(Memory != gcvNULL); - if (BankSize == 0) - { - /* set two banks in 16:1 */ - BankSize = Bytes >> 4; - } - gcmkSAFECASTSIZET(heapBytes, Bytes); gcmkSAFECASTSIZET(bankSize, BankSize); @@ -370,11 +364,6 @@ gckVIDMEM_Construct( /* Mark sentinel. */ memory->sentinel[i].VidMem.bytes = 0; - if (bankSize == (heapBytes >> 4)) - { - bankSize = heapBytes; - } - /* Adjust address for next bank. */ base += bytes; heapBytes -= bytes; @@ -385,23 +374,23 @@ gckVIDMEM_Construct( memory->mapping[gcvVIDMEM_TYPE_COLOR_BUFFER] = banks - 1; memory->mapping[gcvVIDMEM_TYPE_BITMAP] = banks - 1; - if (banks > 7) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_DEPTH_BUFFER] = banks - 1; memory->mapping[gcvVIDMEM_TYPE_HZ_BUFFER] = banks - 1; - if (banks > 6) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_TEXTURE] = banks - 1; - if (banks > 5) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_VERTEX_BUFFER] = banks - 1; - if (banks > 4) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_INDEX_BUFFER] = banks - 1; - if (banks > 3) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_TILE_STATUS] = banks - 1; - if (banks > 2) --banks; + if (banks > 1) --banks; memory->mapping[gcvVIDMEM_TYPE_COMMAND] = banks - 1; if (banks > 1) --banks; @@ -781,6 +770,9 @@ gckVIDMEM_AllocateLinear( static time_t last_slog_time; int do_slog_now = 0; time_t this_slog_time = time(NULL); + gctUINT32 pid = 0; + + gcmkVERIFY_OK(gckOS_GetProcessID(&pid)); if (Memory->freeBytes < lowwaterFPC) { if (Memory->freeBytes < slogLowWaterFPC) { @@ -795,8 +787,9 @@ gckVIDMEM_AllocateLinear( if (do_slog_now) { last_slog_time = this_slog_time; - slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u", - __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC); + slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u. " + "Handling message from pid: %u. Requested bytes: %zu", + __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC, pid, Bytes); } } #endif @@ -1405,10 +1398,27 @@ gckVIDMEM_MapVidMemBlock( &VidMemBlock->addresses[hwType]); if (gcmIS_ERROR(status)) { + gctSIZE_T pageCount = VidMemBlock->pageCount; + + /* If physical address is not aligned. */ + if (physAddr & (gcd1M_PAGE_SIZE - 1)) + { + if (VidMemBlock->contiguous) + { + pageCount++; + } + else + { + gcmkONERROR(gcvSTATUS_NOT_SUPPORTED); + } + } + + VidMemBlock->fixedPageCount = (gctUINT32)pageCount; + /* Allocate pages inside the MMU. */ gcmkONERROR( gckMMU_AllocatePagesEx(Kernel->mmu, - VidMemBlock->pageCount, + pageCount, VidMemBlock->type, gcvPAGE_TYPE_1M, VidMemBlock->secure, @@ -1422,7 +1432,7 @@ gckVIDMEM_MapVidMemBlock( gckOS_Map1MPages(os, Kernel->core, VidMemBlock->physical, - VidMemBlock->pageCount, + pageCount, VidMemBlock->addresses[hwType], VidMemBlock->pageTables[hwType], gcvTRUE, @@ -1452,7 +1462,7 @@ OnError: gcvPAGE_TYPE_1M, VidMemBlock->addresses[hwType], VidMemBlock->pageTables[hwType], - VidMemBlock->pageCount)); + VidMemBlock->fixedPageCount)); VidMemBlock->pageTables[hwType] = gcvNULL; } @@ -1483,7 +1493,7 @@ _UnmapVidMemBlock( gcvPAGE_TYPE_1M, VidMemBlock->addresses[HwType], VidMemBlock->pageTables[HwType], - VidMemBlock->pageCount)); + VidMemBlock->fixedPageCount)); VidMemBlock->pageTables[HwType] = gcvNULL; } @@ -3332,11 +3342,19 @@ gckVIDMEM_NODE_Lock( gceSTATUS status; gckOS os = Kernel->os; gctBOOL acquired = gcvFALSE; - gcuVIDMEM_NODE_PTR node = NodeObject->node; - gckVIDMEM_BLOCK vidMemBlock = node->VirtualChunk.parent; + gcuVIDMEM_NODE_PTR node; + gckVIDMEM_BLOCK vidMemBlock; gcmkHEADER_ARG("NodeObject=%p", NodeObject); + if (gcvNULL == NodeObject) + { + gcmkONERROR(gcvSTATUS_INVALID_OBJECT); + } + + node = NodeObject->node; + vidMemBlock = node->VirtualChunk.parent; + /* Grab the mutex. */ gcmkONERROR(gckOS_AcquireMutex(os, NodeObject->mutex, gcvINFINITE)); acquired = gcvTRUE; diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h index 53f50ed84d88..eb6edf5589e4 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h @@ -53,7 +53,7 @@ *****************************************************************************/ -/*Auto created on 2020-12-14 17:31*/ +/*Auto created on 2021-03-05 22:36*/ #ifndef _gc_feature_database_h_ #define _gc_feature_database_h_ @@ -103,6 +103,7 @@ typedef struct gctUINT32 G2D_DEC400_MINOR; gctUINT32 NNMadPerCore; gctUINT32 NNCoreCount; + gctUINT32 NN_ACTIVE_CORE_COUNT; gctUINT32 NNCoreCount_INT8; gctUINT32 NNCoreCount_INT16; gctUINT32 NNCoreCount_FLOAT16; @@ -148,6 +149,7 @@ typedef struct gctUINT32 MAX_TILE_X_SIZE; gctUINT32 NN_CLUSTER_NUM_FOR_POWER_CONTROL; gctUINT32 NN_IN_LINES_PER_CYCLE; + gctUINT32 VIP_CLUSTER_COUNT; gctUINT32 REG_FastClear:1; gctUINT32 REG_SpecialAntiAliasing:1; gctUINT32 REG_Pipe3D:1; @@ -549,7 +551,12 @@ typedef struct gctUINT32 LDST_CONV_4ROUNDING_MODES:1; gctUINT32 FULL_PACK_MODE_SUPPORT:1; gctUINT32 DEPTH_FLOAT32_SUPPORT:1; + gctUINT32 GPU_INSPECTOR_COUNTERS:1; gctUINT32 FP32_TO_FP16_CONV_FIX:1; + gctUINT32 IMGLD_COMP_COUNT_FIX:1; + gctUINT32 IMGLD_WIDTH_LT16_FIX:1; + gctUINT32 TX_FILTER_ROUND_FIX:1; + gctUINT32 SH_FP32_FMA_SUPPORT:1; gctUINT32 VG_TS_CULLING:1; gctUINT32 VG_FP25:1; gctUINT32 VG_AYUV_INPUT_OUTPUT:1; @@ -656,6 +663,9 @@ typedef struct gctUINT32 PRELU_LEAKLY_RELU_CLAMP:1; gctUINT32 TPLITE_BFLOAT16:1; gctUINT32 PREPROCESS_IMG_BUF_640BYTE_LIMIT:1; + gctUINT32 NN_POST_OUT_SUPPORT_FP16:1; + gctUINT32 NN_POST_OUT_SUPPORT_BF16:1; + gctUINT32 NN_POST_OUT_SUPPORT_FP32:1; gctUINT32 TP_KERNEL_1BYTE_ALGIN:1; gctUINT32 BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE:1; gctUINT32 NN_COMPRESSION_BYPASSS:1; @@ -682,6 +692,8 @@ typedef struct gctUINT32 NN_1x1_NON_POOLING_PACKING:1; gctUINT32 NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING:1; gctUINT32 NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2:1; + gctUINT32 TP_REMOVE_FC:1; + gctUINT32 VIP_REMOVE_MMU:1; gctUINT32 NN_MP_INTER_CONNECT_RING:1; gctUINT32 NN_SUPPORT_BATCH:1; gctUINT32 NN_2D_AVERAGE_OUTPUT:1; @@ -742,14 +754,27 @@ typedef struct gctUINT32 NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX:1; gctUINT32 NN_IN_TILE_DATA_IS_ALL_PAD_FIX:1; gctUINT32 NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX:1; + gctUINT32 CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX:1; gctUINT32 TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX:1; gctUINT32 NN_KERNEL_1x1_NO_PAD_FIX:1; gctUINT32 NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX:1; gctUINT32 TP_NOT_FULL_USE_CACHE_LINE_FIX:1; gctUINT32 SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX:1; gctUINT32 BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX:1; - gctUINT32 TP_ASSYM_INT8_BUG_FIX:1; - gctUINT32 NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX:1; + gctUINT32 TP_ASSYM_INT8_FIX:1; + gctUINT32 NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX:1; + gctUINT32 NN_2ND_IMG_BASE_ADDR_FIX:1; + gctUINT32 NN_TP_SYSTEM_FIX:1; + gctUINT32 NN_INTILE_YSIZE_128_LIMIT_FIX:1; + gctUINT32 SH_CLOCK_GATOR_IDLE_CONDITON_FIX:1; + gctUINT32 NN_BURST_COLLECTER_LAST_FLAG_FIX:1; + gctUINT32 NN_2ND_IMG_SMALL_3D_TILE_FIX:1; + gctUINT32 NN_TILE_YSIZE_127_LIMITATION_FIX:1; + gctUINT32 NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX:1; + gctUINT32 NN_VIPSRAM_DOUBLE_BUFFER_FIX:1; + gctUINT32 NN_JD_DIRECT_MODE_FIX:1; + gctUINT32 NN_KERNEL_DIRECT_WRONG_PUSH_FIX:1; + gctUINT32 HI_DEFAULT_ENABLE_REORDER_FIX:1; gctUINT32 NN_INTERLEVE8:1; gctUINT32 NN_FP16_ALU:1; gctUINT32 NN_INT16_ALU:1; @@ -811,6 +836,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -856,6 +882,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -1257,7 +1284,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -1364,6 +1396,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -1390,6 +1425,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -1450,14 +1487,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -1517,6 +1567,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -1562,6 +1613,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -1963,7 +2015,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -2070,6 +2127,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -2096,6 +2156,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -2156,14 +2218,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -2223,6 +2298,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -2268,6 +2344,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -2669,7 +2746,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -2776,6 +2858,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -2802,6 +2887,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -2862,14 +2949,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -2929,6 +3029,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -2974,6 +3075,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -3375,7 +3477,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -3482,6 +3589,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -3508,6 +3618,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -3568,14 +3680,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -3635,6 +3760,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -3680,6 +3806,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -4081,7 +4208,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -4188,6 +4320,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -4214,6 +4349,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -4274,14 +4411,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -4341,6 +4491,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -4386,6 +4537,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -4787,7 +4939,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -4894,6 +5051,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -4920,6 +5080,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -4980,14 +5142,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -5047,6 +5222,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -5092,6 +5268,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -5493,7 +5670,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -5600,6 +5782,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -5626,6 +5811,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -5686,14 +5873,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -5753,6 +5953,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -5798,6 +5999,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x0, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -6199,7 +6401,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -6306,6 +6513,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -6332,6 +6542,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -6392,14 +6604,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -6459,6 +6684,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -6504,6 +6730,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -6905,7 +7132,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -7012,6 +7244,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -7038,6 +7273,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -7098,14 +7335,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -7165,6 +7415,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -7210,6 +7461,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -7611,7 +7863,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -7718,6 +7975,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -7744,6 +8004,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -7804,14 +8066,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -7871,6 +8146,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -7916,6 +8192,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -8317,7 +8594,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -8424,6 +8706,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -8450,6 +8735,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -8510,14 +8797,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -8577,6 +8877,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -8622,6 +8923,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -9023,7 +9325,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -9130,6 +9437,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -9156,6 +9466,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -9216,14 +9528,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -9283,6 +9608,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -9328,6 +9654,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -9729,7 +10056,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -9836,6 +10168,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -9862,6 +10197,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -9922,14 +10259,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -9989,6 +10339,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -10034,6 +10385,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -10435,7 +10787,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -10542,6 +10899,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -10568,6 +10928,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -10628,14 +10990,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -10695,6 +11070,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -10740,6 +11116,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -11141,7 +11518,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -11248,6 +11630,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -11274,6 +11659,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -11334,14 +11721,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -11401,6 +11801,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -11446,6 +11847,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -11847,7 +12249,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -11954,6 +12361,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -11980,6 +12390,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -12040,14 +12452,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -12107,6 +12532,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -12152,6 +12578,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -12553,7 +12980,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -12660,6 +13092,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -12686,6 +13121,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -12746,14 +13183,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -12813,6 +13263,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -12858,6 +13309,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -13259,7 +13711,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -13366,6 +13823,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -13392,6 +13852,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -13452,14 +13914,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -13519,6 +13994,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -13564,6 +14040,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -13951,7 +14428,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */ 0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */ 0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */ - 0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */ + 0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */ 0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */ 0x0, /* gcFEATURE_BIT_Q_CHANNEL_SUPPORT */ 0x0, /* gcFEATURE_BIT_MMU_PAGE_DESCRIPTOR */ @@ -13965,7 +14442,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -14072,6 +14554,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -14098,6 +14583,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -14158,14 +14645,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -14225,6 +14725,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -14270,6 +14771,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -14657,7 +15159,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */ 0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */ 0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */ - 0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */ + 0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */ 0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */ 0x0, /* gcFEATURE_BIT_Q_CHANNEL_SUPPORT */ 0x0, /* gcFEATURE_BIT_MMU_PAGE_DESCRIPTOR */ @@ -14671,7 +15173,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -14778,6 +15285,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -14804,6 +15314,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -14864,14 +15376,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -14931,6 +15456,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -14976,6 +15502,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -15377,7 +15904,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -15484,6 +16016,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -15510,6 +16045,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -15570,14 +16107,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -15637,6 +16187,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -15682,6 +16233,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -16083,7 +16635,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -16190,6 +16747,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -16216,6 +16776,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -16276,14 +16838,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -16343,6 +16918,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -16388,6 +16964,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -16789,7 +17366,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -16896,6 +17478,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -16922,6 +17507,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -16982,14 +17569,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -17049,6 +17649,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -17094,6 +17695,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -17495,7 +18097,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -17602,6 +18209,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -17628,6 +18238,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -17688,14 +18300,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -17755,6 +18380,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -17800,6 +18426,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -18201,7 +18828,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -18308,6 +18940,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -18334,6 +18969,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -18394,14 +19031,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -18461,6 +19111,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -18506,6 +19157,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -18907,7 +19559,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -19014,6 +19671,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -19040,6 +19700,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -19100,14 +19762,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -19167,6 +19842,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x0, /* gcFEATURE_VALUE_NNMadPerCore */ 0x0, /* gcFEATURE_VALUE_NNCoreCount */ + 0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -19212,6 +19888,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x1, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -19613,7 +20290,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x1, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x1, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x1, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x1, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x1, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -19720,6 +20402,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -19746,6 +20431,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -19806,14 +20493,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x0, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -19873,6 +20573,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x40, /* gcFEATURE_VALUE_NNMadPerCore */ 0x6, /* gcFEATURE_VALUE_NNCoreCount */ + 0x6, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x6, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x6, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -19918,6 +20619,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x40, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x1, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x3, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x1, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -20319,7 +21021,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -20426,6 +21133,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -20452,6 +21162,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -20512,14 +21224,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x1, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x1, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x0, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x1, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x1, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x1, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x1, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x1, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x1, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x1, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x1, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x1, /* gcFEATURE_BIT_NN_INT16_ALU */ @@ -20579,6 +21304,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */ 0x40, /* gcFEATURE_VALUE_NNMadPerCore */ 0x6, /* gcFEATURE_VALUE_NNCoreCount */ + 0x6, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */ 0x6, /* gcFEATURE_VALUE_NNCoreCount_INT8 */ 0x6, /* gcFEATURE_VALUE_NNCoreCount_INT16 */ 0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */ @@ -20624,6 +21350,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x40, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */ 0x1, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */ 0x3, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */ + 0x1, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */ 0x0, /* gcFEATURE_BIT_REG_FastClear */ 0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */ 0x1, /* gcFEATURE_BIT_REG_Pipe3D */ @@ -21025,7 +21752,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */ 0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */ 0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */ + 0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */ 0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */ + 0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */ + 0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */ + 0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */ + 0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */ 0x0, /* gcFEATURE_BIT_VG_TS_CULLING */ 0x0, /* gcFEATURE_BIT_VG_FP25 */ 0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */ @@ -21132,6 +21864,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */ 0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */ 0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */ + 0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */ 0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */ 0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */ 0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */ @@ -21158,6 +21893,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */ + 0x0, /* gcFEATURE_BIT_TP_REMOVE_FC */ + 0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */ 0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */ 0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */ @@ -21218,14 +21955,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = { 0x1, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */ 0x1, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */ + 0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */ 0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */ 0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */ 0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */ 0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */ 0x0, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */ - 0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */ - 0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */ + 0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */ + 0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */ + 0x1, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */ + 0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */ + 0x1, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */ + 0x1, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */ + 0x1, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */ + 0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */ + 0x1, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */ + 0x1, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */ + 0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */ + 0x1, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */ + 0x1, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */ 0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */ 0x0, /* gcFEATURE_BIT_NN_FP16_ALU */ 0x1, /* gcFEATURE_BIT_NN_INT16_ALU */ diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h index e589de9d6e92..f0a6da73e1ea 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h @@ -1594,6 +1594,7 @@ gceSTATUS gcoOS_SetProfileSetting( IN gcoOS Os, IN gctBOOL Enable, + IN gceProfilerMode ProfileMode, IN gctCONST_STRING FileName ); #endif diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h index 7284e658913b..18ab00c9394f 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h @@ -326,15 +326,6 @@ This define enables the use of VM for gckCommand and fence buffers. # define gcdENABLE_FSCALE_VAL_ADJUST 1 #endif -/* - gcdCAPTURE_ONLY_MODE - When non-zero, driver is built with capture only mode. - 1) Set DDR address range in capture file with contiguousBase and contiguoutsSize. - Video memory allocation will go through reserved pool with capture only mode. - 2) Set SRAM address range in capture file with sRAMBases, sRAMSizes and extSRAMBases, extSRAMSizes. - Video memory querion will go through reserved pool with capture only mode. - 3) TODO: SRAM video memory allocation. -*/ #ifndef gcdCAPTURE_ONLY_MODE # define gcdCAPTURE_ONLY_MODE 0 #endif diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h index 9b1bff731ce5..85d77dd73362 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h @@ -872,6 +872,16 @@ typedef struct _gcsPROBESTATES gctUINT32 probeAddress; }gcsPROBESTATES; +typedef struct _gckPROFILER +{ + /* Profile mode */ + gceProfilerMode profileMode; + /* Enable profiling */ + gctBOOL profileEnable; + /* Clear profile register or not*/ + gctBOOL profileCleanRegister; +}gckPROFILER; + /* Construct a Profiler object per context. */ gceSTATUS gcoPROFILER_Construct( diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h index 3557882b5ae0..98ccc40f00d8 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h @@ -62,9 +62,9 @@ #define gcvVERSION_PATCH 3 -#define gcvVERSION_BUILD 305572 +#define gcvVERSION_BUILD 336687 -#define gcvVERSION_STRING "6.4.3.p1.305572" +#define gcvVERSION_STRING "6.4.3.p2.336687" #endif /* __gc_hal_version_h_ */ diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_driver_shared.h b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_driver_shared.h index a68cf59933c1..4d8fbf0af929 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_driver_shared.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_driver_shared.h @@ -776,6 +776,8 @@ typedef struct _gcsHAL_GET_PROFILE_SETTING { /* Enable profiling */ OUT gctBOOL enable; + /* Profile mode */ + OUT gceProfilerMode profileMode; } gcsHAL_GET_PROFILE_SETTING; @@ -784,6 +786,8 @@ typedef struct _gcsHAL_SET_PROFILE_SETTING { /* Enable profiling */ IN gctBOOL enable; + /* Profile mode */ + IN gceProfilerMode profileMode; } gcsHAL_SET_PROFILE_SETTING; diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h index 7086567eb5f7..f32300b5f219 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h @@ -696,6 +696,9 @@ typedef enum _gceFEATURE 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_IMGLD_WIDTH_LT16_FIX, + + gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX, /* Insert features above this comment only. */ gcvFEATURE_COUNT /* Not a feature. */ } @@ -781,6 +784,7 @@ typedef enum _gceSURF_TYPE 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_TEXTURE_LINEAR = gcvSURF_TEXTURE | gcvSURF_LINEAR, @@ -1912,6 +1916,13 @@ typedef enum _gceDUMP_BUFFER_TYPE } gceDUMP_BUFFER_TYPE; +typedef enum _gceProfilerMode +{ + gcvPROFILER_PROBE_MODE = 0, + gcvPROFILER_AHB_MODE = 1, +} +gceProfilerMode; + #ifdef __cplusplus } #endif diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_types_shared.h b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_types_shared.h index 48e47ca86bdd..ccbc44680e07 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_types_shared.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_types_shared.h @@ -127,7 +127,11 @@ extern "C" { #if defined(ANDROID) && defined(__BIONIC_FORTIFY) #if defined(__clang__) -# define gcmINLINE __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) +#if (__clang_major__ >= 10) +# define gcmINLINE __inline__ __attribute__ ((always_inline)) +# else +# define gcmINLINE __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) +# endif # else # define gcmINLINE __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) __attribute__ ((artificial)) # endif diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c index 86dc819b8758..4d5096e33670 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c @@ -276,7 +276,7 @@ _NonContiguousAlloc( pages[i] = p; } - MdlPriv->contiguousPages = (struct page *)pages; + MdlPriv->nonContiguousPages = pages; gcmkFOOTER_ARG("pages=0x%X", pages); return gcvSTATUS_OK; @@ -413,7 +413,7 @@ _NonContiguous1MPagesAlloc( gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY); } } - MdlPriv->contiguousPages = (struct page *)pages; + MdlPriv->nonContiguousPages = pages; for (i = 0; i < numPages1M; i++) { @@ -474,7 +474,11 @@ _GFPAlloc( gceSTATUS status; gctSIZE_T i = 0; gctBOOL contiguous = Flags & gcvALLOC_FLAG_CONTIGUOUS; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0) u32 normal_gfp = __GFP_HIGH | __GFP_ATOMIC | __GFP_NORETRY | gcdNOWARN; +#else + u32 normal_gfp = __GFP_HIGH | __GFP_NORETRY | gcdNOWARN; +#endif u32 gfp = (contiguous ? normal_gfp : GFP_KERNEL) | __GFP_HIGHMEM | gcdNOWARN; struct gfp_alloc *priv = (struct gfp_alloc *)Allocator->privateData; @@ -612,8 +616,7 @@ _GFPAlloc( } } -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN result = sg_alloc_table_from_pages(&mdlPriv->sgt, mdlPriv->nonContiguousPages, NumPages, 0, NumPages << PAGE_SHIFT, GFP_KERNEL); @@ -653,8 +656,7 @@ _GFPAlloc( _NonContiguousFree(mdlPriv->nonContiguousPages, NumPages); } -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined (ARCH_HAS_SG_CHAIN) || defined (CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN sg_free_table(&mdlPriv->sgt); #else kfree(mdlPriv->sgt.sgl); @@ -815,8 +817,7 @@ _GFPFree( dma_unmap_sg(galcore_device, mdlPriv->sgt.sgl, mdlPriv->sgt.nents, DMA_FROM_DEVICE); -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined (ARCH_HAS_SG_CHAIN) || defined (CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN sg_free_table(&mdlPriv->sgt); #else kfree(mdlPriv->sgt.sgl); diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c index a21884dfb754..d88879ff913f 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c @@ -93,7 +93,6 @@ struct um_desc struct { struct page **pages; - struct sg_table sgt; }; /* UM_PFN_MAP. */ @@ -104,6 +103,8 @@ struct um_desc }; }; + struct sg_table sgt; + /* contiguous chunks, does not include padding pages. */ int chunk_count; @@ -184,8 +185,7 @@ static int import_page_map(struct um_desc *um, } } -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN result = sg_alloc_table_from_pages(&um->sgt, pages, page_count, addr & ~PAGE_MASK, size, GFP_KERNEL | gcdNOWARN); @@ -214,8 +214,7 @@ static int import_page_map(struct um_desc *um, return 0; error: -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN sg_free_table(&um->sgt); #else kfree(um->sgt.sgl); @@ -236,6 +235,9 @@ static int import_pfn_map(struct um_desc *um, struct vm_area_struct *vma; unsigned long *pfns; int *refs; + struct page **pages = gcvNULL; + int result = 0; + size_t pageCount = 0; if (!current->mm) return -ENOTTY; @@ -260,6 +262,14 @@ static int import_pfn_map(struct um_desc *um, return -ENOMEM; } + pages = kzalloc(pfn_count * sizeof(void *), GFP_KERNEL | gcdNOWARN); + if (!pages) + { + kfree(pfns); + kfree(refs); + return -ENOMEM; + } + for (i = 0; i < pfn_count; i++) { spinlock_t *ptl; @@ -300,11 +310,6 @@ static int import_pfn_map(struct um_desc *um, goto err; pte = pte_offset_map_lock(current->mm, pmd, addr, &ptl); - if (!pte) - { - spin_unlock(ptl); - goto err; - } if (!pte_present(*pte)) { @@ -325,6 +330,8 @@ static int import_pfn_map(struct um_desc *um, { struct page *page = pfn_to_page(pfns[i]); refs[i] = get_page_unless_zero(page); + pages[i] = page; + pageCount++; } } @@ -337,6 +344,41 @@ static int import_pfn_map(struct um_desc *um, } } + if (pageCount == pfn_count) + { +#if gcdSYS_HAS_SG_CHAIN + result = sg_alloc_table_from_pages(&um->sgt, pages, pfn_count, + addr & ~PAGE_MASK, pfn_count * PAGE_SIZE, GFP_KERNEL | gcdNOWARN); + +#else + result = alloc_sg_list_from_pages(&um->sgt.sgl, pages, pfn_count, + addr & ~PAGE_MASK, pfn_count * PAGE_SIZE, &um->sgt.nents); + + um->sgt.orig_nents = um->sgt.nents; +#endif + if (unlikely(result < 0)) + { + printk("[galcore]: %s: sg_alloc_table_from_pages failed\n", __FUNCTION__); + goto err; + } + + result = dma_map_sg(galcore_device, um->sgt.sgl, um->sgt.nents, DMA_TO_DEVICE); + + if (unlikely(result != um->sgt.nents)) + { +#if gcdSYS_HAS_SG_CHAIN + sg_free_table(&um->sgt); +#else + kfree(um->sgt.sgl); +#endif + printk("[galcore]: %s: dma_map_sg failed\n", __FUNCTION__); + goto err; + } + } + + kfree(pages); + pages = gcvNULL; + um->type = UM_PFN_MAP; um->pfns = pfns; um->refs = refs; @@ -349,6 +391,9 @@ err: if (refs) kfree(refs); + if (pages) + kfree(pages); + return -ENOTTY; } @@ -364,7 +409,7 @@ _Import( gceSTATUS status = gcvSTATUS_OK; unsigned long vm_flags = 0; struct vm_area_struct *vma = NULL; - gctSIZE_T start, end, memory; + unsigned long start, end, memory; int result = 0; gctSIZE_T extraPage; @@ -377,7 +422,7 @@ _Import( gcmkVERIFY_ARGUMENT(Memory != gcvNULL || Physical != ~0ULL); gcmkVERIFY_ARGUMENT(Size > 0); - memory = (Physical != gcvINVALID_PHYSICAL_ADDRESS) ? Physical : (gctSIZE_T)Memory; + memory = untagged_addr((unsigned long)Memory); #if LINUX_VERSION_CODE >= KERNEL_VERSION (5,4,0) memory = untagged_addr(memory); @@ -409,11 +454,9 @@ _Import( return gcvSTATUS_INVALID_ARGUMENT; } - memory = (gctSIZE_T)Memory; - if (memory) { - gctSIZE_T vaddr = memory; + unsigned long vaddr = memory; for (i = 0; i < pageCount; i++) { @@ -621,8 +664,7 @@ static void release_page_map(struct um_desc *um) dma_unmap_sg(galcore_device, um->sgt.sgl, um->sgt.nents, DMA_FROM_DEVICE); -#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \ - && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN)) +#if gcdSYS_HAS_SG_CHAIN sg_free_table(&um->sgt); #else kfree(um->sgt.sgl); @@ -763,7 +805,7 @@ _UserMemoryCache( struct um_desc *um = Mdl->priv; enum dma_data_direction dir; - if (um->type != UM_PAGE_MAP) + if (um->type == UM_PHYSICAL_MAP) { _MemoryBarrier(); return gcvSTATUS_OK; diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c index d788c3a718eb..83f006d1d547 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c @@ -178,8 +178,7 @@ gckOS_FreeAllocators( return gcvSTATUS_OK; } -#if LINUX_VERSION_CODE < KERNEL_VERSION (3,6,0) \ - || (!defined (ARCH_HAS_SG_CHAIN) && !defined (CONFIG_ARCH_HAS_SG_CHAIN)) +#if !gcdSYS_HAS_SG_CHAIN #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) static inline void sg_set_page(struct scatterlist *sg, struct page *page, diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h index e6f1d24c148c..0d547798ff00 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h @@ -561,8 +561,7 @@ OnError: return status; } -#if LINUX_VERSION_CODE < KERNEL_VERSION (3,6,0) \ - || (!defined (ARCH_HAS_SG_CHAIN) && !defined (CONFIG_ARCH_HAS_SG_CHAIN)) +#if !gcdSYS_HAS_SG_CHAIN int alloc_sg_list_from_pages( struct scatterlist **sgl, diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.c index 8b0289705ab0..086416d46c4c 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.c @@ -953,9 +953,6 @@ gckOS_DebugStatus2Name( ***** Kernel Dump ************************************************************** *******************************************************************************/ -/* - * TODO: Dump to file is only valid in linux currently. - */ #ifndef gcmkDUMP_STRING # define gcmkDUMP_STRING(os, s) gcmkOUTPUT_STRING((s)) #endif diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c index a6aba6eed406..e444f58e56bd 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c @@ -1449,7 +1449,24 @@ static int _set_clk(const char* buf) static int gc_clk_write(const char __user *buf, size_t count, void* data) { - _set_clk(buf); + size_t ret; + char _buf[100]; + + memset((void*)_buf, 0, 100); + + if (count > 100) + { + printk("Error: input buffer too large\n"); + } + + ret = copy_from_user(_buf, buf, count); + if (ret != 0) + { + printk("Error: lost data: %d\n", (int)ret); + return ret; + } + + _set_clk(_buf); return count; } @@ -2234,11 +2251,6 @@ gckGALDEVICE_Construct( Args->gpu3DMinClock )); #endif - - gcmkONERROR(gckHARDWARE_SetGpuProfiler( - device->kernels[i]->hardware, - Args->gpuProfiler - )); } else { diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c index 2883ef8c2be7..7f6f2acb2708 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c @@ -168,10 +168,6 @@ static int powerManagement = 1; module_param(powerManagement, int, 0644); MODULE_PARM_DESC(powerManagement, "Disable auto power saving if set it to 0, enabled by default"); -static int gpuProfiler = 0; -module_param(gpuProfiler, int, 0644); -MODULE_PARM_DESC(gpuProfiler, "Enable profiling support, disabled by default"); - static ulong baseAddress = 0; module_param(baseAddress, ulong, 0644); MODULE_PARM_DESC(baseAddress, "Only used for old MMU, set it to 0 if memory which can be accessed by GPU falls into 0 - 2G, otherwise set it to 0x80000000"); @@ -419,7 +415,6 @@ _InitModuleParam( p->smallBatch = smallBatch; p->stuckDump = stuckDump; - p->gpuProfiler = gpuProfiler; p->deviceType = type; p->showArgs = showArgs; @@ -539,7 +534,6 @@ _SyncModuleParam( smallBatch = p->smallBatch; stuckDump = p->stuckDump; - gpuProfiler = p->gpuProfiler; type = p->deviceType; showArgs = p->showArgs; @@ -608,7 +602,6 @@ gckOS_DumpParam( printk(" physSize = 0x%08lX\n", physSize); printk(" recovery = %d\n", recovery); printk(" stuckDump = %d\n", stuckDump); - printk(" gpuProfiler = %d\n", gpuProfiler); printk(" userClusterMask = 0x%x\n", userClusterMask); printk(" GPU smallBatch = %d\n", smallBatch); printk(" allMapInOne = %d\n", allMapInOne); @@ -1048,9 +1041,16 @@ static struct file_operations driver_fops = .open = drv_open, .release = drv_release, .unlocked_ioctl = drv_ioctl, + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(5,8,18) + #ifdef HAVE_COMPAT_IOCTL .compat_ioctl = drv_ioctl, #endif + +#else + .compat_ioctl = drv_ioctl, +#endif }; static struct miscdevice gal_device = { diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c index df8dcf4f1d2d..60a76e61d41e 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c @@ -82,6 +82,17 @@ struct viv_gem_object { gctBOOL cacheable; }; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0) +void viv_gem_free_object(struct drm_gem_object *gem_obj); +struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj, + int flags); + +static const struct drm_gem_object_funcs viv_gem_object_funcs = { + .free = viv_gem_free_object, + .export = viv_gem_prime_export, +}; +#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0) struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj, int flags) @@ -141,6 +152,9 @@ struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm, /* ioctl output */ gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL); drm_gem_private_object_init(drm, gem_obj, dmabuf->size); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0) + gem_obj->funcs = &viv_gem_object_funcs; +#endif viv_obj = container_of(gem_obj, struct viv_gem_object, base); viv_obj->node_handle = iface.u.WrapUserMemory.node; viv_obj->node_object = nodeObject; @@ -224,6 +238,9 @@ static int viv_ioctl_gem_create(struct drm_device *drm, void *data, /* ioctl output */ gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL); drm_gem_private_object_init(drm, gem_obj, (size_t)alignSize); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0) + gem_obj->funcs = &viv_gem_object_funcs; +#endif ret = drm_gem_handle_create(file, gem_obj, &args->handle); viv_obj = container_of(gem_obj, struct viv_gem_object, base); @@ -799,14 +816,18 @@ static struct drm_driver viv_drm_driver = { #endif .open = viv_drm_open, .postclose = viv_drm_postclose, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) .gem_free_object_unlocked = viv_gem_free_object, #else .gem_free_object = viv_gem_free_object, +#endif #endif .prime_handle_to_fd = drm_gem_prime_handle_to_fd, .prime_fd_to_handle = drm_gem_prime_fd_to_handle, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0) .gem_prime_export = viv_gem_prime_export, +#endif .gem_prime_import = viv_gem_prime_import, .ioctls = viv_ioctls, .num_ioctls = DRM_VIV_NUM_IOCTLS, diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h index d803cb242fe0..09f0011f7219 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h @@ -171,6 +171,10 @@ #define current_mm_mmap_sem current->mm->mmap_sem #endif +#ifndef untagged_addr +#define untagged_addr(addr) (addr) +#endif + extern struct device *galcore_device; /******************************************************************************\ diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c index c0b7b71b130a..bba91508e245 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c @@ -492,12 +492,6 @@ _QueryProcessPageTable( return gcvSTATUS_NOT_FOUND; pte = pte_offset_map_lock(current->mm, pmd, logical, &ptl); - if (!pte) - { - spin_unlock(ptl); - return gcvSTATUS_NOT_FOUND; - } - if (!pte_present(*pte)) { pte_unmap_unlock(pte, ptl); @@ -3452,7 +3446,7 @@ gckOS_MapPagesEx( while (PageCount-- > 0) { gctUINT i; - gctPHYS_ADDR_T phys = ~0U; + gctPHYS_ADDR_T phys = ~0ULL; gcmALLOCATOR_Physical(allocator, mdl, offset, &phys); @@ -3610,7 +3604,6 @@ gckOS_Map1MPages( PLINUX_MDL mdl; gctUINT32* table; gctUINT32 offset = 0; - gctSIZE_T bytes = PageCount * 4; gckALLOCATOR allocator; @@ -3657,7 +3650,7 @@ gckOS_Map1MPages( while (PageCount-- > 0) { - gctPHYS_ADDR_T phys = ~0U; + gctPHYS_ADDR_T phys = ~0ULL; gcmALLOCATOR_Physical(allocator, mdl, offset, &phys); @@ -3673,14 +3666,15 @@ gckOS_Map1MPages( } /* Get the start physical of 1M page. */ - phys &= ~((1 << 20) - 1); + phys &= ~(gcd1M_PAGE_SIZE - 1); - gcmkONERROR( - gckMMU_SetPage(Os->device->kernels[Core]->mmu, + gcmkONERROR(gckMMU_SetPage( + Os->device->kernels[Core]->mmu, phys, gcvPAGE_TYPE_1M, Writable, - table++)); + table++ + )); offset += gcd1M_PAGE_SIZE; } @@ -7248,10 +7242,6 @@ gckOS_QueryOption( { *Value = 0; } - else if (!strcmp(Option, "gpuProfiler")) - { - *Value = device->args.gpuProfiler; - } else if (!strcmp(Option, "userClusterMask")) { *Value = device->args.userClusterMask; diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h index 32898480cec9..d1558999d323 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h @@ -113,7 +113,6 @@ typedef struct _gcsMODULE_PARAMETERS /* Debug or other information. */ gctUINT stuckDump; - gctINT gpuProfiler; /* device type, 0 for char device, 1 for misc device. */ gctUINT deviceType; @@ -300,7 +299,6 @@ struct _gcsPLATFORM const char *name; gcsPLATFORM_OPERATIONS* ops; - /* TODO: Remove AXI-SRAM size from feature database. */ gckDEVICE dev; /* PLATFORM specific flags */ diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/default/gc_hal_kernel_platform_default.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/default/gc_hal_kernel_platform_default.c index daf220585d8b..fb8fe8d5ef8f 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/default/gc_hal_kernel_platform_default.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/default/gc_hal_kernel_platform_default.c @@ -290,7 +290,6 @@ _GetGPUPhysical( gctPHYS_ADDR_T sram_gpu_base = pcie_platform->pcie_info[0].sram_gpu_bases[0]; uint32_t sram_size = pcie_platform->pcie_info[0].sram_sizes[0]; - /* TODO: We should always set axi sram size by insmod parameters, never from feature database. */ if (!sram_size && Platform->dev && Platform->dev->extSRAMSizes[0]) { sram_size = Platform->dev->extSRAMSizes[0]; diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c index 3e6c75ae75a0..97e88a978e9f 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c @@ -113,7 +113,7 @@ static sc_ipc_t gpu_ipcHandle; #include #include -#ifdef CONFIG_DEVICE_THERMAL +#if IS_ENABLED(CONFIG_DEVICE_THERMAL) #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) # include # define REG_THERMAL_NOTIFIER(a) register_devfreq_cooling_notifier(a); @@ -906,7 +906,6 @@ static inline int get_power_imx8_subsystem(struct device *pdev) } #if defined(CONFIG_ANDROID) && LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0) - /* TODO: freescale BSP issue in some platform like imx8dv. */ clk_prepare(clk_core); clk_set_rate(clk_core, 800000000); clk_unprepare(clk_core); @@ -1848,6 +1847,9 @@ int gckPLATFORM_Init(struct platform_driver *pdrv, #endif *platform = &imx_platform; +#ifdef GALCORE_BUILD_BY + printk("module built by %s at %s", GALCORE_BUILD_BY, GALCORE_BUILD_TM); +#endif return 0; } diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.config b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.config index fa4fb519f5f5..6396755ea37c 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.config +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.config @@ -27,3 +27,8 @@ EXTRA_CFLAGS += -DgcdGPU_2D_TIMEOUT=20000 EXTRA_CFLAGS += -DNO_DMA_COHERENT=1 EXTRA_CFLAGS += -DgcdSYS_FREE_MEMORY_LIMIT=51200 +ifeq ($(CONFIG_MXC_GPU_VIV),m) +GALCORE_BUILD_TM =\"$(shell date)\" +EXTRA_CFLAGS += -DGALCORE_BUILD_BY=\"$(shell whoami)\" +EXTRA_CFLAGS += -DGALCORE_BUILD_TM="${GALCORE_BUILD_TM}" +endif -- 2.17.1