MGS-2027 [#ccc] integrate 6.1.1 gpu kernel driver
authorXianzhong <xianzhong.li@nxp.com>
Tue, 26 Jul 2016 07:58:43 +0000 (15:58 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:52:08 +0000 (14:52 -0500)
Integrate gpu kernel driver part for 6.1.1 release

Date: Jul 26, 2016
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
36 files changed:
drivers/mxc/gpu-viv/Kbuild
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config

index 85b2265..5eb49db 100644 (file)
@@ -292,6 +292,10 @@ EXTRA_CFLAGS += -I$(AQROOT)/hal/os/linux/kernel
 EXTRA_CFLAGS += -I$(AQROOT)/$(ALLOCATOR_ARRAY_H_LOCATION)
 EXTRA_CFLAGS += -I$(AQROOT)/hal/security_v1/
 
+ifneq ($(CONFIG_ARM), )
+EXTRA_CFLAGS += -Iarch/arm/mm
+endif
+
 ifeq ($(VIVANTE_ENABLE_VG), 1)
 EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/archvg
 endif
index 0509539..3228a45 100644 (file)
@@ -1462,7 +1462,7 @@ if (halti5){    vsConstBase  = 0xD000;
     index += _State(Context, index, 0x00C24 >> 2, 0x00000000, 1, gcvTRUE, gcvFALSE);
 
     /* Raster states. */
-    index += _State(Context, index, 0x00E00 >> 2, 0x00000001, 1, gcvFALSE, gcvFALSE);
+    index += _State(Context, index, 0x00E00 >> 2, 0x000000F1, 1, gcvFALSE, gcvFALSE);
     index += _State(Context, index, 0x00E10 >> 2, 0x00000000, 4, gcvFALSE, gcvFALSE);
     index += _State(Context, index, 0x00E04 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
     index += _State(Context, index, 0x00E40 >> 2, 0x00000000, 16, gcvFALSE, gcvFALSE);
@@ -2627,7 +2627,7 @@ gckCONTEXT_Update(
     /* Wait until the context buffer becomes available; this will
        also reset the signal and mark the buffer as busy. */
     gcmkONERROR(gckOS_WaitSignal(
-        Context->os, buffer->signal, gcvINFINITE
+        Context->os, buffer->signal, gcvFALSE, gcvINFINITE
         ));
 
 #if gcdSECURE_USER
index f4ff38b..ba82658 100644 (file)
@@ -957,20 +957,12 @@ OnError:
     return status;
 }
 
-gctBOOL
+static gctBOOL
 _IsGPUIdle(
     IN gctUINT32 Idle
     )
 {
-   return  (((((gctUINT32) (Idle)) >> (0 ? 0:0)) & ((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 1:1)) & ((gctUINT32) ((((1 ? 1:1) - (0 ? 1:1) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:1) - (0 ? 1:1) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 3:3)) & ((gctUINT32) ((((1 ? 3:3) - (0 ? 3:3) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 3:3) - (0 ? 3:3) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 4:4)) & ((gctUINT32) ((((1 ? 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 5:5)) & ((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 6:6)) & ((gctUINT32) ((((1 ? 6:6) - (0 ? 6:6) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 6:6) - (0 ? 6:6) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 7:7)) & ((gctUINT32) ((((1 ? 7:7) - (0 ? 7:7) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:7) - (0 ? 7:7) + 1)))))) )
-        && (((((gctUINT32) (Idle)) >> (0 ? 2:2)) & ((gctUINT32) ((((1 ? 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1)))))) )
-        ;
+    return Idle == 0x7FFFFFFF;
 }
 
 gctBOOL
@@ -1238,6 +1230,18 @@ _QueryFeatureDatabase(
         available = database->FE_NEED_DUMMYDRAW;
         break;
 
+    case gcvFEATURE_DEC_COMPRESSION:
+        available = database->REG_DEC;
+        break;
+
+    case gcvFEATURE_USC_DEFER_FILL_FIX:
+        available = database->USC_DEFER_FILL_FIX;
+        break;
+
+    case gcvFEATURE_USC:
+        available = database->REG_Halti5;
+        break;
+
     default:
         gcmkFATAL("Invalid feature has been requested.");
         available = gcvFALSE;
@@ -1247,6 +1251,95 @@ _QueryFeatureDatabase(
     return available;
 }
 
+static void
+_ConfigurePolicyID(
+    IN gckHARDWARE Hardware
+    )
+{
+    gceSTATUS status;
+    gctUINT32 policyID;
+    gctUINT32 auxBit = ~0U;
+    gctUINT32 axiConfig;
+    gckOS os = Hardware->os;
+    gceCORE core = Hardware->core;
+    gctUINT32 i;
+    gctUINT32 offset;
+    gctUINT32 shift;
+    gctUINT32 currentAxiConfig;
+
+    status = gckOS_GetPolicyID(os, gcvSURF_TYPE_UNKNOWN, &policyID, &axiConfig);
+
+    if (status == gcvSTATUS_NOT_SUPPORTED)
+    {
+        /* No customized policyID setting. */
+        return;
+    }
+
+    for (i = 0; i < 16; i++)
+    {
+        /* Mapping 16 surface type.*/
+        status = gckOS_GetPolicyID(os, (gceSURF_TYPE) i, &policyID, &axiConfig);
+
+        if (gcmIS_SUCCESS(status))
+        {
+            if (auxBit == ~0U)
+            {
+                /* There is a customized policyID setting for this type. */
+                auxBit = (policyID >> 4) & 0x1;
+            }
+            else
+            {
+                /* Check whether this bit changes. */
+                if (auxBit != ((policyID >> 4) & 0x1))
+                {
+                    gcmkPRINT("[galcore]: AUX_BIT changes");
+                    return;
+                }
+            }
+
+            offset = policyID >> 1;
+
+            shift  = (policyID & 0x1) * 16;
+
+            axiConfig &= 0xFFFF;
+
+            gcmkVERIFY_OK(gckOS_ReadRegisterEx(
+                os,
+                core,
+                (0x0070 + offset) << 2,
+                &currentAxiConfig
+                ));
+
+            currentAxiConfig |= (axiConfig << shift);
+
+            gcmkVERIFY_OK(gckOS_WriteRegisterEx(
+                os,
+                core,
+                (0x0070 + offset) << 2,
+                currentAxiConfig
+                ));
+        }
+    }
+
+    if (auxBit != ~0U)
+    {
+        gcmkVERIFY_OK(gckOS_WriteRegisterEx(
+            os,
+            core,
+            0x000EC,
+            ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ?
+ 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ?
+ 7:0))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0)))
+          | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 8:8) - (0 ?
+ 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1))))))) << (0 ?
+ 8:8))) | (((gctUINT32) ((gctUINT32) (auxBit) & ((gctUINT32) ((((1 ? 8:8) - (0 ?
+ 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1))))))) << (0 ?
+ 8:8)))
+            ));
+    }
+}
+
 /*
 * State timer helper must be called with powerMutex held.
 */
@@ -1419,7 +1512,7 @@ gckHARDWARE_Construct(
             "_ResetGPU failed: status=%d\n", status);
     }
 
-#if gcdENABLE_DEC_COMPRESSION && !gcdDEC_ENABLE_AHB
+#if gcdDEC_ENABLE_AHB
     gcmkONERROR(gckOS_WriteRegisterEx(Os, gcvCORE_DEC, 0x18180, ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
  22:22) - (0 ? 22:22) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 22:22) - (0 ? 22:22) + 1))))))) << (0 ?
  22:22))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 22:22) - (0 ? 22:22) + 1) == 32) ?
@@ -1462,7 +1555,7 @@ gckHARDWARE_Construct(
     {
         gctUINT32 value;
         gcmkONERROR(gckOS_ReadRegisterEx(Os, Core, 0x00090, &value));
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
         if (gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_DEC_COMPRESSION))
         {
             value |= ~0xFFFFFFBF;
@@ -1933,9 +2026,13 @@ gckHARDWARE_InitializeHardware(
  23:23)))));
     }
 
-    if (Hardware->identity.chipModel == gcv1000 &&
-        (Hardware->identity.chipRevision == 0x5039 ||
-        Hardware->identity.chipRevision == 0x5040))
+    if ((Hardware->identity.chipModel == gcv1000 &&
+         (Hardware->identity.chipRevision == 0x5039 ||
+          Hardware->identity.chipRevision == 0x5040))
+        ||
+        (Hardware->identity.chipModel == gcv2000 &&
+         Hardware->identity.chipRevision == 0x5140)
+       )
     {
         gctUINT32 pulseEater;
 
@@ -2177,6 +2274,25 @@ gckHARDWARE_InitializeHardware(
                                       data));
     }
 
+
+    /* VIV: #15495. */
+    if (_IsHardwareMatch(Hardware, gcv2500, 0x5422))
+    {
+        gcmkONERROR(gckOS_ReadRegisterEx(
+            Hardware->os, Hardware->core, 0x00090, &data));
+
+        /* AXI switch setup to SPLIT_TO64 mode */
+        data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 1:0) - (0 ? 1:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ?
+ 1:0))) | (((gctUINT32) (0x2 & ((gctUINT32) ((((1 ? 1:0) - (0 ? 1:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ? 1:0)));
+
+        gcmkONERROR(gckOS_WriteRegisterEx(
+            Hardware->os, Hardware->core, 0x00090, data));
+    }
+
+    _ConfigurePolicyID(Hardware);
+
 #if gcdDEBUG_MODULE_CLOCK_GATING
     _ConfigureModuleLevelClockGating(Hardware);
 #endif
@@ -7243,6 +7359,9 @@ gckHARDWARE_SetPowerManagementState(
 
         /* Force the command queue to reload the next context. */
         command->currContext = gcvNULL;
+
+        /* Trigger a possible dummy draw. */
+        command->dummyDraw = gcvTRUE;
     }
 
     /* Get time until initialized. */
@@ -12273,10 +12392,11 @@ gckHARDWARE_DummyDraw(
     IN gckHARDWARE Hardware,
     IN gctPOINTER Logical,
     IN gctUINT32 Address,
+    IN gceDUMMY_DRAW_TYPE DummyDrawType,
     IN OUT gctUINT32 * Bytes
     )
 {
-    gctUINT32 dummyDraw[] = {
+    gctUINT32 dummyDraw_gc400[] = {
 
         ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
  31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
@@ -12533,7 +12653,7 @@ gckHARDWARE_DummyDraw(
  25:16))),
         0x000F003F,
 
-               ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
  31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
  31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
  ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
@@ -12572,7 +12692,7 @@ gckHARDWARE_DummyDraw(
  1:0))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 1:0) - (0 ? 1:0) + 1) == 32) ?
  ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ? 1:0))),
 
-               ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
  31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
  31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
  ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
@@ -12703,14 +12823,533 @@ gckHARDWARE_DummyDraw(
  23:0))),
         };
 
-    dummyDraw[1] = Address;
+    gctUINT32 dummyDraw_v60[] = {
+
+        /* Semaphore from FE to PE. */
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E02) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:0) - (0 ?
+ 4:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ?
+ 4:0))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 4:0) - (0 ? 4:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ? 4:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 12:8) - (0 ? 12:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ?
+ 12:8))) | (((gctUINT32) (0x07 & ((gctUINT32) ((((1 ? 12:8) - (0 ? 12:8) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ? 12:8))),
+
+        /* Stall from FE to PE. */
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x09 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:0) - (0 ?
+ 4:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ?
+ 4:0))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 4:0) - (0 ? 4:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ? 4:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 12:8) - (0 ? 12:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ?
+ 12:8))) | (((gctUINT32) (0x07 & ((gctUINT32) ((((1 ? 12:8) - (0 ? 12:8) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ? 12:8))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x021A) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 0:0) - (0 ?
+ 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ?
+ 0:0))) | (((gctUINT32) ((gctUINT32) (0x0) & ((gctUINT32) ((((1 ? 0:0) - (0 ?
+ 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ?
+ 0:0))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E06) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 1:0) - (0 ?
+ 1:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ?
+ 1:0))) | (((gctUINT32) ((gctUINT32) (0x0) & ((gctUINT32) ((((1 ? 1:0) - (0 ?
+ 1:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ?
+ 1:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 14:12) - (0 ? 14:12) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 14:12) - (0 ? 14:12) + 1))))))) << (0 ?
+ 14:12))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 14:12) - (0 ? 14:12) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 14:12) - (0 ? 14:12) + 1))))))) << (0 ? 14:12)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 17:16) - (0 ? 17:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 17:16) - (0 ? 17:16) + 1))))))) << (0 ?
+ 17:16))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 17:16) - (0 ? 17:16) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 17:16) - (0 ? 17:16) + 1))))))) << (0 ? 17:16)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 7:4) - (0 ? 7:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:4) - (0 ? 7:4) + 1))))))) << (0 ?
+ 7:4))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 7:4) - (0 ?
+ 7:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:4) - (0 ? 7:4) + 1))))))) << (0 ?
+ 7:4))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0401) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (6) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        0x0,
+        0x2,
+        0x0,
+        0x0,
+        0x0,
+        0x0,
+        (gctUINT32)~0x0,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x020C) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        0xffffffff,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E07) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        2,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E08) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        2,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0420) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 2:0) - (0 ?
+ 2:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:0) - (0 ? 2:0) + 1))))))) << (0 ?
+ 2:0))) | (((gctUINT32) ((gctUINT32) (2) & ((gctUINT32) ((((1 ? 2:0) - (0 ?
+ 2:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:0) - (0 ? 2:0) + 1))))))) << (0 ?
+ 2:0))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0424) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        1,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0403) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        3,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E21) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 2:0) - (0 ?
+ 2:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:0) - (0 ? 2:0) + 1))))))) << (0 ?
+ 2:0))) | (((gctUINT32) (0x2 & ((gctUINT32) ((((1 ? 2:0) - (0 ? 2:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 2:0) - (0 ? 2:0) + 1))))))) << (0 ? 2:0))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x040A) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        0,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x2000) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1 << 2) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        0x07801033,0x3fc00900,0x00000040,0x00390008,
+        (gctUINT32)~0,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x021F) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        0x0,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0240) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 1:0) - (0 ?
+ 1:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ?
+ 1:0))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 1:0) - (0 ? 1:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 1:0) - (0 ? 1:0) + 1))))))) << (0 ? 1:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 6:4) - (0 ? 6:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 6:4) - (0 ? 6:4) + 1))))))) << (0 ?
+ 6:4))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 6:4) - (0 ? 6:4) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 6:4) - (0 ? 6:4) + 1))))))) << (0 ? 6:4)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1))))))) << (0 ?
+ 8:8))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1))))))) << (0 ? 8:8)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 26:24) - (0 ? 26:24) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:24) - (0 ? 26:24) + 1))))))) << (0 ?
+ 26:24))) | (((gctUINT32) (0x3 & ((gctUINT32) ((((1 ? 26:24) - (0 ? 26:24) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 26:24) - (0 ? 26:24) + 1))))))) << (0 ? 26:24))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0241) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (31) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 31:16) - (0 ? 31:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:16) - (0 ? 31:16) + 1))))))) << (0 ?
+ 31:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 31:16) - (0 ?
+ 31:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:16) - (0 ? 31:16) + 1))))))) << (0 ?
+ 31:16))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0244) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 9:0) - (0 ?
+ 9:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:0) - (0 ? 9:0) + 1))))))) << (0 ?
+ 9:0))) | (((gctUINT32) ((gctUINT32) (31) & ((gctUINT32) ((((1 ? 9:0) - (0 ?
+ 9:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:0) - (0 ? 9:0) + 1))))))) << (0 ?
+ 9:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 31:16) - (0 ? 31:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:16) - (0 ? 31:16) + 1))))))) << (0 ?
+ 31:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ? 31:16) - (0 ?
+ 31:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:16) - (0 ? 31:16) + 1))))))) << (0 ?
+ 31:16))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0247) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+
+        (32+(4*(((gcsFEATURE_DATABASE *)Hardware->featureDatabase)->NumShaderCores)-1))/(4*(((gcsFEATURE_DATABASE *)Hardware->featureDatabase)->NumShaderCores)),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0248) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        1,
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E03) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 5:5) - (0 ?
+ 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ?
+ 5:5))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ? 5:5))),
+
+        /* Semaphore from FE to PE. */
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x0E02) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:0) - (0 ?
+ 4:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ?
+ 4:0))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 4:0) - (0 ? 4:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ? 4:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 12:8) - (0 ? 12:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ?
+ 12:8))) | (((gctUINT32) (0x07 & ((gctUINT32) ((((1 ? 12:8) - (0 ? 12:8) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ? 12:8))),
+
+        /* Stall from FE to PE. */
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x09 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27))),
+
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 4:0) - (0 ?
+ 4:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ?
+ 4:0))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 4:0) - (0 ? 4:0) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 4:0) - (0 ? 4:0) + 1))))))) << (0 ? 4:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 12:8) - (0 ? 12:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ?
+ 12:8))) | (((gctUINT32) (0x07 & ((gctUINT32) ((((1 ? 12:8) - (0 ? 12:8) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 12:8) - (0 ? 12:8) + 1))))))) << (0 ? 12:8))),
+
+        /* Invalidate I cache.*/
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 31:27) - (0 ?
+ 31:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ?
+ 31:27))) | (((gctUINT32) (0x01 & ((gctUINT32) ((((1 ? 31:27) - (0 ? 31:27) + 1) == 32) ?
+ ~0 : (~(~0 << ((1 ? 31:27) - (0 ? 31:27) + 1))))))) << (0 ? 31:27)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 15:0) - (0 ? 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0))) | (((gctUINT32) ((gctUINT32) (0x022C) & ((gctUINT32) ((((1 ? 15:0) - (0 ?
+ 15:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 15:0) - (0 ? 15:0) + 1))))))) << (0 ?
+ 15:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 25:16) - (0 ? 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 25:16) - (0 ?
+ 25:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 25:16) - (0 ? 25:16) + 1))))))) << (0 ?
+ 25:16))),
+        ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 0:0) - (0 ?
+ 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ?
+ 0:0))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 0:0) - (0 ?
+ 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ?
+ 0:0)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 1:1) - (0 ? 1:1) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:1) - (0 ? 1:1) + 1))))))) << (0 ?
+ 1:1))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 1:1) - (0 ?
+ 1:1) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 1:1) - (0 ? 1:1) + 1))))))) << (0 ?
+ 1:1)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 2:2) - (0 ? 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ?
+ 2:2))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 2:2) - (0 ?
+ 2:2) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 2:2) - (0 ? 2:2) + 1))))))) << (0 ?
+ 2:2)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 3:3) - (0 ? 3:3) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 3:3) - (0 ? 3:3) + 1))))))) << (0 ?
+ 3:3))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 3:3) - (0 ?
+ 3:3) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 3:3) - (0 ? 3:3) + 1))))))) << (0 ?
+ 3:3)))
+            | ((((gctUINT32) (0)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 4:4) - (0 ? 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ?
+ 4:4))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 4:4) - (0 ?
+ 4:4) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 4:4) - (0 ? 4:4) + 1))))))) << (0 ?
+ 4:4))),
+    };
+
+    gctUINT32 bytes = 0;
+    gctUINT32_PTR dummyDraw = gcvNULL;
+
+
+    switch(DummyDrawType)
+    {
+    case gcvDUMMY_DRAW_GC400:
+        dummyDraw = dummyDraw_gc400;
+        bytes = gcmSIZEOF(dummyDraw_gc400);
+        *(dummyDraw + 1) = Address;
+        break;
+    case gcvDUMMY_DRAW_V60:
+        dummyDraw = dummyDraw_v60;
+        bytes = gcmSIZEOF(dummyDraw_v60);
+        break;
+    default:
+        /* other chip no need dummy draw.*/
+        gcmkASSERT(0);
+        break;
+    };
 
     if (Logical != gcvNULL)
     {
-        gckOS_MemCopy(Logical, dummyDraw, gcmSIZEOF(dummyDraw));
+        gckOS_MemCopy(Logical, dummyDraw, bytes);
     }
 
-    *Bytes = gcmSIZEOF(dummyDraw);
+    *Bytes = bytes;
 
     return gcvSTATUS_OK;
 }
index 3e476fd..0cf12da 100644 (file)
@@ -332,6 +332,7 @@ gckHARDWARE_DummyDraw(
     IN gckHARDWARE Hardware,
     IN gctPOINTER Logical,
     IN gctUINT32 Address,
+    IN gceDUMMY_DRAW_TYPE DummyDrawType,
     IN OUT gctUINT32 * Bytes
     );
 
index a9abb23..874b55c 100644 (file)
@@ -1630,6 +1630,7 @@ static gceSTATUS _CommandStall(
         gcmkERR_BREAK(gckOS_WaitSignal(
             command->os,
             command->powerStallSignal,
+            gcvTRUE,
             command->kernel->kernel->timeOut));
 
 
index 2519729..bbd8e58 100644 (file)
@@ -55,7 +55,7 @@
 
 #include "gc_hal_kernel_precomp.h"
 
-#if gcdENABLE_DEC_COMPRESSION && gcdDEC_ENABLE_AHB
+#if gcdDEC_ENABLE_AHB
 #include "viv_dec300_main.h"
 #endif
 
@@ -150,6 +150,9 @@ gctCONST_STRING _DispatchText[] =
     gcmDEFINE2TEXT(gcvHAL_WRAP_USER_MEMORY),
     gcmDEFINE2TEXT(gcvHAL_WAIT_FENCE),
     gcmDEFINE2TEXT(gcvHAL_GET_VIDEO_MEMORY_FD),
+#if gcdENABLE_VG
+    gcmDEFINE2TEXT(gcvHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY)
+#endif
 };
 #endif
 
@@ -576,7 +579,7 @@ gckKERNEL_Construct(
         kernel->virtualCommandBuffer = gcvTRUE;
 #endif
 
-#if gcdSECURITY
+#if gcdSECURITY || gcdDISABLE_GPU_VIRTUAL_ADDRESS
         kernel->virtualCommandBuffer = gcvFALSE;
 #endif
 
@@ -1730,7 +1733,7 @@ gckKERNEL_WaitFence(
             gcmkVERIFY_OK(gckOS_ReleaseMutex(Kernel->os, &fence->mutex));
 
             /* Wait. */
-            status = gckOS_WaitSignal(Kernel->os, sync->signal, TimeOut);
+            status = gckOS_WaitSignal(Kernel->os, sync->signal, gcvTRUE, TimeOut);
 
             gcmkVERIFY_OK(gckOS_AcquireMutex(Kernel->os, &fence->mutex, gcvINFINITE));
 
@@ -1777,6 +1780,7 @@ OnError:
 gceSTATUS
 gckKERNEL_Dispatch(
     IN gckKERNEL Kernel,
+    IN gckDEVICE Device,
     IN gctBOOL FromUser,
     IN OUT gcsHAL_INTERFACE * Interface
     )
@@ -2050,26 +2054,6 @@ gckKERNEL_Dispatch(
             Kernel, processID,
             (gctUINT32)Interface->u.ReleaseVideoMemory.node
             ));
-
-#if gcdENABLE_VG
-        if (Kernel->vg != gcvNULL)
-        {
-            gckVIDMEM_NODE nodeObject;
-
-            /* Remove record from process db. */
-            gcmkERR_BREAK(
-                gckKERNEL_RemoveProcessDB(Kernel, processID,
-                gcvDB_VIDEO_MEMORY_LOCKED,
-                (gctPOINTER)Interface->u.ReleaseVideoMemory.node));
-
-            gcmkERR_BREAK(
-                gckVIDMEM_HANDLE_Lookup(Kernel, processID,
-                (gctUINT32)Interface->u.ReleaseVideoMemory.node, &nodeObject));
-
-            gckVIDMEM_HANDLE_Dereference(Kernel, processID,(gctUINT32)Interface->u.ReleaseVideoMemory.node);
-            gckVIDMEM_NODE_Dereference(Kernel, nodeObject);
-        }
-#endif
         break;
 
     case gcvHAL_LOCK_VIDEO_MEMORY:
@@ -2106,6 +2090,8 @@ gckKERNEL_Dispatch(
         /* Commit a command and context buffer. */
         if (Interface->u.Commit.engine == gcvENGINE_BLT)
         {
+            gctUINT64 *commandBuffers = gcmUINT64_TO_PTR(Interface->u.Commit.commandBuffers);
+
             if (!gckHARDWARE_IsFeatureAvailable(Kernel->hardware, gcvFEATURE_BLT_ENGINE))
             {
                 gcmkONERROR(gcvSTATUS_NOT_SUPPORTED);
@@ -2113,7 +2099,7 @@ gckKERNEL_Dispatch(
 
             gcmkONERROR(gckASYNC_COMMAND_Commit(
                 Kernel->asyncCommand,
-                gcmUINT64_TO_PTR(Interface->u.Commit.commandBuffer),
+                gcmUINT64_TO_PTR(commandBuffers[0]),
                 gcmUINT64_TO_PTR(Interface->u.Commit.queue)
                 ));
 
@@ -2124,16 +2110,72 @@ gckKERNEL_Dispatch(
         }
         else
         {
-            gcmkONERROR(gckCOMMAND_Commit(Kernel->command,
-                Interface->u.Commit.context ?
-                gcmNAME_TO_PTR(Interface->u.Commit.context) : gcvNULL,
-                gcmUINT64_TO_PTR(Interface->u.Commit.commandBuffer),
-                gcmUINT64_TO_PTR(Interface->u.Commit.delta),
+            gctUINT64 deltas[gcvCORE_COUNT];
+            gctUINT64 contexts[gcvCORE_COUNT];
+            gctUINT64 commandBuffers[gcvCORE_COUNT];;
+
+            gcmkONERROR(gckOS_CopyFromUserData(Kernel->os,
+                deltas,
+                gcmUINT64_TO_PTR(Interface->u.Commit.deltas),
+                Interface->u.Commit.count * sizeof(deltas[0])
+                ));
+
+            gcmkONERROR(gckOS_CopyFromUserData(Kernel->os,
+                contexts,
+                gcmUINT64_TO_PTR(Interface->u.Commit.contexts),
+                Interface->u.Commit.count * sizeof(contexts[0])
+                ));
+
+            gcmkONERROR(gckOS_CopyFromUserData(Kernel->os,
+                commandBuffers,
+                gcmUINT64_TO_PTR(Interface->u.Commit.commandBuffers),
+                Interface->u.Commit.count * sizeof(commandBuffers[0])
+                ));
+
+            status = gckCOMMAND_Commit(Kernel->command,
+                contexts[0] ?
+                gcmNAME_TO_PTR(contexts[0]) : gcvNULL,
+                gcmUINT64_TO_PTR(commandBuffers[0]),
+                gcmUINT64_TO_PTR(deltas[0]),
                 gcmUINT64_TO_PTR(Interface->u.Commit.queue),
                 processID,
                 Interface->u.Commit.shared,
                 Interface->u.Commit.index
-                ));
+                );
+
+            if (status != gcvSTATUS_INTERRUPTED)
+            {
+                gcmkONERROR(status);
+            }
+
+            if (Interface->u.Commit.count > 1 && Interface->u.Commit.engine == gcvENGINE_RENDER)
+            {
+                gctUINT32 i;
+
+                for (i = 1; i < Interface->u.Commit.count; i++)
+                {
+                    gceHARDWARE_TYPE type = Interface->hardwareType;
+                    gckKERNEL kernel = Device->map[type].kernels[i];
+
+                    status = gckCOMMAND_Commit(kernel->command,
+                        contexts[i] ?
+                        gcmNAME_TO_PTR(contexts[i]) : gcvNULL,
+                        commandBuffers[i] ?
+                        gcmUINT64_TO_PTR(commandBuffers[i]) : gcmUINT64_TO_PTR(commandBuffers[0]),
+                        gcmUINT64_TO_PTR(deltas[i]),
+                        gcvNULL,
+                        processID,
+                        Interface->u.Commit.shared,
+                        commandBuffers[i] ?
+                        Interface->u.Commit.index : i
+                    );
+
+                    if (status != gcvSTATUS_INTERRUPTED)
+                    {
+                        gcmkONERROR(status);
+                    }
+                }
+            }
         }
 
         break;
@@ -2925,7 +2967,7 @@ gckKERNEL_Dispatch(
             ));
         break;
 
-#if gcdENABLE_DEC_COMPRESSION && gcdDEC_ENABLE_AHB
+#if gcdDEC_ENABLE_AHB
     case gcvHAL_DEC300_READ:
         gcmkONERROR(viv_dec300_read(
             Interface->u.DEC300Read.enable,
@@ -4230,7 +4272,9 @@ gckKERNEL_AllocateVirtualMemory(
             pageCount,
             buffer->gpuAddress,
             buffer->pageTable,
-            gcvFALSE));
+            gcvFALSE,
+            gcvSURF_TYPE_UNKNOWN
+            ));
     }
 
     gcmkONERROR(gckMMU_Flush(mmu, gcvSURF_INDEX));
@@ -5819,7 +5863,7 @@ gckDEVICE_Dispatch(
         else
 #endif
         {
-            status = gckKERNEL_Dispatch(kernel, gcvTRUE, Interface);
+            status = gckKERNEL_Dispatch(kernel, Device, gcvTRUE, Interface);
         }
 
         /* Interface->status is handled in gckKERNEL_Dispatch(). */
@@ -5919,7 +5963,7 @@ gckKERNEL_MapInTrustApplicaiton(
     )
 {
     gceSTATUS status;
-    gctUINT32 * physicalArrayLogical;
+    gctUINT32 * physicalArrayLogical = gcvNULL;
     gctSIZE_T bytes;
     gctPOINTER logical = Logical;
     gctUINT32 i;
@@ -5984,6 +6028,11 @@ gckKERNEL_MapInTrustApplicaiton(
     return gcvSTATUS_OK;
 
 OnError:
+    if(physicalArrayLogical != gcvNULL)
+        gcmkVERIFY_OK(gckOS_Free(
+            Kernel->os,
+            (gctPOINTER)physicalArrayLogical
+            ));
     gcmkFOOTER();
     return status;
 }
index 2c17df1..d528c8d 100644 (file)
@@ -804,6 +804,8 @@ struct _gckCOMMAND
 
     /* For getting state from async command buffer. */
     gckASYNC_COMMAND            asyncCommand;
+
+    gctBOOL                     dummyDraw;
 };
 
 typedef struct _gcsEVENT *      gcsEVENT_PTR;
@@ -1280,6 +1282,8 @@ typedef struct _gcsADDRESS_AREA
     gctBOOL                     freeNodes;
 
     gctUINT32                   dynamicMappingStart;
+    gctUINT32                   dynamicMappingEnd;
+
     gctUINT32_PTR               mapLogical;
 }
 gcsADDRESS_AREA;
index fbd08e6..d64948d 100644 (file)
@@ -101,6 +101,7 @@ _NewQueue(
     gcmkONERROR(gckOS_WaitSignal(
         Command->os,
         Command->queues[newIndex].signal,
+        gcvFALSE,
         gcvINFINITE
         ));
 
@@ -471,20 +472,35 @@ _DummyDraw(
     gctUINT32 bufferSize;
 
     gctUINT32 dummyDrawBytes;
+    gceDUMMY_DRAW_TYPE dummyDrawType = gcvDUMMY_DRAW_INVALID;
 
-    gckHARDWARE_DummyDraw(hardware, gcvNULL, Command->queues[0].address, &dummyDrawBytes);
+    if (gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_FE_NEED_DUMMYDRAW))
+    {
+        dummyDrawType = gcvDUMMY_DRAW_GC400;
+    }
 
-    /* Reserve space. */
-    gcmkONERROR(gckCOMMAND_Reserve(
-        Command,
-        dummyDrawBytes,
-        (gctPOINTER *)&pointer,
-        &bufferSize
-        ));
+    if (!gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_USC_DEFER_FILL_FIX) &&
+        gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_USC))
+    {
+        dummyDrawType = gcvDUMMY_DRAW_V60;
+    }
 
-    gckHARDWARE_DummyDraw(hardware, pointer, Command->queues[0].address, &dummyDrawBytes);
+    if (dummyDrawType != gcvDUMMY_DRAW_INVALID)
+    {
+        gckHARDWARE_DummyDraw(hardware, gcvNULL, Command->queues[0].address, dummyDrawType, &dummyDrawBytes);
 
-    gcmkONERROR(gckCOMMAND_Execute(Command, dummyDrawBytes));
+        /* Reserve space. */
+        gcmkONERROR(gckCOMMAND_Reserve(
+            Command,
+            dummyDrawBytes,
+            (gctPOINTER *)&pointer,
+            &bufferSize
+            ));
+
+        gckHARDWARE_DummyDraw(hardware, pointer, Command->queues[0].address, dummyDrawType, &dummyDrawBytes);
+
+        gcmkONERROR(gckCOMMAND_Execute(Command, dummyDrawBytes));
+    }
 
     return gcvSTATUS_OK;
 OnError:
@@ -891,6 +907,8 @@ gckCOMMAND_Construct(
     /* END event signal not created. */
     command->endEventSignal = gcvNULL;
 
+    command->dummyDraw = gcvTRUE;
+
     /* Return pointer to the gckCOMMAND object. */
     *Command = command;
 
@@ -1701,8 +1719,10 @@ gckCOMMAND_Commit(
         gcmkONERROR(_WaitForAsyncCommandStamp(Command, asyncCommandStamp));
     }
 
-    if (gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_FE_NEED_DUMMYDRAW) && Command->currContext == gcvNULL)
+    if (Command->dummyDraw == gcvTRUE &&
+        Context != gcvNULL)
     {
+        Command->dummyDraw = gcvFALSE;
         gcmkONERROR(_DummyDraw(Command));
     }
 
@@ -2760,7 +2780,7 @@ gckCOMMAND_Stall(
     do
     {
         /* Wait for the signal. */
-        status = gckOS_WaitSignal(os, signal, gcdGPU_ADVANCETIMER);
+        status = gckOS_WaitSignal(os, signal, gcvTRUE, gcdGPU_ADVANCETIMER);
 
         if (status == gcvSTATUS_TIMEOUT)
         {
index c28eee0..03e9cc0 100644 (file)
@@ -3063,7 +3063,7 @@ gckEVENT_Stop(
 #endif
 
     /* Wait for the signal. */
-    gcmkONERROR(gckOS_WaitSignal(Event->os, Signal, gcvINFINITE));
+    gcmkONERROR(gckOS_WaitSignal(Event->os, Signal, gcvFALSE, gcvINFINITE));
 
     /* Success. */
     gcmkFOOTER_NO();
index 9931ce1..784d7f0 100644 (file)
@@ -597,7 +597,8 @@ _FillFlatMapping(
 
     /************************ Setup flat mapping in dynamic range. ****************/
 
-    if (area->dynamicMappingStart != gcvINVALID_ADDRESS && mtlb >= area->dynamicMappingStart)
+    if (area->dynamicMappingStart != gcvINVALID_ADDRESS && mtlb >= area->dynamicMappingStart &&
+       _MtlbOffset(PhysBase + Size - 1) < area->dynamicMappingEnd)
     {
         gctUINT32_PTR stlbEntry;
         gctUINT i;
@@ -956,14 +957,18 @@ _SetupDynamicSpace(
         if (nodeArray[i].entries > numEntries)
         {
             area->dynamicMappingStart = nodeArray[i].start;
-            numEntries               = nodeArray[i].entries;
+            numEntries                = nodeArray[i].entries;
+            area->dynamicMappingEnd   = area->dynamicMappingStart + numEntries;
         }
     }
 
     gckOS_Free(Mmu->os, (gctPOINTER)nodeArray);
 
 #if gcdENABLE_TRUST_APPLICATION
-    secureAreaSize = gcdMMU_SECURE_AREA_SIZE;
+    if (gckHARDWARE_IsFeatureAvailable(Mmu->hardware, gcvFEATURE_SECURITY) == gcvSTATUS_TRUE)
+    {
+        secureAreaSize = gcdMMU_SECURE_AREA_SIZE;
+    }
 #endif
 
     /* Setup secure address area if need. */
@@ -1816,7 +1821,7 @@ _AllocatePages(
     case gcvMMU_SINGLE:
         /* Unlink single node from free list. */
         gcmkONERROR(
-            _Link(area, previous, map[index]) >> 8);
+            _Link(area, previous, map[index] >> 8));
         break;
 
     case gcvMMU_FREE:
@@ -2073,7 +2078,12 @@ gckMMU_AllocatePagesEx(
     OUT gctUINT32 * Address
     )
 {
+#if gcdDISABLE_GPU_VIRTUAL_ADDRESS
+    gcmkPRINT("GPU virtual address is disabled.");
+    return gcvSTATUS_NOT_SUPPORTED;
+#else
     return _AllocatePages(Mmu, PageCount, Type, Secure, PageTable, Address);
+#endif
 }
 
 gceSTATUS
index 37995ad..5df1a13 100644 (file)
@@ -250,6 +250,67 @@ gceSTATUS gckVGKERNEL_Destroy(
     return status;
 }
 
+/*******************************************************************************
+**
+**  gckVGKERNEL_BottomHalfUnlockVideoMemory
+**
+**  Unlock video memory from gpu.
+**
+**  INPUT:
+**
+**      gckKERNEL Kernel
+**          Pointer to an gckKERNEL object.
+**
+**      gctUINT32 ProcessID
+**          Process ID owning this memory.
+**
+**      gctPOINTER Pointer
+**          Video memory to be unlock.
+*/
+gceSTATUS
+gckVGKERNEL_BottomHalfUnlockVideoMemory(
+    IN gckKERNEL Kernel,
+    IN gctUINT32 ProcessID,
+    IN gctUINT32 Node
+    )
+{
+    gceSTATUS status;
+    gckVIDMEM_NODE BottomHalfUnlockVideoMemory = gcvNULL;
+
+    do
+    {
+        /* Remove record from process db. */
+        gcmkVERIFY_OK(gckKERNEL_RemoveProcessDB(
+            Kernel,
+            ProcessID,
+            gcvDB_VIDEO_MEMORY_LOCKED,
+            gcmINT2PTR(Node)));
+
+        gcmkERR_BREAK(gckVIDMEM_HANDLE_Lookup(
+            Kernel,
+            ProcessID,
+            Node,
+            &BottomHalfUnlockVideoMemory));
+
+
+        gckVIDMEM_HANDLE_Dereference(Kernel, ProcessID, Node);
+
+        /* Unlock video memory. */
+        gcmkERR_BREAK(gckVIDMEM_Unlock(
+            Kernel,
+            BottomHalfUnlockVideoMemory,
+            gcvSURF_TYPE_UNKNOWN,
+            gcvNULL));
+
+        gcmkERR_BREAK(gckVIDMEM_NODE_Dereference(
+            Kernel,
+            BottomHalfUnlockVideoMemory));
+    }
+    while (gcvFALSE);
+
+    return gcvSTATUS_OK;
+}
+
 /*******************************************************************************
 **
 **  gckKERNEL_Dispatch
@@ -397,6 +458,11 @@ gceSTATUS gckVGKERNEL_Dispatch(
         gcmkERR_BREAK(gcvSTATUS_NOT_SUPPORTED);
         break;
 
+    case gcvHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY:
+        gcmkERR_BREAK(gckVGKERNEL_BottomHalfUnlockVideoMemory(Kernel, processID,
+                                              kernelInterface->u.BottomHalfUnlockVideoMemory.node));
+    break;
+
     case gcvHAL_MAP_MEMORY:
         /* Map memory. */
         gcmkERR_BREAK(gckKERNEL_MapMemory(
@@ -513,7 +579,7 @@ gceSTATUS gckVGKERNEL_Dispatch(
 
     default:
         /* Invalid command, try gckKERNEL_Dispatch */
-        status = gckKERNEL_Dispatch(Kernel, gcvTRUE, Interface);
+        status = gckKERNEL_Dispatch(Kernel, gcvNULL, gcvTRUE, Interface);
     }
 
 OnError:
index be453ca..9a1b5af 100644 (file)
@@ -1351,6 +1351,11 @@ _NeedVirtualMapping(
 
                 *NeedMapping = (pool == gcvPOOL_VIRTUAL);
             }
+            /* no flat mapping for 4G above address */
+            else if (phys >> 32)
+            {
+                *NeedMapping = gcvTRUE;
+            }
             else
             {
                 gctBOOL flatMapped;
@@ -1724,7 +1729,8 @@ gckVIDMEM_Lock(
                                      node->Virtual.pageCount,
                                      node->Virtual.addresses[Kernel->core],
                                      node->Virtual.pageTables[Kernel->core],
-                                     gcvTRUE));
+                                     gcvTRUE,
+                                     node->Virtual.type));
                 }
 
 #if gcdENABLE_VG
index 7560ff4..47bc3ef 100644 (file)
@@ -53,7 +53,7 @@
 *****************************************************************************/
 
 
-/*Auto created on 2016-03-25 11:12*/
+/*Auto created on 2016-07-06 09:15*/
 #ifndef _gc_feature_database_h_
 #define _gc_feature_database_h_
 
@@ -411,6 +411,7 @@ typedef struct
     gctUINT32 VG_COLOR_PRECISION_8_BIT:1;
     gctUINT32 PE_MSAA_OQ_FIX:1;
     gctUINT32 PSIO_MSAA_CL_FIX:1;
+    gctUINT32 USC_DEFER_FILL_FIX:1;
     gctUINT32 FE_NEED_DUMMYDRAW:1;
     gctUINT32 PE2D_LINEAR_YUV420_OUTPUT:1;
     gctUINT32 PE2D_LINEAR_YUV420_10BIT:1;
@@ -425,14 +426,22 @@ typedef struct
     gctUINT32 SH_GPIPE_ACCESS_FULLTEMPS:1;
     gctUINT32 PSIO_INTERLOCK:1;
     gctUINT32 PA_WIDELINE_FIX:1;
+    gctUINT32 WIDELINE_HELPER_FIX:1;
+    gctUINT32 G2D_3rd_PARTY_COMPRESSION_1_1:1;
+    gctUINT32 TX_FLUSH_L1CACHE:1;
+    gctUINT32 PE_DITHER_FIX2:1;
+    gctUINT32 G2D_DEC400:1;
+    gctUINT32 SH_TEXLD_U_FIX:1;
+    gctUINT32 MC_FCCACHE_BYTEMASK:1;
+    gctUINT32 SH_MULTI_WG_PACK_FIX:1;
 } gcsFEATURE_DATABASE;
 
 static gcsFEATURE_DATABASE gChipInfo[] = {
-    /* gc255_v132x */
+    /* gc200_4650 */
     {
-        0x255, /* ChipID */
-        0x1323, /* ChipRevision */
-        0x3000006, /* ProductID */
+        0x200, /* ChipID */
+        0x4650, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
@@ -457,17 +466,17 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
@@ -478,16 +487,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x1, /* gcFEATURE_BIT_REG_PipeVG */
-        0x1, /* gcFEATURE_BIT_REG_VGTS */
-        0x1, /* gcFEATURE_BIT_REG_FE20 */
-        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -495,63 +504,63 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x0, /* gcFEATURE_BIT_REG_Render8K */
-        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x1, /* gcFEATURE_BIT_REG_VG20 */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x1, /* gcFEATURE_BIT_REG_VG21 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x0, /* gcFEATURE_BIT_REG_PixelDither */
-        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
-        0x0, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x0, /* gcFEATURE_BIT_REG_MMU */
-        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -568,23 +577,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -611,20 +620,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -633,7 +642,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -645,7 +654,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -654,8 +663,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
-        0x1, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -665,7 +674,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -771,22 +780,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
-        0x1, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
-        0x1, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
-        0x1, /* gcFEATURE_BIT_VG_MMU */
-        0x1, /* gcFEATURE_BIT_VG_IM_FILTER */
-        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
-        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
-        0x1, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
-        0x1, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
         0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
         0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
@@ -795,11 +805,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc255_v133x */
+    /* gc255_v132x */
     {
         0x255, /* ChipID */
-        0x1330, /* ChipRevision */
+        0x1323, /* ChipRevision */
         0x3000006, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
@@ -1140,21 +1158,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x1, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
-        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
-        0x0, /* gcFEATURE_BIT_VG_MMU */
-        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
-        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
-        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
-        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
-        0x1, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x1, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x1, /* gcFEATURE_BIT_VG_MMU */
+        0x1, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x1, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
-        0x1, /* gcFEATURE_BIT_VG_TS_CULLING */
-        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x1, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
         0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
         0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
@@ -1163,17 +1182,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc300_4650 */
+    /* gc255_v133x */
     {
-        0x300, /* ChipID */
-        0x4650, /* ChipRevision */
-        0x5203, /* ProductID */
+        0x255, /* ChipID */
+        0x1330, /* ChipRevision */
+        0x3000006, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x5, /* PatchVersion */
-        0x1, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -1182,7 +1209,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -1193,7 +1220,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
@@ -1201,7 +1228,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -1214,16 +1241,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x0, /* gcFEATURE_BIT_REG_PipeVG */
-        0x0, /* gcFEATURE_BIT_REG_VGTS */
-        0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x1, /* gcFEATURE_BIT_REG_PipeVG */
+        0x1, /* gcFEATURE_BIT_REG_VGTS */
+        0x1, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -1231,63 +1258,63 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x1, /* gcFEATURE_BIT_REG_Render8K */
-        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x1, /* gcFEATURE_BIT_REG_PixelDither */
-        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
-        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -1304,23 +1331,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -1347,20 +1374,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -1369,7 +1396,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -1381,7 +1408,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -1390,8 +1417,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
-        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -1507,21 +1534,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
-        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x1, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
         0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
         0x0, /* gcFEATURE_BIT_VG_MMU */
         0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
         0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
-        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x1, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
-        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x1, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
         0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
@@ -1531,17 +1559,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc300_4_6_6_rc0 */
+    /* gc255_2001_reneas */
     {
-        0x300, /* ChipID */
-        0x4660, /* ChipRevision */
-        0x5203, /* ProductID */
+        0x255, /* ChipID */
+        0x2001, /* ChipRevision */
+        0x3000006, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x400, /* CustomerID */
+        0x1, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -1550,7 +1586,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -1561,21 +1597,21 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -1585,13 +1621,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x0, /* gcFEATURE_BIT_REG_PipeVG */
-        0x0, /* gcFEATURE_BIT_REG_VGTS */
-        0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x1, /* gcFEATURE_BIT_REG_PipeVG */
+        0x1, /* gcFEATURE_BIT_REG_VGTS */
+        0x1, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -1599,63 +1635,63 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x1, /* gcFEATURE_BIT_REG_Render8K */
-        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x1, /* gcFEATURE_BIT_REG_PixelDither */
-        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
-        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -1672,23 +1708,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -1715,20 +1751,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -1737,7 +1773,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -1749,7 +1785,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -1758,8 +1794,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
-        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -1769,7 +1805,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -1885,8 +1921,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
@@ -1899,51 +1936,59 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5007 */
+    /* gc255_2001_geosemi */
     {
-        0x320, /* ChipID */
-        0x5007, /* ChipRevision */
-        0x0, /* ProductID */
+        0x255, /* ChipID */
+        0x2001, /* ChipRevision */
+        0x3000006, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x401, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
-        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
-        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
-        0x8, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -1953,13 +1998,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x0, /* gcFEATURE_BIT_REG_PipeVG */
-        0x0, /* gcFEATURE_BIT_REG_VGTS */
-        0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x1, /* gcFEATURE_BIT_REG_PipeVG */
+        0x1, /* gcFEATURE_BIT_REG_VGTS */
+        0x1, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -1967,57 +2012,57 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x1, /* gcFEATURE_BIT_REG_Render8K */
-        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
-        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
-        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x1, /* gcFEATURE_BIT_REG_PixelDither */
-        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
-        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x0, /* gcFEATURE_BIT_REG_MMU */
@@ -2044,7 +2089,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
@@ -2126,7 +2171,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
-        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x1, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
@@ -2137,7 +2182,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -2187,7 +2232,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
         0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
@@ -2253,6 +2298,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -2267,17 +2313,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5220 */
+    /* gc300_4650 */
     {
-        0x320, /* ChipID */
-        0x5220, /* ChipRevision */
-        0x0, /* ProductID */
+        0x300, /* ChipID */
+        0x4650, /* ChipRevision */
+        0x5203, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x5, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -2286,7 +2340,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -2336,7 +2390,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -2355,19 +2409,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -2378,8 +2432,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -2390,7 +2444,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
@@ -2399,32 +2453,32 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -2451,20 +2505,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -2473,7 +2527,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -2485,7 +2539,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -2495,7 +2549,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -2505,7 +2559,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -2565,7 +2619,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -2621,6 +2675,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -2635,17 +2690,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5303 */
+    /* gc300_4650_guoke */
     {
-        0x320, /* ChipID */
-        0x5303, /* ChipRevision */
+        0x300, /* ChipID */
+        0x4650, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x4, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -2654,7 +2717,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -2704,7 +2767,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -2723,19 +2786,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -2746,8 +2809,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -2758,7 +2821,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
@@ -2767,7 +2830,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -2777,13 +2840,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
@@ -2794,7 +2857,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -2819,20 +2882,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -2841,7 +2904,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -2853,7 +2916,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -2863,7 +2926,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -2873,7 +2936,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -2933,7 +2996,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -2989,6 +3052,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -3003,17 +3067,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5303_1 */
+    /* gc300_4_6_6_rc0 */
     {
-        0x320, /* ChipID */
-        0x5303, /* ChipRevision */
-        0x5202, /* ProductID */
-        0x1, /* EcoID */
+        0x300, /* ChipID */
+        0x4660, /* ChipRevision */
+        0x5203, /* ProductID */
+        0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x4, /* PatchVersion */
-        0x1, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -3022,7 +3094,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -3072,7 +3144,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -3091,19 +3163,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -3114,8 +3186,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -3126,7 +3198,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
@@ -3135,7 +3207,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -3145,13 +3217,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
@@ -3162,7 +3234,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -3187,20 +3259,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -3209,7 +3281,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -3221,7 +3293,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
@@ -3231,7 +3303,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -3241,7 +3313,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -3301,7 +3373,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -3357,8 +3429,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
@@ -3371,33 +3444,41 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5340 */
+    /* gc320_5007 */
     {
         0x320, /* ChipID */
-        0x5340, /* ChipRevision */
+        0x5007, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x4, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x1, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
-        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x1, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
-        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x8, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
@@ -3459,9 +3540,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -3484,18 +3565,18 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x1, /* gcFEATURE_BIT_REG_New2D */
         0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -3503,7 +3584,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -3512,25 +3593,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
-        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -3556,7 +3637,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
@@ -3586,7 +3667,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
-        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
@@ -3659,7 +3740,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
         0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
@@ -3669,7 +3750,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -3725,6 +3806,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -3739,16 +3821,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320c_5341 */
+    /* gc320_5220 */
     {
         0x320, /* ChipID */
-        0x5341, /* ChipRevision */
+        0x5220, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x1, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -3760,7 +3850,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x100, /* gcFEATURE_VALUE_InstructionCount */
         0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xc, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -3768,25 +3858,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
-        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
@@ -3822,14 +3912,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
-        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
-        0x1, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -3837,7 +3927,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
-        0x1, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
@@ -3846,56 +3936,56 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x1, /* gcFEATURE_BIT_REG_New2D */
         0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x1, /* gcFEATURE_BIT_REG_LineLoop */
-        0x1, /* gcFEATURE_BIT_REG_LogicOp */
-        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x1, /* gcFEATURE_BIT_REG_EndEvent */
-        0x1, /* gcFEATURE_BIT_REG_S1S8 */
-        0x1, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
         0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
@@ -4002,14 +4092,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
-        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
-        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x1, /* gcFEATURE_BIT_V4Compression */
-        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x0, /* gcFEATURE_BIT_NEW_GPIPE */
@@ -4093,6 +4183,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -4107,16 +4198,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc320_5341 */
+    /* gc320_5303 */
     {
         0x320, /* ChipID */
-        0x5341, /* ChipRevision */
-        0x3202, /* ProductID */
+        0x5303, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x1, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -4253,7 +4352,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x1, /* gcFEATURE_BIT_REG_YUVConversion */
         0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
@@ -4335,7 +4434,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -4345,7 +4444,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -4461,6 +4560,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -4475,16 +4575,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc355_v121_rc5 */
+    /* gc320_5303_1 */
     {
-        0x355, /* ChipID */
-        0x1215, /* ChipRevision */
-        0x0, /* ProductID */
-        0x0, /* EcoID */
+        0x320, /* ChipID */
+        0x5303, /* ChipRevision */
+        0x5202, /* ProductID */
+        0x1, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x4, /* PatchVersion */
+        0x1, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -4505,7 +4613,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
@@ -4513,7 +4621,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -4529,13 +4637,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x1, /* gcFEATURE_BIT_REG_PipeVG */
-        0x1, /* gcFEATURE_BIT_REG_VGTS */
-        0x1, /* gcFEATURE_BIT_REG_FE20 */
-        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -4543,63 +4651,63 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x0, /* gcFEATURE_BIT_REG_Render8K */
-        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x1, /* gcFEATURE_BIT_REG_VG20 */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x1, /* gcFEATURE_BIT_REG_VG21 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
-        0x1, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x0, /* gcFEATURE_BIT_REG_PixelDither */
-        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
-        0x0, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -4607,7 +4715,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -4616,25 +4724,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -4660,7 +4768,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
@@ -4713,7 +4821,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -4773,7 +4881,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -4829,6 +4937,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -4843,16 +4952,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc355_v121x */
+    /* gc320_5340 */
     {
-        0x355, /* ChipID */
-        0x1217, /* ChipRevision */
-        0x3003550, /* ProductID */
+        0x320, /* ChipID */
+        0x5340, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x4, /* PatchVersion */
+        0x1, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -4873,7 +4990,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
@@ -4881,7 +4998,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -4897,13 +5014,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x1, /* gcFEATURE_BIT_REG_PipeVG */
-        0x1, /* gcFEATURE_BIT_REG_VGTS */
-        0x1, /* gcFEATURE_BIT_REG_FE20 */
-        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -4911,63 +5028,63 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x0, /* gcFEATURE_BIT_REG_Render8K */
-        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x1, /* gcFEATURE_BIT_REG_VG20 */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x1, /* gcFEATURE_BIT_REG_VG21 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
-        0x1, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x0, /* gcFEATURE_BIT_REG_PixelDither */
-        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
-        0x0, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -4975,7 +5092,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -4984,25 +5101,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -5028,7 +5145,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
@@ -5058,7 +5175,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
-        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x1, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
@@ -5141,7 +5258,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -5174,9 +5291,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
         0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
-        0x1, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
-        0x1, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
-        0x1, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
@@ -5189,14 +5306,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
         0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
-        0x1, /* gcFEATURE_BIT_VG_MMU */
-        0x1, /* gcFEATURE_BIT_VG_IM_FILTER */
-        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
-        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
-        0x1, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -5211,28 +5329,36 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc400_4633 */
+    /* gc320c_5341 */
     {
-        0x400, /* ChipID */
-        0x4633, /* ChipRevision */
+        0x320, /* ChipID */
+        0x5341, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x1, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
-        0x20, /* gcFEATURE_VALUE_TempRegisters */
-        0x40, /* gcFEATURE_VALUE_ThreadCount */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
         0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xc, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -5240,37 +5366,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
-        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -5280,7 +5406,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -5292,82 +5418,82 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
-        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
-        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x1, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
-        0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x0, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
-        0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
-        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_LogicOp */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
-        0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_S1S8 */
+        0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x0, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
@@ -5474,14 +5600,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x1, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
-        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
-        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x0, /* gcFEATURE_BIT_V4Compression */
-        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x1, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x0, /* gcFEATURE_BIT_NEW_GPIPE */
@@ -5509,7 +5635,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -5565,6 +5691,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -5579,26 +5706,34 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc400_4645 */
+    /* gc320_5341 */
     {
-        0x400, /* ChipID */
-        0x4645, /* ChipRevision */
-        0x0, /* ProductID */
+        0x320, /* ChipID */
+        0x5341, /* ChipRevision */
+        0x3202, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x4, /* PatchVersion */
-        0x1, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
-        0x20, /* gcFEATURE_VALUE_TempRegisters */
-        0x40, /* gcFEATURE_VALUE_ThreadCount */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -5608,37 +5743,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
-        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -5648,7 +5783,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -5660,26 +5795,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -5690,8 +5825,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -5700,9 +5835,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
@@ -5711,7 +5846,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -5721,16 +5856,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
@@ -5738,7 +5873,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -5763,13 +5898,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
@@ -5807,7 +5942,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -5817,7 +5952,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -5877,7 +6012,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -5933,7 +6068,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
-        0x1, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
@@ -5947,26 +6083,34 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc400L_0x465x */
+    /* gc355_v121_rc5 */
     {
-        0x400, /* ChipID */
-        0x4652, /* ChipRevision */
-        0x70001, /* ProductID */
+        0x355, /* ChipID */
+        0x1215, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x7, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
-        0x20, /* gcFEATURE_VALUE_TempRegisters */
-        0x40, /* gcFEATURE_VALUE_ThreadCount */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -5978,36 +6122,36 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
-        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
-        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
-        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x0, /* gcFEATURE_BIT_REG_PipeVG */
-        0x0, /* gcFEATURE_BIT_REG_VGTS */
-        0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x1, /* gcFEATURE_BIT_REG_PipeVG */
+        0x1, /* gcFEATURE_BIT_REG_VGTS */
+        0x1, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
         0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
@@ -6015,68 +6159,68 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x1, /* gcFEATURE_BIT_REG_Render8K */
-        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
-        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
-        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x1, /* gcFEATURE_BIT_REG_PixelDither */
-        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
@@ -6088,23 +6232,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -6131,20 +6275,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -6153,7 +6297,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -6185,7 +6329,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -6301,6 +6445,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -6315,16 +6460,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc420_5325 */
+    /* gc355_v121x */
     {
-        0x420, /* ChipID */
-        0x5325, /* ChipRevision */
-        0x0, /* ProductID */
+        0x355, /* ChipID */
+        0x1217, /* ChipRevision */
+        0x3003550, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x2, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -6344,16 +6497,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -6369,77 +6522,77 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
-        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
-        0x0, /* gcFEATURE_BIT_REG_PipeVG */
-        0x0, /* gcFEATURE_BIT_REG_VGTS */
-        0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x1, /* gcFEATURE_BIT_REG_PipeVG */
+        0x1, /* gcFEATURE_BIT_REG_VGTS */
+        0x1, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
-        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_2DPE20 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x1, /* gcFEATURE_BIT_REG_Render8K */
-        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
-        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
-        0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
-        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
-        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x1, /* gcFEATURE_BIT_REG_PixelDither */
-        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
-        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x0, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -6447,7 +6600,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -6456,60 +6609,60 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
-        0x1, /* gcFEATURE_BIT_REG_WClip */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
@@ -6519,7 +6672,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
@@ -6613,7 +6766,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -6646,9 +6799,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
         0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
-        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
-        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
-        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x1, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x1, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x1, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
@@ -6661,14 +6814,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
         0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
-        0x0, /* gcFEATURE_BIT_VG_MMU */
-        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
-        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
-        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
-        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x1, /* gcFEATURE_BIT_VG_MMU */
+        0x1, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x1, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x1, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -6683,23 +6837,31 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc420_5336 */
+    /* gc400_4633 */
     {
-        0x420, /* ChipID */
-        0x5336, /* ChipRevision */
+        0x400, /* ChipID */
+        0x4633, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x3, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
-        0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x20, /* gcFEATURE_VALUE_TempRegisters */
+        0x40, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
         0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
@@ -6712,47 +6874,47 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
-        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -6764,26 +6926,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -6794,8 +6956,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -6804,10 +6966,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -6815,7 +6977,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -6824,60 +6986,60 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
-        0x1, /* gcFEATURE_BIT_REG_WClip */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
@@ -6887,7 +7049,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
@@ -6898,7 +7060,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
-        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
@@ -6906,8 +7068,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
-        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
-        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
@@ -6981,7 +7143,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -7037,6 +7199,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -7051,26 +7214,34 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc420cpd_533rc7a */
+    /* gc400_4645 */
     {
-        0x420, /* ChipID */
-        0x5337, /* ChipRevision */
+        0x400, /* ChipID */
+        0x4645, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x1, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
-        0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x4, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x20, /* gcFEATURE_VALUE_TempRegisters */
+        0x40, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -7081,8 +7252,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
@@ -7091,36 +7262,36 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -7132,26 +7303,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -7162,8 +7333,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -7172,9 +7343,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
@@ -7183,7 +7354,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -7193,16 +7364,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
@@ -7210,33 +7381,33 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
-        0x1, /* gcFEATURE_BIT_REG_WClip */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
@@ -7245,7 +7416,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
@@ -7255,18 +7426,18 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
-        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
-        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
@@ -7274,8 +7445,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
-        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
-        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
@@ -7349,7 +7520,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -7405,7 +7576,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
-        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x1, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
@@ -7419,26 +7591,34 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc428_5421 */
+    /* gc400L_0x465x */
     {
-        0x428, /* ChipID */
-        0x5421, /* ChipRevision */
-        0x0, /* ProductID */
+        0x400, /* ChipID */
+        0x4652, /* ChipRevision */
+        0x70001, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x1, /* PatchVersion */
-        0x1, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
-        0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x7, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x20, /* gcFEATURE_VALUE_TempRegisters */
+        0x40, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -7448,107 +7628,5008 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x0, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x1, /* gcFEATURE_BIT_REG_NoEZ */
-        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
-        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
         0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
-        0x0, /* gcFEATURE_BIT_REG_FlipY */
-        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
-        0x0, /* gcFEATURE_BIT_REG_Texture8K */
-        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
-        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
-        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x0, /* gcFEATURE_BIT_REG_Render8K */
-        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
         0x0, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
-        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc7000nano_0x4652 */
+    {
+        0x400, /* ChipID */
+        0x4652, /* ChipRevision */
+        0x70001, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x7, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x20, /* gcFEATURE_VALUE_TempRegisters */
+        0x40, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc7000nano_0x4652 */
+    {
+        0x400, /* ChipID */
+        0x4652, /* ChipRevision */
+        0x70001, /* ProductID */
+        0x0, /* EcoID */
+        0x100, /* CustomerID */
+        0x9, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x20, /* gcFEATURE_VALUE_TempRegisters */
+        0x40, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x80, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc420_5325 */
+    {
+        0x420, /* ChipID */
+        0x5325, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x2, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x1, /* gcFEATURE_BIT_REG_WClip */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc420_5336 */
+    {
+        0x420, /* ChipID */
+        0x5336, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x3, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x1, /* gcFEATURE_BIT_REG_WClip */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc420cpd_533rc7a */
+    {
+        0x420, /* ChipID */
+        0x5337, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x1, /* gcFEATURE_BIT_REG_WClip */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc428_5421 */
+    {
+        0x428, /* ChipID */
+        0x5421, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FlipY */
+        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_Texture8K */
+        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc428c_5_4_2_rc3a */
+    {
+        0x428, /* ChipID */
+        0x5423, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FlipY */
+        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_Texture8K */
+        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x1, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc520_5341 */
+    {
+        0x520, /* ChipID */
+        0x5341, /* ChipRevision */
+        0x0, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc520l_5_3_4_rc2b */
+    {
+        0x520, /* ChipID */
+        0x5342, /* ChipRevision */
+        0x5202, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x2, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x1, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc520c_5_5_0 */
+    {
+        0x520, /* ChipID */
+        0x5501, /* ChipRevision */
+        0x5200, /* ProductID */
+        0x0, /* EcoID */
+        0x3, /* CustomerID */
+        0x2, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FlipY */
+        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_Texture8K */
+        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x1, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x1, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x1, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x1, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x1, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc520sp_5_5_2_rc0a */
+    {
+        0x520, /* ChipID */
+        0x5520, /* ChipRevision */
+        0x5200, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FlipY */
+        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_Texture8K */
+        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x1, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x1, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x1, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc520_5_5_3_rc2a */
+    {
+        0x520, /* ChipID */
+        0x5532, /* ChipRevision */
+        0x5200, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x1, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x1, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x0, /* gcFEATURE_BIT_REG_FlipY */
+        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_Texture8K */
+        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_Render8K */
+        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x0, /* gcFEATURE_BIT_REG_L2Windowing */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_PixelDither */
+        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_TXFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_OclOnly */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_FastMSAA */
+        0x0, /* gcFEATURE_BIT_REG_WClip */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DENoGamma */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
+        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_Compression2D */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
+        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x1, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x1, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
+        0x1, /* gcFEATURE_BIT_REG_DEC */
+        0x1, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
+        0x0, /* gcFEATURE_BIT_RenderTarget8 */
+        0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
+        0x0, /* gcFEATURE_BIT_FaceLod */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
+        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_DXT */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
+        0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
+        0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
+        0x0, /* gcFEATURE_BIT_VG_MMU */
+        0x0, /* gcFEATURE_BIT_VG_IM_FILTER */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
+        0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
+        0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
+        0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
+        0x0, /* gcFEATURE_BIT_VG_FP25 */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
+    },
+    /* gc600L_0x465x */
+    {
+        0x600, /* ChipID */
+        0x4652, /* ChipRevision */
+        0x70005, /* ProductID */
+        0x0, /* EcoID */
+        0x0, /* CustomerID */
+        0x7, /* PatchVersion */
+        0x0, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x0, /* gcFEATURE_VALUE_BufferSize */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DebugMode */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x0, /* gcFEATURE_BIT_REG_DC */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_ModuleCG */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
+        0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
+        0x0, /* gcFEATURE_BIT_REG_PipeVG */
+        0x0, /* gcFEATURE_BIT_REG_VGTS */
+        0x0, /* gcFEATURE_BIT_REG_FE20 */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_2DPE20 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x0, /* gcFEATURE_BIT_REG_VG20 */
+        0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x0, /* gcFEATURE_BIT_REG_VGFilter */
+        0x0, /* gcFEATURE_BIT_REG_VG21 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
+        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_NewTexture */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x0, /* gcFEATURE_BIT_REG_PixelDither */
-        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x0, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
@@ -7561,24 +12642,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -7593,44 +12674,44 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
-        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
@@ -7657,7 +12738,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -7717,7 +12798,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -7773,6 +12854,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -7787,17 +12869,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc520_5341 */
+    /* gc7000nanoultra_4_6_5_rc3a */
     {
-        0x520, /* ChipID */
-        0x5341, /* ChipRevision */
-        0x0, /* ProductID */
+        0x600, /* ChipID */
+        0x4653, /* ChipRevision */
+        0x70005, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x1, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -7806,7 +12896,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -7816,37 +12906,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -7856,7 +12946,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -7868,26 +12958,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -7898,8 +12988,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -7910,16 +13000,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -7929,16 +13019,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
@@ -7946,7 +13036,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -7971,20 +13061,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -7993,7 +13083,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -8015,7 +13105,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
@@ -8085,7 +13175,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -8141,6 +13231,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -8155,17 +13246,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc520l_5_3_4_rc2b */
+    /* gc7000nanoultra_4_6_5_rc3b */
     {
-        0x520, /* ChipID */
-        0x5342, /* ChipRevision */
-        0x5202, /* ProductID */
+        0x600, /* ChipID */
+        0x4653, /* ChipRevision */
+        0x70005, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x101, /* CustomerID */
         0x2, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -8174,7 +13273,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
@@ -8184,37 +13283,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x0, /* gcFEATURE_BIT_REG_FastClear */
-        0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
-        0x1, /* gcFEATURE_BIT_REG_BufferInterleaving */
+        0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
-        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -8224,7 +13323,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -8236,26 +13335,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x0, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
@@ -8266,8 +13365,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
@@ -8278,16 +13377,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
@@ -8297,16 +13396,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
@@ -8314,7 +13413,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -8339,20 +13438,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -8361,7 +13460,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -8418,14 +13517,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
-        0x1, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
+        0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x1, /* gcFEATURE_BIT_V4Compression */
-        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x0, /* gcFEATURE_BIT_NEW_GPIPE */
@@ -8453,7 +13552,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -8509,6 +13608,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -8523,15 +13623,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc520c_5_5_0 */
+    /* gc620_5_5_3_rc0 */
     {
-        0x520, /* ChipID */
-        0x5501, /* ChipRevision */
-        0x5200, /* ProductID */
+        0x620, /* ChipID */
+        0x5530, /* ChipRevision */
+        0x6200, /* ProductID */
         0x0, /* EcoID */
-        0x3, /* CustomerID */
-        0x2, /* PatchVersion */
+        0x200, /* CustomerID */
+        0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -8552,7 +13660,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
@@ -8572,7 +13680,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
-        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
@@ -8669,14 +13777,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x1, /* gcFEATURE_BIT_REG_YUVConversion */
         0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x0, /* gcFEATURE_BIT_REG_MixedStreams */
         0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
-        0x1, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
@@ -8703,7 +13811,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
@@ -8735,7 +13843,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
-        0x1, /* gcFEATURE_BIT_REG_CSCV2 */
+        0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
@@ -8760,7 +13868,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
-        0x1, /* gcFEATURE_BIT_REG_AndroidOnly */
+        0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
         0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
@@ -8786,14 +13894,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
         0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x1, /* gcFEATURE_BIT_V4Compression */
-        0x1, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x0, /* gcFEATURE_BIT_NEW_GPIPE */
@@ -8821,7 +13929,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -8865,7 +13973,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
-        0x1, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
+        0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
         0x0, /* gcFEATURE_BIT_VG_RECTANGLE_STRIPE_MODE */
@@ -8877,9 +13985,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
@@ -8891,16 +14000,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x1, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc520sp_5_5_2_rc0a */
+    /* gc620_5_5_5_rc0d */
     {
-        0x520, /* ChipID */
-        0x5520, /* ChipRevision */
-        0x5200, /* ProductID */
+        0x620, /* ChipID */
+        0x5550, /* ChipRevision */
+        0x6200, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
-        0x1, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x201, /* CustomerID */
+        0x4, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -9138,7 +14255,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
         0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
         0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
-        0x1, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x0, /* gcFEATURE_BIT_REG_RSS8 */
         0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
@@ -9189,7 +14306,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -9245,9 +14362,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
@@ -9259,14 +14377,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x1, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc520_5_5_3_rc2a */
+    /* gc620tpc_5_5_6_rc0a */
     {
-        0x520, /* ChipID */
-        0x5532, /* ChipRevision */
-        0x5200, /* ProductID */
+        0x620, /* ChipID */
+        0x5560, /* ChipRevision */
+        0x6200, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x200, /* CustomerID */
         0x1, /* PatchVersion */
         0x0, /* FormalRelease */
         0x1, /* gcFEATURE_VALUE_Streams */
@@ -9288,7 +14414,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x1, /* gcFEATURE_BIT_REG_FastClear */
+        0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
         0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
@@ -9308,7 +14434,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
-        0x0, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_NoScaler */
         0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
@@ -9412,7 +14538,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MixedStreams */
         0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
-        0x1, /* gcFEATURE_BIT_REG_NoIndexPattern */
+        0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
@@ -9439,7 +14565,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
@@ -9514,8 +14640,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
-        0x1, /* gcFEATURE_BIT_REG_DEC */
-        0x1, /* gcFEATURE_BIT_REG_VSTileNV12 */
+        0x0, /* gcFEATURE_BIT_REG_DEC */
+        0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12_10BIT */
         0x0, /* gcFEATURE_BIT_RenderTarget8 */
         0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
@@ -9557,7 +14683,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -9613,9 +14739,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
-        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
@@ -9627,15 +14754,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x1, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc600L_0x465x */
+    /* gc860L_0x464x */
     {
-        0x600, /* ChipID */
-        0x4652, /* ChipRevision */
-        0x70005, /* ProductID */
+        0x860, /* ChipID */
+        0x4647, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x7, /* PatchVersion */
+        0x4, /* PatchVersion */
         0x0, /* FormalRelease */
         0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -9656,37 +14791,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
         0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x0, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -9708,9 +14843,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
-        0x0, /* gcFEATURE_BIT_REG_MC20 */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
@@ -9756,7 +14891,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
@@ -9771,7 +14906,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
@@ -9824,7 +14959,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -9865,7 +15000,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -9981,6 +15116,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -9995,17 +15131,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000nanoultra_4_6_5_rc3a */
+    /* gc880_5106 */
     {
-        0x600, /* ChipID */
-        0x4653, /* ChipRevision */
-        0x70005, /* ProductID */
+        0x880, /* ChipID */
+        0x5106, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x1, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x0, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -10013,10 +15157,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xb, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -10039,22 +15183,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
         0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
-        0x1, /* gcFEATURE_BIT_REG_HalfPECache */
-        0x1, /* gcFEATURE_BIT_REG_HalfTXCache */
+        0x0, /* gcFEATURE_BIT_REG_HalfPECache */
+        0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
         0x0, /* gcFEATURE_BIT_REG_Mem32BitSupport */
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
@@ -10064,7 +15208,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -10076,16 +15220,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
         0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
-        0x0, /* gcFEATURE_BIT_REG_MC20 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_MC20 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -10094,49 +15238,49 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
@@ -10147,12 +15291,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -10179,20 +15323,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
@@ -10201,7 +15345,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -10233,7 +15377,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -10293,7 +15437,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -10349,6 +15493,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -10363,17 +15508,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc620_5_5_3_rc0 */
+    /* gc880_5122 */
     {
-        0x620, /* ChipID */
-        0x5530, /* ChipRevision */
-        0x6200, /* ProductID */
+        0x880, /* ChipID */
+        0x5122, /* ChipRevision */
+        0x70007, /* ProductID */
         0x0, /* EcoID */
-        0x200, /* CustomerID */
+        0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x1, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -10381,10 +15534,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xc, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -10392,28 +15545,28 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
-        0x0, /* gcFEATURE_BIT_REG_FastClear */
+        0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
-        0x0, /* gcFEATURE_BIT_REG_Pipe3D */
-        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_Pipe3D */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
-        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
-        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Tiler */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
-        0x1, /* gcFEATURE_BIT_REG_No422Texture */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
-        0x0, /* gcFEATURE_BIT_REG_NoScaler */
-        0x0, /* gcFEATURE_BIT_REG_YUY2Averaging */
+        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
         0x0, /* gcFEATURE_BIT_REG_YUY2RenderTarget */
@@ -10421,108 +15574,108 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PipeVG */
         0x0, /* gcFEATURE_BIT_REG_VGTS */
         0x0, /* gcFEATURE_BIT_REG_FE20 */
-        0x0, /* gcFEATURE_BIT_REG_ByteWrite3D */
-        0x0, /* gcFEATURE_BIT_REG_RsYuvTarget */
-        0x0, /* gcFEATURE_BIT_REG_FE20BitIndex */
-        0x0, /* gcFEATURE_BIT_REG_FlipY */
-        0x0, /* gcFEATURE_BIT_REG_DualReturnBus */
+        0x1, /* gcFEATURE_BIT_REG_ByteWrite3D */
+        0x1, /* gcFEATURE_BIT_REG_RsYuvTarget */
+        0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
+        0x1, /* gcFEATURE_BIT_REG_FlipY */
+        0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
         0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
-        0x0, /* gcFEATURE_BIT_REG_Texture8K */
-        0x0, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
-        0x0, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
-        0x0, /* gcFEATURE_BIT_REG_FastClearFlush */
+        0x1, /* gcFEATURE_BIT_REG_Texture8K */
+        0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
+        0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
+        0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
-        0x0, /* gcFEATURE_BIT_REG_Render8K */
-        0x0, /* gcFEATURE_BIT_REG_TileStatus2Bits */
-        0x0, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
+        0x1, /* gcFEATURE_BIT_REG_Render8K */
+        0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
+        0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiled32x32 */
         0x0, /* gcFEATURE_BIT_REG_VG20 */
         0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
-        0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+        0x1, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
         0x0, /* gcFEATURE_BIT_REG_VGFilter */
         0x0, /* gcFEATURE_BIT_REG_VG21 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderGetsW */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderGetsW */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x1, /* gcFEATURE_BIT_REG_MC20 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes0 */
+        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
-        0x0, /* gcFEATURE_BIT_REG_CorrectStencil */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
-        0x0, /* gcFEATURE_BIT_REG_RSUVSwizzle */
+        0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes1 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes4 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
-        0x0, /* gcFEATURE_BIT_REG_PixelDither */
-        0x0, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_PixelDither */
+        0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes5 */
-        0x1, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
-        0x0, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
+        0x0, /* gcFEATURE_BIT_REG_New2D */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
-        0x0, /* gcFEATURE_BIT_REG_NegativeLogFix */
-        0x0, /* gcFEATURE_BIT_REG_ResolveOffset */
+        0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
+        0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
-        0x0, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_WideLine */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -10537,8 +15690,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
@@ -10557,37 +15710,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
-        0x1, /* gcFEATURE_BIT_REG_DualPipeOPF */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2 */
+        0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
-        0x1, /* gcFEATURE_BIT_REG_DESupertile */
+        0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
-        0x1, /* gcFEATURE_BIT_REG_DEAddress40 */
-        0x1, /* gcFEATURE_BIT_REG_MiniMMUFix */
+        0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
+        0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
@@ -10596,8 +15749,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
-        0x1, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
-        0x1, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
+        0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
+        0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
@@ -10610,7 +15763,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
         0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
         0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
-        0x1, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
+        0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x0, /* gcFEATURE_BIT_REG_RSS8 */
         0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
@@ -10717,9 +15870,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
-        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
-        0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
+        0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
@@ -10731,17 +15885,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc860L_0x464x */
+    /* gc880TM_0x512x */
     {
-        0x860, /* ChipID */
-        0x4647, /* ChipRevision */
-        0x0, /* ProductID */
+        0x880, /* ChipID */
+        0x5124, /* ChipRevision */
+        0x70007, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x4, /* PatchVersion */
+        0x2, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -10749,10 +15911,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xc, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -10763,19 +15925,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
-        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
-        0x0, /* gcFEATURE_BIT_REG_MSAA */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x0, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -10794,13 +15956,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
         0x1, /* gcFEATURE_BIT_REG_FastClearFlush */
         0x1, /* gcFEATURE_BIT_REG_2DPE20 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable */
         0x1, /* gcFEATURE_BIT_REG_Render8K */
         0x1, /* gcFEATURE_BIT_REG_TileStatus2Bits */
         0x1, /* gcFEATURE_BIT_REG_SeparateTileStatusWhenInterleaved */
@@ -10815,64 +15977,64 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x1, /* gcFEATURE_BIT_REG_MC20 */
-        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
         0x0, /* gcFEATURE_BIT_REG_TextureStride */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes3 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
@@ -10887,7 +16049,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
@@ -10915,13 +16077,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
@@ -10937,7 +16099,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_Halti2 */
-        0x1, /* gcFEATURE_BIT_REG_DEMirrorRotate */
+        0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
         0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
@@ -10969,7 +16131,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -11029,7 +16191,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -11085,6 +16247,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -11099,18 +16262,26 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc880_5106 */
+    /* gc900_5250 */
     {
-        0x880, /* ChipID */
-        0x5106, /* ChipRevision */
+        0x900, /* ChipID */
+        0x5250, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x0, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
-        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x200, /* gcFEATURE_VALUE_TempRegisters */
         0x100, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x1, /* gcFEATURE_VALUE_NumShaderCores */
@@ -11118,11 +16289,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
-        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xb, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x2, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -11139,8 +16310,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
@@ -11162,7 +16333,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -11183,11 +16354,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x1, /* gcFEATURE_BIT_REG_MC20 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
@@ -11203,7 +16374,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
@@ -11220,77 +16391,77 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
-        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_LogicOp */
         0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
@@ -11299,7 +16470,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
@@ -11313,7 +16484,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
@@ -11324,11 +16495,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x1, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -11453,6 +16624,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -11467,28 +16639,36 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc880_5122 */
+    /* gc1000_5036 */
     {
-        0x880, /* ChipID */
-        0x5122, /* ChipRevision */
-        0x70007, /* ProductID */
+        0x1000, /* ChipID */
+        0x5036, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
         0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xc, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -11502,12 +16682,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
@@ -11516,7 +16696,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
-        0x1, /* gcFEATURE_BIT_REG_NoScaler */
+        0x0, /* gcFEATURE_BIT_REG_NoScaler */
         0x1, /* gcFEATURE_BIT_REG_YUY2Averaging */
         0x0, /* gcFEATURE_BIT_REG_HalfPECache */
         0x0, /* gcFEATURE_BIT_REG_HalfTXCache */
@@ -11530,7 +16710,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -11551,13 +16731,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x1, /* gcFEATURE_BIT_REG_MC20 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -11574,41 +16754,41 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x1, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
@@ -11623,15 +16803,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
@@ -11640,7 +16820,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
@@ -11649,9 +16829,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
-        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x1, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
@@ -11705,7 +16885,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -11765,7 +16945,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -11821,6 +17001,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -11835,28 +17016,36 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc880TM_0x512x */
+    /* gc1000_5037 */
     {
-        0x880, /* ChipID */
-        0x5124, /* ChipRevision */
-        0x70007, /* ProductID */
+        0x1000, /* ChipID */
+        0x5037, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x2, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x0, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
         0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xc, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -11867,7 +17056,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
-        0x0, /* gcFEATURE_BIT_REG_DXTTextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
         0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
@@ -11875,11 +17064,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
-        0x0, /* gcFEATURE_BIT_REG_FastScaler */
+        0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -11898,7 +17087,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -11919,15 +17108,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions1 */
         0x1, /* gcFEATURE_BIT_REG_DefaultReg0 */
         0x1, /* gcFEATURE_BIT_REG_MC20 */
-        0x1, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
+        0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
-        0x0, /* gcFEATURE_BIT_REG_EnhanceVR */
+        0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
         0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
@@ -11942,44 +17131,44 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x1, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
@@ -11991,15 +17180,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
@@ -12008,7 +17197,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
@@ -12017,9 +17206,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
-        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x1, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
@@ -12073,7 +17262,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -12133,7 +17322,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -12189,6 +17378,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -12203,30 +17393,38 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc900_5250 */
+    /* gc1000_5037_1 */
     {
-        0x900, /* ChipID */
-        0x5250, /* ChipRevision */
+        0x1000, /* ChipID */
+        0x5037, /* ChipRevision */
         0x0, /* ProductID */
-        0x0, /* EcoID */
+        0x1, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
-        0x200, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x1, /* FormalRelease */
+        0x4, /* gcFEATURE_VALUE_Streams */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x8, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x1, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x200, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x2, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -12244,7 +17442,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
@@ -12266,7 +17464,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -12291,9 +17489,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -12307,51 +17505,51 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x1, /* gcFEATURE_BIT_REG_LineLoop */
-        0x1, /* gcFEATURE_BIT_REG_LogicOp */
-        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_LineLoop */
+        0x0, /* gcFEATURE_BIT_REG_LogicOp */
+        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x1, /* gcFEATURE_BIT_REG_EndEvent */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x1, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
@@ -12363,38 +17561,38 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
-        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x1, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
@@ -12403,7 +17601,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
@@ -12417,7 +17615,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
@@ -12428,11 +17626,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x1, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -12501,7 +17699,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -12557,6 +17755,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -12571,15 +17770,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc1000_5036 */
+    /* gc1000_5039 */
     {
         0x1000, /* ChipID */
-        0x5036, /* ChipRevision */
+        0x5039, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x11, /* PatchVersion */
         0x1, /* FormalRelease */
         0x4, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -12606,10 +17813,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -12685,8 +17892,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_New2D */
         0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
@@ -12700,7 +17907,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
@@ -12925,6 +18132,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -12939,30 +18147,38 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc1000_5037 */
+    /* gc1500_5246 */
     {
-        0x1000, /* ChipID */
-        0x5037, /* ChipRevision */
-        0x0, /* ProductID */
+        0x1500, /* ChipID */
+        0x5246, /* ChipRevision */
+        0x70003, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x6, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x200, /* gcFEATURE_VALUE_ThreadCount */
-        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
         0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x400, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xf, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x2, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -12974,13 +18190,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
@@ -13002,7 +18218,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -13027,9 +18243,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -13043,51 +18259,51 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
-        0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
-        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_LogicOp */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
@@ -13106,12 +18322,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
@@ -13120,17 +18336,17 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
-        0x1, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
@@ -13139,7 +18355,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
@@ -13153,7 +18369,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
@@ -13164,11 +18380,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x1, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -13177,7 +18393,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -13227,7 +18443,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
         0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
@@ -13237,7 +18453,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -13293,6 +18509,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -13307,33 +18524,41 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc1000_5037_1 */
+    /* gc2000_5108 */
     {
-        0x1000, /* ChipID */
-        0x5037, /* ChipRevision */
+        0x2000, /* ChipID */
+        0x5108, /* ChipRevision */
         0x0, /* ProductID */
-        0x1, /* EcoID */
+        0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x4, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
-        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x240, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xb, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
@@ -13352,7 +18577,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
         0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x0, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
@@ -13397,7 +18622,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
-        0x1, /* gcFEATURE_BIT_REG_A8TargetSupport */
+        0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
@@ -13414,24 +18639,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
-        0x0, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
+        0x1, /* gcFEATURE_BIT_REG_NewFloatingPointArithmetic */
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
-        0x0, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
-        0x0, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
+        0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x1, /* gcFEATURE_BIT_REG_MMU */
+        0x0, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x0, /* gcFEATURE_BIT_REG_LineLoop */
         0x0, /* gcFEATURE_BIT_REG_LogicOp */
         0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
@@ -13439,39 +18664,39 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x0, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
-        0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+        0x0, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
@@ -13480,7 +18705,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
@@ -13489,9 +18714,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
-        0x1, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x1, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
@@ -13595,7 +18820,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
         0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
@@ -13605,7 +18830,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -13661,6 +18886,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -13675,33 +18901,41 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc1500_5246 */
+    /* gc2000_5140 */
     {
-        0x1500, /* ChipID */
-        0x5246, /* ChipRevision */
-        0x70003, /* ProductID */
+        0x2000, /* ChipID */
+        0x5140, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x6, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x5, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x400, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xf, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x2, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
@@ -13716,10 +18950,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -13763,7 +18997,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
@@ -13779,10 +19013,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
@@ -13791,7 +19025,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
@@ -13799,40 +19033,40 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x1, /* gcFEATURE_BIT_REG_LineLoop */
         0x1, /* gcFEATURE_BIT_REG_LogicOp */
         0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x1, /* gcFEATURE_BIT_REG_Halti1 */
+        0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
-        0x0, /* gcFEATURE_BIT_REG_Interleaver */
+        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
@@ -13843,12 +19077,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
@@ -13856,15 +19090,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
@@ -13875,7 +19109,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
@@ -13889,7 +19123,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
         0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
@@ -13900,11 +19134,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x1, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -13913,7 +19147,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -14029,6 +19263,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -14043,15 +19278,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc2000_5108 */
+    /* gc2000w_5_1_4_rc0e */
     {
         0x2000, /* ChipID */
-        0x5108, /* ChipRevision */
-        0x0, /* ProductID */
+        0x5140, /* ChipRevision */
+        0x20000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x5, /* PatchVersion */
         0x1, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -14059,12 +19302,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
         0x4, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x200, /* gcFEATURE_VALUE_InstructionCount */
-        0xa8, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x100, /* gcFEATURE_VALUE_InstructionCount */
+        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xb, /* gcFEATURE_VALUE_VaryingCount */
+        0x8, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x0, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -14087,8 +19330,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x0, /* gcFEATURE_BIT_REG_MinArea */
-        0x1, /* gcFEATURE_BIT_REG_NoEZ */
+        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
         0x1, /* gcFEATURE_BIT_REG_ByteWrite2D */
@@ -14106,7 +19349,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -14150,7 +19393,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
@@ -14159,25 +19402,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x1, /* gcFEATURE_BIT_REG_Halti0 */
+        0x0, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
-        0x0, /* gcFEATURE_BIT_REG_MMU */
+        0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes6 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
         0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
-        0x0, /* gcFEATURE_BIT_REG_LineLoop */
-        0x0, /* gcFEATURE_BIT_REG_LogicOp */
-        0x0, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
-        0x0, /* gcFEATURE_BIT_REG_SuperTiledTexture */
-        0x0, /* gcFEATURE_BIT_REG_LinearPE */
+        0x1, /* gcFEATURE_BIT_REG_LineLoop */
+        0x1, /* gcFEATURE_BIT_REG_LogicOp */
+        0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
+        0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
+        0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
         0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x0, /* gcFEATURE_BIT_REG_PESwizzle */
-        0x0, /* gcFEATURE_BIT_REG_EndEvent */
+        0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x0, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
@@ -14187,35 +19430,35 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
-        0x0, /* gcFEATURE_BIT_REG_TileFiller */
-        0x0, /* gcFEATURE_BIT_REG_YUVStandard */
+        0x1, /* gcFEATURE_BIT_REG_TileFiller */
+        0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
-        0x0, /* gcFEATURE_BIT_REG_Interleaver */
-        0x0, /* gcFEATURE_BIT_REG_MixedStreams */
+        0x1, /* gcFEATURE_BIT_REG_Interleaver */
+        0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
         0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes8 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes10 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
         0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
         0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
@@ -14226,15 +19469,15 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
@@ -14281,7 +19524,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -14397,6 +19640,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -14411,17 +19655,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc2000_5140 */
+    /* gc2500_5422 */
     {
-        0x2000, /* ChipID */
-        0x5140, /* ChipRevision */
+        0x2500, /* ChipID */
+        0x5422, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x5, /* PatchVersion */
-        0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x12, /* PatchVersion */
+        0x1, /* FormalRelease */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -14429,14 +19681,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xf, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
-        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
-        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x4, /* gcFEATURE_VALUE_L1CacheSize */
+        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
@@ -14452,10 +19704,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -14505,7 +19757,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -14515,10 +19767,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
@@ -14527,7 +19779,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
@@ -14535,109 +19787,109 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x1, /* gcFEATURE_BIT_REG_LineLoop */
         0x1, /* gcFEATURE_BIT_REG_LogicOp */
         0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x1, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
-        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_ACE */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
-        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
-        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
@@ -14660,7 +19912,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x0, /* gcFEATURE_BIT_REG_RSS8 */
-        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
@@ -14765,6 +20017,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -14779,17 +20032,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc2000w_5_1_4_rc0e */
+    /* gc3000_5435 */
     {
-        0x2000, /* ChipID */
-        0x5140, /* ChipRevision */
-        0x20000, /* ProductID */
+        0x3000, /* ChipID */
+        0x5435, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x5, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -14797,14 +20058,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x100, /* gcFEATURE_VALUE_InstructionCount */
-        0x100, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x8, /* gcFEATURE_VALUE_VaryingCount */
+        0xf, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
-        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
-        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x4, /* gcFEATURE_VALUE_L1CacheSize */
+        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
@@ -14820,10 +20081,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
-        0x0, /* gcFEATURE_BIT_REG_HighDynamicRange */
+        0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
         0x1, /* gcFEATURE_BIT_REG_ModuleCG */
-        0x1, /* gcFEATURE_BIT_REG_MinArea */
+        0x0, /* gcFEATURE_BIT_REG_MinArea */
         0x0, /* gcFEATURE_BIT_REG_NoEZ */
         0x0, /* gcFEATURE_BIT_REG_No422Texture */
         0x0, /* gcFEATURE_BIT_REG_BufferInterleaving */
@@ -14873,7 +20134,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -14883,10 +20144,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
         0x1, /* gcFEATURE_BIT_REG_BugFixes4 */
         0x0, /* gcFEATURE_BIT_REG_L2Windowing */
-        0x0, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+        0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
-        0x0, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
+        0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
         0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
@@ -14895,7 +20156,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_TextureHorizontalAlignmentSelect */
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
-        0x0, /* gcFEATURE_BIT_REG_Halti0 */
+        0x1, /* gcFEATURE_BIT_REG_Halti0 */
         0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
@@ -14903,109 +20164,109 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MMU */
         0x1, /* gcFEATURE_BIT_REG_WideLine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes6 */
-        0x0, /* gcFEATURE_BIT_REG_FcFlushStall */
+        0x1, /* gcFEATURE_BIT_REG_FcFlushStall */
         0x1, /* gcFEATURE_BIT_REG_LineLoop */
         0x1, /* gcFEATURE_BIT_REG_LogicOp */
         0x1, /* gcFEATURE_BIT_REG_SeamlessCubeMap */
         0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x1, /* gcFEATURE_BIT_REG_LinearPE */
-        0x0, /* gcFEATURE_BIT_REG_RectPrimitive */
+        0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
         0x0, /* gcFEATURE_BIT_REG_Composition */
-        0x0, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
-        0x0, /* gcFEATURE_BIT_REG_PESwizzle */
+        0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
+        0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x0, /* gcFEATURE_BIT_REG_S1S8 */
-        0x0, /* gcFEATURE_BIT_REG_Halti1 */
+        0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
         0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
-        0x0, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
+        0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
         0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
         0x0, /* gcFEATURE_BIT_REG_YUVConversion */
-        0x0, /* gcFEATURE_BIT_REG_FlushFixed2D */
+        0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x1, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
-        0x0, /* gcFEATURE_BIT_REG_DecompressZ16 */
+        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
-        0x0, /* gcFEATURE_BIT_REG_DERotationStallFix */
+        0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
-        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_ACE */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
-        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
-        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x0, /* gcFEATURE_BIT_REG_EEZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x1, /* gcFEATURE_BIT_REG_EEZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
@@ -15017,7 +20278,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
@@ -15133,6 +20394,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -15147,6 +20409,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
     /* gc2000_ffff5450 */
     {
@@ -15501,6 +20771,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -15515,15 +20786,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc3000_5435 */
+    /* gc3000_5450 */
     {
         0x3000, /* ChipID */
-        0x5435, /* ChipRevision */
+        0x5450, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x8, /* PatchVersion */
         0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -15536,7 +20815,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xf, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x4, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -15744,7 +21023,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -15764,7 +21043,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x0, /* gcFEATURE_BIT_REG_RSS8 */
-        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
@@ -15856,7 +21135,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
@@ -15869,6 +21148,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -15883,15 +21163,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc3000_5450 */
+    /* gc3000_5451 */
     {
         0x3000, /* ChipID */
-        0x5450, /* ChipRevision */
+        0x5451, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x8, /* PatchVersion */
+        0x4, /* PatchVersion */
         0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -16122,16 +21410,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
         0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
-        0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+        0x1, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
         0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
         0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
         0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
-        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
@@ -16224,7 +21512,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
@@ -16237,6 +21525,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -16251,16 +21540,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc3000_5451 */
+    /* gc7000L_551x */
     {
         0x3000, /* ChipID */
-        0x5451, /* ChipRevision */
-        0x0, /* ProductID */
+        0x5512, /* ChipRevision */
+        0x70002, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x8, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x3, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x400, /* gcFEATURE_VALUE_ThreadCount */
@@ -16314,7 +21611,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -16386,7 +21683,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
-        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
@@ -16421,7 +21718,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
         0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
         0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
-        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x1, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
@@ -16467,7 +21764,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
-        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x1, /* gcFEATURE_BIT_REG_Probe */
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
@@ -16481,25 +21778,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
-        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x1, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
-        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x1, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
-        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
-        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
-        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
@@ -16577,7 +21874,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x0, /* gcFEATURE_BIT_DRAWID */
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
@@ -16588,10 +21885,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
-        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -16603,8 +21900,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
-        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -16619,8 +21917,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000L_551x */
+    /* gc7000L_5512 */
     {
         0x3000, /* ChipID */
         0x5512, /* ChipRevision */
@@ -16628,7 +21934,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x3, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x400, /* gcFEATURE_VALUE_ThreadCount */
@@ -16973,6 +22279,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -16987,32 +22294,40 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000L_5512 */
+    /* gc4000_5222 */
     {
-        0x3000, /* ChipID */
-        0x5512, /* ChipRevision */
-        0x70002, /* ProductID */
+        0x4000, /* ChipID */
+        0x5222, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x3, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x800, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x200, /* gcFEATURE_VALUE_InstructionCount */
-        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x800, /* gcFEATURE_VALUE_InstructionCount */
+        0x200, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0xb, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x4, /* gcFEATURE_VALUE_L1CacheSize */
-        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
-        0x14, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
@@ -17050,7 +22365,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -17081,7 +22396,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -17118,18 +22433,18 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
-        0x0, /* gcFEATURE_BIT_REG_Composition */
+        0x1, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
-        0x1, /* gcFEATURE_BIT_REG_S1S8 */
+        0x0, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
@@ -17141,102 +22456,102 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
-        0x1, /* gcFEATURE_BIT_REG_Generics */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
-        0x1, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x1, /* gcFEATURE_BIT_REG_NewHZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x0, /* gcFEATURE_BIT_REG_NewHZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
-        0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
-        0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_Halti2 */
+        0x0, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
-        0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
-        0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
-        0x1, /* gcFEATURE_BIT_REG_Probe */
-        0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x1, /* gcFEATURE_BIT_REG_EEZ */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
-        0x1, /* gcFEATURE_BIT_REG_Halti3 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x0, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
-        0x1, /* gcFEATURE_BIT_REG_Halti4 */
+        0x0, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
-        0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
-        0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
-        0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
-        0x1, /* gcFEATURE_BIT_REG_RSS8 */
-        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x0, /* gcFEATURE_BIT_REG_RSS8 */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
@@ -17313,7 +22628,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x0, /* gcFEATURE_BIT_DRAWID */
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
@@ -17324,11 +22639,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
-        0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
@@ -17339,8 +22654,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
-        0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -17355,11 +22671,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc4000_5222 */
+    /* gc4000_5245 */
     {
         0x4000, /* ChipID */
-        0x5222, /* ChipRevision */
+        0x5245, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
@@ -17371,14 +22695,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
         0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x800, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x800, /* gcFEATURE_VALUE_InstructionCount */
-        0x200, /* gcFEATURE_VALUE_NumberOfConstants */
+        0x400, /* gcFEATURE_VALUE_InstructionCount */
+        0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xb, /* gcFEATURE_VALUE_VaryingCount */
+        0xf, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x0, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -17486,7 +22810,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_SuperTiledTexture */
         0x1, /* gcFEATURE_BIT_REG_LinearPE */
         0x1, /* gcFEATURE_BIT_REG_RectPrimitive */
-        0x1, /* gcFEATURE_BIT_REG_Composition */
+        0x0, /* gcFEATURE_BIT_REG_Composition */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
@@ -17509,7 +22833,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
         0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
-        0x0, /* gcFEATURE_BIT_REG_TextureTileStatus */
+        0x1, /* gcFEATURE_BIT_REG_TextureTileStatus */
         0x1, /* gcFEATURE_BIT_REG_DecompressZ16 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
@@ -17517,18 +22841,18 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x0, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
-        0x0, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+        0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x0, /* gcFEATURE_BIT_REG_Generics */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes9 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
-        0x0, /* gcFEATURE_BIT_REG_UnifiedSamplers */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes11 */
+        0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes12 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes13 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_ACE */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
@@ -17536,17 +22860,17 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes14 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
-        0x0, /* gcFEATURE_BIT_REG_NewHZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes15 */
+        0x1, /* gcFEATURE_BIT_REG_NewHZ */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes15 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements1 */
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
@@ -17555,7 +22879,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes16 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
@@ -17709,6 +23033,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -17723,17 +23048,25 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc4000_5245 */
+    /* gc5000_5434 */
     {
-        0x4000, /* ChipID */
-        0x5245, /* ChipRevision */
+        0x5000, /* ChipID */
+        0x5434, /* ChipRevision */
         0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x1, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
@@ -17741,14 +23074,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
-        0x400, /* gcFEATURE_VALUE_InstructionCount */
+        0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0xf, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x8, /* gcFEATURE_VALUE_L1CacheSize */
-        0x0, /* gcFEATURE_VALUE_InstructionMemorySize */
-        0x0, /* gcFEATURE_VALUE_ShaderPCLength */
+        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
@@ -17817,7 +23150,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -17864,8 +23197,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
-        0x0, /* gcFEATURE_BIT_REG_FullDirectFB */
-        0x1, /* gcFEATURE_BIT_REG_OnePass2DFilter */
+        0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
+        0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
         0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
@@ -17882,11 +23215,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
-        0x0, /* gcFEATURE_BIT_REG_InstructionCache */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_InstructionCache */
         0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
-        0x0, /* gcFEATURE_BIT_REG_Generics */
+        0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
         0x0, /* gcFEATURE_BIT_REG_FastMSAA */
         0x0, /* gcFEATURE_BIT_REG_WClip */
@@ -17894,16 +23227,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
         0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
         0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
-        0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
+        0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_ACE */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements2 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_DEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_DEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes14 */
         0x0, /* gcFEATURE_BIT_REG_PowerOptimizations0 */
         0x1, /* gcFEATURE_BIT_REG_NewHZ */
@@ -17918,38 +23251,38 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DENoGamma */
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
         0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_FEEnhancements2 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
+        0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
-        0x0, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_Halti2 */
+        0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
-        0x0, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
         0x0, /* gcFEATURE_BIT_REG_CSCV2 */
-        0x0, /* gcFEATURE_BIT_REG_PAEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes18 */
+        0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
         0x0, /* gcFEATURE_BIT_REG_Probe */
-        0x0, /* gcFEATURE_BIT_REG_MediumPrecision */
+        0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes20 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
         0x0, /* gcFEATURE_BIT_REG_EEZ */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes21 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
@@ -18077,6 +23410,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -18091,16 +23425,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x0, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc5000_5434 */
+    /* gc7000_551x */
     {
         0x5000, /* ChipID */
-        0x5434, /* ChipRevision */
-        0x0, /* ProductID */
+        0x5513, /* ChipRevision */
+        0x70000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x1, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -18112,7 +23454,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0xf, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
         0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -18154,7 +23496,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_FE20BitIndex */
         0x1, /* gcFEATURE_BIT_REG_FlipY */
         0x1, /* gcFEATURE_BIT_REG_DualReturnBus */
-        0x0, /* gcFEATURE_BIT_REG_EndiannessConfig */
+        0x1, /* gcFEATURE_BIT_REG_EndiannessConfig */
         0x1, /* gcFEATURE_BIT_REG_Texture8K */
         0x1, /* gcFEATURE_BIT_REG_CorrectTextureConverter */
         0x1, /* gcFEATURE_BIT_REG_SpecialMsaaLod */
@@ -18226,7 +23568,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisableCountWidth */
         0x1, /* gcFEATURE_BIT_REG_PESwizzle */
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
-        0x0, /* gcFEATURE_BIT_REG_S1S8 */
+        0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
@@ -18261,7 +23603,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes10 */
         0x1, /* gcFEATURE_BIT_REG_UnifiedSamplers */
         0x1, /* gcFEATURE_BIT_REG_BugFixes11 */
-        0x0, /* gcFEATURE_BIT_REG_PerformanceCounters */
+        0x1, /* gcFEATURE_BIT_REG_PerformanceCounters */
         0x1, /* gcFEATURE_BIT_REG_ExtraShaderInstructions2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
@@ -18307,7 +23649,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_PAEnhancements3 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes18 */
         0x0, /* gcFEATURE_BIT_REG_Compression2D */
-        0x0, /* gcFEATURE_BIT_REG_Probe */
+        0x1, /* gcFEATURE_BIT_REG_Probe */
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
@@ -18316,31 +23658,31 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x1, /* gcFEATURE_BIT_REG_EEZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
-        0x0, /* gcFEATURE_BIT_REG_Halti3 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
+        0x1, /* gcFEATURE_BIT_REG_Halti3 */
         0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
-        0x0, /* gcFEATURE_BIT_REG_Halti4 */
+        0x1, /* gcFEATURE_BIT_REG_Halti4 */
         0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
-        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
-        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x1, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
         0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
-        0x0, /* gcFEATURE_BIT_REG_TX6bitFrac */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
-        0x0, /* gcFEATURE_BIT_REG_RSS8 */
-        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x1, /* gcFEATURE_BIT_REG_RSS8 */
+        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x0, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
@@ -18417,7 +23759,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x0, /* gcFEATURE_BIT_DRAWID */
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
@@ -18428,11 +23770,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
-        0x0, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
+        0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
         0x0, /* gcFEATURE_BIT_VG_DOUBLE_IMAGE */
@@ -18443,8 +23785,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_IM_YUV_PLANAR */
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
-        0x0, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
+        0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -18459,8 +23802,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000_551x */
+    /* gc7000_5513 */
     {
         0x5000, /* ChipID */
         0x5513, /* ChipRevision */
@@ -18468,7 +23819,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x1, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -18813,6 +24164,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -18827,45 +24179,53 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000_5513 */
+    /* gcXAQ2_CMODEL */
     {
-        0x5000, /* ChipID */
-        0x5513, /* ChipRevision */
-        0x70000, /* ProductID */
+        0x7000, /* ChipID */
+        0x0, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x1, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
-        0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
-        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x200, /* gcFEATURE_VALUE_TempRegisters */
+        0x100, /* gcFEATURE_VALUE_ThreadCount */
+        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
         0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
         0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x8, /* gcFEATURE_VALUE_L1CacheSize */
-        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x0, /* gcFEATURE_VALUE_L1CacheSize */
+        0x100, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
         0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -18913,7 +24273,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
-        0x0, /* gcFEATURE_BIT_REG_VAA */
+        0x1, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
@@ -18925,7 +24285,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
-        0x0, /* gcFEATURE_BIT_REG_TextureStride */
+        0x1, /* gcFEATURE_BIT_REG_TextureStride */
         0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
@@ -18935,7 +24295,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
@@ -18944,7 +24304,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x1, /* gcFEATURE_BIT_REG_Halti0 */
-        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
@@ -18964,7 +24324,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
-        0x0, /* gcFEATURE_BIT_REG_RGB888 */
+        0x1, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
@@ -18973,8 +24333,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
         0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x1, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
@@ -18986,9 +24346,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -19002,7 +24362,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x1, /* gcFEATURE_BIT_REG_ACE */
+        0x0, /* gcFEATURE_BIT_REG_ACE */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
@@ -19023,19 +24383,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
@@ -19046,40 +24406,40 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Probe */
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x1, /* gcFEATURE_BIT_REG_EEZ */
+        0x0, /* gcFEATURE_BIT_REG_EEZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
         0x1, /* gcFEATURE_BIT_REG_Halti4 */
-        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x1, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
-        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
-        0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
-        0x1, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
-        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x1, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x1, /* gcFEATURE_BIT_REG_CubeMapFL28 */
         0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
-        0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
-        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
-        0x0, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x1, /* gcFEATURE_BIT_REG_Halti5 */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -19100,8 +24460,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
-        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x0, /* gcFEATURE_BIT_NO_ASTC */
@@ -19125,7 +24485,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -19153,7 +24513,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x0, /* gcFEATURE_BIT_DRAWID */
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
@@ -19164,9 +24524,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
         0x0, /* gcFEATURE_BIT_PE2D_SEPARATE_CACHE */
@@ -19181,6 +24541,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -19194,35 +24555,43 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
-        0x0, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gcXAQ2_CMODEL */
+    /* gc7000XS_600x */
     {
         0x7000, /* ChipID */
-        0x0, /* ChipRevision */
-        0x0, /* ProductID */
+        0x6008, /* ChipRevision */
+        0x70004, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0xb, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
-        0x200, /* gcFEATURE_VALUE_TempRegisters */
-        0x100, /* gcFEATURE_VALUE_ThreadCount */
-        0x8, /* gcFEATURE_VALUE_VertexCacheSize */
+        0x40, /* gcFEATURE_VALUE_TempRegisters */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x10, /* gcFEATURE_VALUE_VertexCacheSize */
         0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
-        0x200, /* gcFEATURE_VALUE_VertexOutputBufferSize */
+        0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x0, /* gcFEATURE_VALUE_L1CacheSize */
-        0x100, /* gcFEATURE_VALUE_InstructionMemorySize */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x40, /* gcFEATURE_VALUE_L1CacheSize */
+        0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x2, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -19230,10 +24599,10 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
         0x1, /* gcFEATURE_BIT_REG_ZCompression */
-        0x1, /* gcFEATURE_BIT_REG_YUV420Filter */
+        0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
-        0x1, /* gcFEATURE_BIT_REG_Pipe2D */
+        0x0, /* gcFEATURE_BIT_REG_Pipe2D */
         0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
@@ -19281,7 +24650,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MC20 */
         0x0, /* gcFEATURE_BIT_REG_ShaderMSAASideband */
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
-        0x1, /* gcFEATURE_BIT_REG_VAA */
+        0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
         0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
@@ -19293,7 +24662,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
-        0x1, /* gcFEATURE_BIT_REG_TextureStride */
+        0x0, /* gcFEATURE_BIT_REG_TextureStride */
         0x1, /* gcFEATURE_BIT_REG_BugFixes3 */
         0x1, /* gcFEATURE_BIT_REG_CorrectAutoDisable1 */
         0x0, /* gcFEATURE_BIT_REG_AutoRestartTS */
@@ -19303,7 +24672,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_PixelDither */
         0x1, /* gcFEATURE_BIT_REG_TwoStencilReference */
         0x1, /* gcFEATURE_BIT_REG_ExtendedPixelFormat */
-        0x0, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
+        0x1, /* gcFEATURE_BIT_REG_CorrectMinMaxDepth */
         0x1, /* gcFEATURE_BIT_REG_DitherAndFilterPlusAlpha2D */
         0x1, /* gcFEATURE_BIT_REG_BugFixes5 */
         0x0, /* gcFEATURE_BIT_REG_New2D */
@@ -19312,7 +24681,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_NonPowerOfTwo */
         0x1, /* gcFEATURE_BIT_REG_LinearTextureSupport */
         0x1, /* gcFEATURE_BIT_REG_Halti0 */
-        0x1, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
+        0x0, /* gcFEATURE_BIT_REG_CorrectOverflowVG */
         0x1, /* gcFEATURE_BIT_REG_NegativeLogFix */
         0x1, /* gcFEATURE_BIT_REG_ResolveOffset */
         0x1, /* gcFEATURE_BIT_REG_OkToGateAxiClock */
@@ -19332,7 +24701,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_EndEvent */
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
-        0x1, /* gcFEATURE_BIT_REG_RGB888 */
+        0x0, /* gcFEATURE_BIT_REG_RGB888 */
         0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
@@ -19341,8 +24710,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_ThreadWalkerInPS */
         0x1, /* gcFEATURE_BIT_REG_TileFiller */
         0x1, /* gcFEATURE_BIT_REG_YUVStandard */
-        0x1, /* gcFEATURE_BIT_REG_MultiSourceBlt */
-        0x1, /* gcFEATURE_BIT_REG_YUVConversion */
+        0x0, /* gcFEATURE_BIT_REG_MultiSourceBlt */
+        0x0, /* gcFEATURE_BIT_REG_YUVConversion */
         0x1, /* gcFEATURE_BIT_REG_FlushFixed2D */
         0x1, /* gcFEATURE_BIT_REG_Interleaver */
         0x1, /* gcFEATURE_BIT_REG_MixedStreams */
@@ -19354,7 +24723,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes8 */
         0x1, /* gcFEATURE_BIT_REG_DERotationStallFix */
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
-        0x0, /* gcFEATURE_BIT_REG_NewFeatures0 */
+        0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
         0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
@@ -19370,7 +24739,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes12 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes13 */
         0x1, /* gcFEATURE_BIT_REG_DEEnhancements1 */
-        0x0, /* gcFEATURE_BIT_REG_ACE */
+        0x1, /* gcFEATURE_BIT_REG_ACE */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements2 */
@@ -19398,12 +24767,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes16 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+        0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
         0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes17 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes17 */
         0x0, /* gcFEATURE_BIT_REG_Rasterizer2 */
         0x0, /* gcFEATURE_BIT_REG_DualPipeOPF */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2 */
@@ -19415,12 +24784,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
         0x1, /* gcFEATURE_BIT_REG_BugFixes19 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements6 */
-        0x0, /* gcFEATURE_BIT_REG_SHEnhancements7 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
+        0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
         0x0, /* gcFEATURE_BIT_REG_DEAddress40 */
         0x0, /* gcFEATURE_BIT_REG_MiniMMUFix */
-        0x0, /* gcFEATURE_BIT_REG_EEZ */
+        0x1, /* gcFEATURE_BIT_REG_EEZ */
         0x1, /* gcFEATURE_BIT_REG_BugFixes21 */
         0x0, /* gcFEATURE_BIT_REG_ExtraVgCaps */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
@@ -19433,22 +24802,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Halti4 */
         0x1, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
-        0x0, /* gcFEATURE_BIT_REG_HasChipProductReg */
+        0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
         0x1, /* gcFEATURE_BIT_REG_S8MSAACompression */
-        0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
         0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
-        0x1, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+        0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
         0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
-        0x0, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+        0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
-        0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
+        0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x1, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
         0x1, /* gcFEATURE_BIT_REG_BltEngine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -19462,7 +24831,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
-        0x0, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+        0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
         0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
         0x0, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
@@ -19470,11 +24839,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -19485,7 +24854,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -19493,7 +24862,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
         0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x0, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
         0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
@@ -19520,16 +24889,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
-        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
-        0x0, /* gcFEATURE_BIT_DRAWID */
+        0x1, /* gcFEATURE_BIT_DRAWID */
         0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
         0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
@@ -19549,6 +24918,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -19563,8 +24933,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_600x */
+    /* gc7000XS_6008 */
     {
         0x7000, /* ChipID */
         0x6008, /* ChipRevision */
@@ -19572,7 +24950,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0xb, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -19917,6 +25295,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -19931,16 +25310,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_6008 */
+    /* gc7000XSVX_600x */
     {
         0x7000, /* ChipID */
         0x6008, /* ChipRevision */
-        0x70004, /* ProductID */
+        0x70008, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0xb, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x0, /* PatchVersion */
+        0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -20182,9 +25569,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
         0x1, /* gcFEATURE_BIT_REG_BltEngine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -20214,13 +25601,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
         0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
         0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
         0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
         0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
-        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
@@ -20242,7 +25629,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_ROBUSTNESS */
         0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
         0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
-        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
@@ -20285,6 +25672,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -20299,16 +25687,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XSVX_600x */
+    /* gc7000XSVX_6008 */
     {
         0x7000, /* ChipID */
         0x6008, /* ChipRevision */
         0x70008, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
-        0x0, /* FormalRelease */
+        0x7, /* PatchVersion */
+        0x1, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -20653,6 +26049,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -20667,16 +26064,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XSVX_6008 */
+    /* gc7000XSVX_6009 */
     {
         0x7000, /* ChipID */
-        0x6008, /* ChipRevision */
+        0x6009, /* ChipRevision */
         0x70008, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
-        0x1, /* FormalRelease */
+        0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
         0x800, /* gcFEATURE_VALUE_ThreadCount */
@@ -20920,7 +26325,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x1, /* gcFEATURE_BIT_REG_Evis */
         0x1, /* gcFEATURE_BIT_REG_BltEngine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -20976,8 +26381,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x0, /* gcFEATURE_BIT_SECURITY */
         0x0, /* gcFEATURE_BIT_ROBUSTNESS */
-        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
-        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
@@ -21021,6 +26426,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -21035,12 +26441,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XSVX_6009 */
+    /* gc7000_6100 */
     {
         0x7000, /* ChipID */
-        0x6009, /* ChipRevision */
-        0x70008, /* ProductID */
+        0x6100, /* ChipRevision */
+        0x70000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
@@ -21056,13 +26470,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x40, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x20, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x20, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -21074,7 +26488,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
-        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
@@ -21196,7 +26610,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -21266,7 +26680,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -21286,8 +26700,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x1, /* gcFEATURE_BIT_REG_Evis */
-        0x1, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -21309,30 +26723,30 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
-        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
-        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
         0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
-        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
-        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x1, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x1, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x1, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
-        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
-        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
-        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SH_FIX_LDEXP */
         0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
@@ -21341,11 +26755,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
         0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
         0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
-        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x0, /* gcFEATURE_BIT_SECURITY */
         0x0, /* gcFEATURE_BIT_ROBUSTNESS */
-        0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
-        0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
@@ -21389,6 +26803,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -21403,21 +26818,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000_6100 */
+    /* gc7000L_6100 */
     {
         0x7000, /* ChipID */
         0x6100, /* ChipRevision */
-        0x70000, /* ProductID */
+        0x70002, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -21425,12 +26848,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x20, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x20, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -21757,6 +27180,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -21771,34 +27195,42 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000L_6100 */
+    /* gc7000XS_6100 */
     {
         0x7000, /* ChipID */
         0x6100, /* ChipRevision */
-        0x70002, /* ProductID */
+        0x70004, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x40, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -21932,7 +27364,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -22002,7 +27434,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -22023,7 +27455,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -22045,12 +27477,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -22061,7 +27493,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -22125,6 +27557,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -22139,34 +27572,42 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_6100 */
+    /* vip7000UL_6100 */
     {
         0x7000, /* ChipID */
         0x6100, /* ChipRevision */
-        0x70004, /* ProductID */
+        0x5070003, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
-        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x40, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -22178,7 +27619,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
         0x0, /* gcFEATURE_BIT_REG_Pipe2D */
-        0x0, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+        0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
         0x1, /* gcFEATURE_BIT_REG_FastScaler */
         0x1, /* gcFEATURE_BIT_REG_HighDynamicRange */
         0x1, /* gcFEATURE_BIT_REG_YUV420Tiler */
@@ -22227,7 +27668,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
@@ -22277,7 +27718,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -22300,7 +27741,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -22370,7 +27811,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -22390,9 +27831,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x1, /* gcFEATURE_BIT_REG_BltEngine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -22419,24 +27860,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x1, /* gcFEATURE_BIT_HWTFB */
-        0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
-        0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
         0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
-        0x1, /* gcFEATURE_BIT_USC_MCFILL_FIX */
-        0x1, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
-        0x1, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
-        0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
-        0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
-        0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
         0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
-        0x1, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
         0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
         0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
         0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
@@ -22445,7 +27886,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
         0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
         0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
-        0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x0, /* gcFEATURE_BIT_SECURITY */
         0x0, /* gcFEATURE_BIT_ROBUSTNESS */
         0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
@@ -22477,7 +27918,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -22492,7 +27933,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
-        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -22507,21 +27949,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* vip7000UL_6100 */
+    /* gc7000_6200 */
     {
         0x7000, /* ChipID */
-        0x6100, /* ChipRevision */
-        0x5070003, /* ProductID */
+        0x6200, /* ChipRevision */
+        0x70000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -22529,12 +27979,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x28, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x28, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -22601,7 +28051,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -22645,7 +28095,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -22758,7 +28208,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x1, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
@@ -22770,54 +28220,54 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x1, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x1, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
-        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
-        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
-        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
-        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
         0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
-        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
-        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
-        0x0, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
+        0x1, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x1, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x1, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
-        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
-        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
-        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x1, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
-        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SH_FIX_LDEXP */
         0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
-        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
-        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
-        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
-        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
-        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
-        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
-        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
-        0x0, /* gcFEATURE_BIT_SECURITY */
-        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
-        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
-        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x1, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x1, /* gcFEATURE_BIT_SECURITY */
+        0x1, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
@@ -22829,13 +28279,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
         0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
         0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
-        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
-        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
-        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
         0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x1, /* gcFEATURE_BIT_DRAWID */
-        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x1, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
         0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
         0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
@@ -22845,7 +28295,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -22861,6 +28311,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -22875,21 +28326,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000_6200 */
+    /* gc7000UL_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x70000, /* ProductID */
+        0x70003, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -22897,13 +28356,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x28, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x28, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -23128,7 +28587,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -23151,7 +28610,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x0, /* gcFEATURE_BIT_HWTFB */
@@ -23229,6 +28688,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -23243,12 +28703,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000UL_6200 */
+    /* gc7000ULVX_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x70003, /* ProductID */
+        0x7000f, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
@@ -23266,7 +28734,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
         0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -23381,7 +28849,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -23494,9 +28962,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
         0x0, /* gcFEATURE_BIT_REG_BltEngine */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes23 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
         0x0, /* gcFEATURE_BIT_REG_VSTileNV12 */
@@ -23555,16 +29023,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
         0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
-        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
-        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x1, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x1, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
         0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
@@ -23597,6 +29065,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -23611,21 +29080,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000ULVX_6200 */
+    /* vip7000L_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x7000f, /* ProductID */
+        0x5070002, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -23633,13 +29110,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x8, /* gcFEATURE_VALUE_L1CacheSize */
+        0x20, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x20, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -23705,7 +29182,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -23887,7 +29364,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x0, /* gcFEATURE_BIT_HWTFB */
@@ -23923,16 +29400,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
         0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
-        0x1, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
-        0x1, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
         0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
@@ -23945,11 +29422,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
-        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
-        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x1, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x1, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -23965,6 +29442,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -23979,21 +29457,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* vip7000L_6200 */
+    /* vip7000UL_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x5070002, /* ProductID */
+        0x5070003, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -24001,12 +29487,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x20, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x20, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -24333,6 +29819,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -24347,35 +29834,43 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* vip7000UL_6200 */
+    /* gc7400_551x */
     {
-        0x7000, /* ChipID */
-        0x6200, /* ChipRevision */
-        0x5070003, /* ProductID */
+        0x7400, /* ChipID */
+        0x5515, /* ChipRevision */
+        0x74000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x0, /* PatchVersion */
+        0x6, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
-        0x1, /* gcFEATURE_VALUE_CoreCount */
+        0x2, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -24435,7 +29930,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
@@ -24485,7 +29980,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -24543,7 +30038,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
-        0x1, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
@@ -24551,7 +30046,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
@@ -24566,7 +30061,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Probe */
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
-        0x1, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
@@ -24583,11 +30078,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
         0x1, /* gcFEATURE_BIT_REG_Halti4 */
-        0x1, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
         0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
-        0x1, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
         0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
         0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
@@ -24597,9 +30092,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
-        0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x1, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -24608,57 +30103,57 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_RenderTarget8 */
         0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
         0x0, /* gcFEATURE_BIT_FaceLod */
-        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
-        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x1, /* gcFEATURE_BIT_VMSAA */
-        0x0, /* gcFEATURE_BIT_ChipEnableLink */
+        0x1, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x1, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x1, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x1, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x0, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
-        0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
-        0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
-        0x1, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x0, /* gcFEATURE_BIT_HWTFB */
-        0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
-        0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
-        0x1, /* gcFEATURE_BIT_USC_MCFILL_FIX */
-        0x1, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
-        0x1, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
-        0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
-        0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
         0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
-        0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
-        0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
-        0x1, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
         0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
-        0x1, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
         0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
-        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
-        0x1, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
-        0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
-        0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
-        0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
-        0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
-        0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
-        0x1, /* gcFEATURE_BIT_SECURITY */
-        0x1, /* gcFEATURE_BIT_ROBUSTNESS */
-        0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
-        0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
-        0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x0, /* gcFEATURE_BIT_SECURITY */
+        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
@@ -24669,23 +30164,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
         0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
         0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
-        0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
-        0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
-        0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
-        0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x1, /* gcFEATURE_BIT_DRAWID */
-        0x1, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
-        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
-        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x1, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
         0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
-        0x1, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
-        0x1, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -24700,7 +30195,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
-        0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x0, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -24715,35 +30211,43 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7400_551x */
+    /* gc8000UL_6200 */
     {
-        0x7400, /* ChipID */
-        0x5515, /* ChipRevision */
-        0x74000, /* ProductID */
+        0x8000, /* ChipID */
+        0x6200, /* ChipRevision */
+        0x80003, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
-        0x6, /* PatchVersion */
+        0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
-        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
-        0x2, /* gcFEATURE_VALUE_CoreCount */
+        0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x8, /* gcFEATURE_VALUE_LocalStorageSize */
         0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
-        0x2, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x0, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x0, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x1, /* gcFEATURE_VALUE_NumResolvePipes */
+        0x8, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -24803,13 +30307,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_BugFixes0 */
         0x0, /* gcFEATURE_BIT_REG_VAA */
         0x0, /* gcFEATURE_BIT_REG_BypassInMSAA */
-        0x1, /* gcFEATURE_BIT_REG_HierarchicalZ */
+        0x0, /* gcFEATURE_BIT_REG_HierarchicalZ */
         0x0, /* gcFEATURE_BIT_REG_NewTexture */
         0x0, /* gcFEATURE_BIT_REG_A8TargetSupport */
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -24853,7 +30357,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -24911,7 +30415,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
         0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
-        0x0, /* gcFEATURE_BIT_REG_HIEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_HIEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements3 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_FEEnhancements2 */
@@ -24919,7 +30423,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_DEEnhancements5 */
         0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
         0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
-        0x0, /* gcFEATURE_BIT_REG_MCEnhancements1 */
+        0x1, /* gcFEATURE_BIT_REG_MCEnhancements1 */
         0x1, /* gcFEATURE_BIT_REG_Halti2 */
         0x0, /* gcFEATURE_BIT_REG_DEMirrorRotate */
         0x1, /* gcFEATURE_BIT_REG_SmallMSAA */
@@ -24934,7 +30438,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_Probe */
         0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
         0x0, /* gcFEATURE_BIT_REG_DESupertile */
-        0x0, /* gcFEATURE_BIT_REG_BugFixes19 */
+        0x1, /* gcFEATURE_BIT_REG_BugFixes19 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements6 */
         0x1, /* gcFEATURE_BIT_REG_SHEnhancements7 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes20 */
@@ -24951,11 +30455,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
         0x1, /* gcFEATURE_BIT_REG_Halti4 */
-        0x0, /* gcFEATURE_BIT_REG_RAWriteDepth */
+        0x1, /* gcFEATURE_BIT_REG_RAWriteDepth */
         0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
         0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
         0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
-        0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+        0x1, /* gcFEATURE_BIT_REG_S8MSAACompression */
         0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
         0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
         0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
@@ -24965,9 +30469,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
-        0x0, /* gcFEATURE_BIT_REG_Halti5 */
+        0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x1, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -24976,57 +30480,57 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_RenderTarget8 */
         0x0, /* gcFEATURE_BIT_TxLodFlowCorrection */
         0x0, /* gcFEATURE_BIT_FaceLod */
-        0x1, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
-        0x1, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x0, /* gcFEATURE_BIT_VMSAA */
-        0x1, /* gcFEATURE_BIT_ChipEnableLink */
+        0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
+        0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
+        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
-        0x0, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+        0x1, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
-        0x0, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
-        0x0, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
-        0x0, /* gcFEATURE_BIT_NEW_GPIPE */
+        0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
+        0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
+        0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x0, /* gcFEATURE_BIT_HWTFB */
-        0x0, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
-        0x0, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MCFILL_FIX */
-        0x0, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
-        0x0, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
-        0x0, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
+        0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
+        0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
+        0x1, /* gcFEATURE_BIT_SH_HALFDEPENDENCY_FIX */
+        0x1, /* gcFEATURE_BIT_USC_MCFILL_FIX */
+        0x1, /* gcFEATURE_BIT_TPG_TCPERF_FIX */
+        0x1, /* gcFEATURE_BIT_USC_MDFIFO_OVERFLOW_FIX */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
-        0x0, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
-        0x0, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
-        0x0, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
-        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
-        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
-        0x0, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
-        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
-        0x0, /* gcFEATURE_BIT_SH_FIX_LDEXP */
-        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
-        0x0, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
-        0x0, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
-        0x0, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
-        0x0, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
-        0x0, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
-        0x0, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
-        0x0, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
-        0x0, /* gcFEATURE_BIT_SECURITY */
-        0x0, /* gcFEATURE_BIT_ROBUSTNESS */
-        0x0, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
-        0x0, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
-        0x0, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
+        0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
+        0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
+        0x0, /* gcFEATURE_BIT_SH_SUPPORT_ALPHA_KILL */
+        0x1, /* gcFEATURE_BIT_PE_NO_ALPHA_TEST */
+        0x0, /* gcFEATURE_BIT_TX_LOD_NEAREST_SELECT */
+        0x1, /* gcFEATURE_BIT_SH_FIX_LDEXP */
+        0x1, /* gcFEATURE_BIT_SUPPORT_MOVAI */
+        0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_MAXPAGES_FIX */
+        0x1, /* gcFEATURE_BIT_PE_RGBA16I_FIX */
+        0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
+        0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
+        0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
+        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
+        0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
+        0x1, /* gcFEATURE_BIT_SECURITY */
+        0x1, /* gcFEATURE_BIT_ROBUSTNESS */
+        0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
+        0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
+        0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
         0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
         0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
@@ -25037,19 +30541,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
         0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
         0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
-        0x0, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
-        0x0, /* gcFEATURE_BIT_TX_8bit_UVFrac */
-        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
-        0x0, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
+        0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
+        0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x1, /* gcFEATURE_BIT_DRAWID */
-        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
-        0x1, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
+        0x1, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
         0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
@@ -25068,7 +30572,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_PE_YUV_PACKET */
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
-        0x0, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -25083,35 +30588,43 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc8000UL_6200 */
+    /* v630 */
     {
-        0x8000, /* ChipID */
-        0x6200, /* ChipRevision */
-        0x80003, /* ProductID */
+        0x7000, /* ChipID */
+        0x6300, /* ChipRevision */
+        0x0, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x8, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x8, /* gcFEATURE_VALUE_L1CacheSize */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x8, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -25221,7 +30734,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -25244,7 +30757,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -25314,7 +30827,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -25335,7 +30848,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -25357,12 +30870,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -25373,7 +30886,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -25437,10 +30950,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
-        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x1, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
@@ -25451,12 +30965,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* v630 */
+    /* gc7000XS_6200 */
     {
         0x7000, /* ChipID */
-        0x6300, /* ChipRevision */
-        0x0, /* ProductID */
+        0x6200, /* ChipRevision */
+        0x70004, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
@@ -25466,19 +30988,19 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
         0x8, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x20, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
         0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x20, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -25725,8 +31247,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
@@ -25741,7 +31263,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -25771,24 +31293,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
         0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
         0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
-        0x1, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
-        0x1, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
         0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
-        0x0, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
+        0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
-        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
+        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE */
         0x1, /* gcFEATURE_BIT_DRAWID */
-        0x0, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
-        0x0, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
+        0x1, /* gcFEATURE_BIT_PSIO_SAMPLEMASK_IN_R0ZW_FIX */
+        0x1, /* gcFEATURE_BIT_TX_INTEGER_COORDINATE_V2 */
         0x0, /* gcFEATURE_BIT_MULTI_CORE_BLOCK_SET_CONFIG */
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
-        0x1, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+        0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
         0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
         0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
@@ -25805,10 +31327,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
-        0x1, /* gcFEATURE_BIT_MULTI_CLUSTER */
+        0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
@@ -25819,34 +31342,42 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x1, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_6200 */
+    /* gc7000L_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x70004, /* ProductID */
+        0x70002, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -25980,7 +31511,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -26050,7 +31581,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -26071,7 +31602,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x1, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -26093,12 +31624,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -26109,7 +31640,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -26173,6 +31704,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -26187,12 +31719,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000L_6200 */
+    /* gc7000LXS_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x70002, /* ProductID */
+        0x7000a, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
@@ -26208,13 +31748,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -26348,7 +31888,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -26418,7 +31958,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -26439,7 +31979,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
         0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -26461,12 +32001,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -26477,7 +32017,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -26541,6 +32081,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -26555,22 +32096,30 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000LXS_6200 */
+    /* vip7000_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x7000a, /* ProductID */
+        0x5070000, /* ProductID */
         0x0, /* EcoID */
         0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
-        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
@@ -26578,7 +32127,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x1f, /* gcFEATURE_VALUE_VaryingCount */
         0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x40, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
@@ -26649,7 +32198,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x0, /* gcFEATURE_BIT_REG_V2Compression */
+        0x1, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -26693,7 +32242,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -26716,7 +32265,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -26786,7 +32335,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -26806,8 +32355,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
-        0x1, /* gcFEATURE_BIT_REG_BltEngine */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
+        0x0, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -26829,12 +32378,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -26845,7 +32394,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -26889,11 +32438,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
-        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
-        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x1, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x1, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -26909,6 +32458,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -26923,41 +32473,49 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* vip7000_6200 */
+    /* gc7000ULVX_V11_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
-        0x5070000, /* ProductID */
+        0x7000f, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x1, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x10, /* gcFEATURE_VALUE_Streams */
+        0x8, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x200, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumShaderCores */
         0x1, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x40, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x1, /* gcFEATURE_BIT_REG_ZCompression */
+        0x0, /* gcFEATURE_BIT_REG_ZCompression */
         0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
@@ -27017,7 +32575,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_CorrectStencil */
         0x1, /* gcFEATURE_BIT_REG_EnhanceVR */
         0x1, /* gcFEATURE_BIT_REG_RSUVSwizzle */
-        0x1, /* gcFEATURE_BIT_REG_V2Compression */
+        0x0, /* gcFEATURE_BIT_REG_V2Compression */
         0x0, /* gcFEATURE_BIT_REG_VGDoubleBuffer */
         0x1, /* gcFEATURE_BIT_REG_BugFixes1 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes2 */
@@ -27186,20 +32744,20 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x1, /* gcFEATURE_BIT_VMSAA */
+        0x0, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
         0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x1, /* gcFEATURE_BIT_V4Compression */
+        0x0, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
         0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
         0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
         0x0, /* gcFEATURE_BIT_HWTFB */
@@ -27235,16 +32793,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
         0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
-        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
-        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
-        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x1, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x1, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
         0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
@@ -27257,11 +32815,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_RESOLVE_ENGINE */
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
-        0x0, /* gcFEATURE_BIT_SNAPPAGE_CMD */
-        0x1, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
-        0x1, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
-        0x1, /* gcFEATURE_BIT_COMPUTE_ONLY */
+        0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
+        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_PREFETCH */
@@ -27277,6 +32835,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -27291,14 +32850,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000ULVX_V11_6200 */
+    /* gc7000ULVX_V12_6200 */
     {
         0x7000, /* ChipID */
         0x6200, /* ChipRevision */
         0x7000f, /* ProductID */
         0x0, /* EcoID */
-        0x1, /* CustomerID */
+        0x2, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x8, /* gcFEATURE_VALUE_Streams */
@@ -27429,7 +32996,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_S1S8 */
         0x1, /* gcFEATURE_BIT_REG_Halti1 */
         0x0, /* gcFEATURE_BIT_REG_RGB888 */
-        0x1, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
+        0x0, /* gcFEATURE_BIT_REG_TX_YUVAssembler */
         0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
         0x0, /* gcFEATURE_BIT_REG_TXFilter */
         0x1, /* gcFEATURE_BIT_REG_FullDirectFB */
@@ -27595,7 +33162,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
         0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
         0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
         0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
         0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x1, /* gcFEATURE_BIT_SECURITY */
@@ -27603,16 +33170,16 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_USC_ATOMIC_FIX */
         0x1, /* gcFEATURE_BIT_SH_PSO_MSAA1x_FIX */
         0x1, /* gcFEATURE_BIT_USC_VX_PERF_FIX */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
         0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
-        0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
-        0x1, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
-        0x1, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
+        0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+        0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
+        0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
         0x1, /* gcFEATURE_BIT_USC_GOS_ADDR_FIX */
         0x1, /* gcFEATURE_BIT_TX_8bit_UVFrac */
         0x1, /* gcFEATURE_BIT_TX_DESC_CACHE_CLOCKGATE_FIX */
@@ -27645,6 +33212,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -27659,41 +33227,49 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000ULVX_V12_6200 */
+    /* gc7000XS_6FFF */
     {
         0x7000, /* ChipID */
-        0x6200, /* ChipRevision */
-        0x7000f, /* ProductID */
+        0x6fff, /* ChipRevision */
+        0x70004, /* ProductID */
         0x0, /* EcoID */
-        0x2, /* CustomerID */
+        0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
-        0x8, /* gcFEATURE_VALUE_Streams */
+        0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x200, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x2, /* gcFEATURE_VALUE_NumShaderCores */
-        0x1, /* gcFEATURE_VALUE_NumPixelPipes */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x8, /* gcFEATURE_VALUE_L1CacheSize */
+        0x1f, /* gcFEATURE_VALUE_VaryingCount */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
-        0x10, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
         0x1, /* gcFEATURE_BIT_REG_DXTTextureCompression */
         0x0, /* gcFEATURE_BIT_REG_DebugMode */
-        0x0, /* gcFEATURE_BIT_REG_ZCompression */
+        0x1, /* gcFEATURE_BIT_REG_ZCompression */
         0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
         0x1, /* gcFEATURE_BIT_REG_MSAA */
         0x0, /* gcFEATURE_BIT_REG_DC */
@@ -27820,7 +33396,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -27890,7 +33466,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -27910,8 +33486,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x1, /* gcFEATURE_BIT_REG_Evis */
-        0x0, /* gcFEATURE_BIT_REG_BltEngine */
+        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
         0x0, /* gcFEATURE_BIT_REG_DEC */
@@ -27922,23 +33498,23 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_FaceLod */
         0x0, /* gcFEATURE_BIT_MultiCoreSemaphoreStallV2 */
         0x0, /* gcFEATURE_BIT_MultiCoreBlockSetConfig */
-        0x0, /* gcFEATURE_BIT_VMSAA */
+        0x1, /* gcFEATURE_BIT_VMSAA */
         0x0, /* gcFEATURE_BIT_ChipEnableLink */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_1_5_ENHANCEMENT */
         0x0, /* gcFEATURE_BIT_MULTI_SRC_BLT_BILINEAR_FILTER */
         0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
         0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
-        0x0, /* gcFEATURE_BIT_V4Compression */
+        0x1, /* gcFEATURE_BIT_V4Compression */
         0x0, /* gcFEATURE_BIT_PE2D_MAJOR_SUPER_TILE */
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
-        0x1, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -27949,7 +33525,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -27963,7 +33539,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
         0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
         0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
         0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
         0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x1, /* gcFEATURE_BIT_SECURITY */
@@ -28013,6 +33589,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -28027,14 +33604,22 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_6FFF */
+    /* gc7000_6210 */
     {
         0x7000, /* ChipID */
-        0x6fff, /* ChipRevision */
-        0x70004, /* ProductID */
+        0x6210, /* ChipRevision */
+        0x70000, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x6, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
@@ -28048,13 +33633,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x200, /* gcFEATURE_VALUE_InstructionCount */
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
-        0x1f, /* gcFEATURE_VALUE_VaryingCount */
-        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x20, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_VaryingCount */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -28188,7 +33773,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -28258,7 +33843,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -28301,12 +33886,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_PE_32BPC_COLORMASK_FIX */
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
-        0x1, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -28317,7 +33902,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -28331,7 +33916,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_BLT_8bpp_256TILE_FC_FIX */
         0x1, /* gcFEATURE_BIT_PE_64bit_FENCE_FIX */
         0x1, /* gcFEATURE_BIT_USC_FULL_CACHE_FIX */
-        0x1, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
+        0x0, /* gcFEATURE_BIT_TX_YUV_ASSEMBLER_10BIT */
         0x1, /* gcFEATURE_BIT_FE_32bit_INDEX_FIX */
         0x1, /* gcFEATURE_BIT_BLT_64bpp_MASKED_CLEAR_FIX */
         0x1, /* gcFEATURE_BIT_SECURITY */
@@ -28362,9 +33947,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
         0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
         0x1, /* gcFEATURE_BIT_SNAPPAGE_CMD */
-        0x0, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
-        0x0, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
-        0x0, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
+        0x1, /* gcFEATURE_BIT_SH_NO_INDEX_CONST_ON_A0 */
+        0x1, /* gcFEATURE_BIT_SH_NO_ONECONST_LIMIT */
+        0x1, /* gcFEATURE_BIT_SH_IMG_LDST_ON_TEMP */
         0x0, /* gcFEATURE_BIT_COMPUTE_ONLY */
         0x1, /* gcFEATURE_BIT_SH_IMG_LDST_CLAMP */
         0x1, /* gcFEATURE_BIT_SH_ICACHE_ALLOC_COUNT_FIX */
@@ -28381,28 +33966,37 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
         0x0, /* gcFEATURE_BIT_MULTI_CLUSTER */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
-        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
-        0x0, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
-        0x0, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
-        0x0, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
-        0x0, /* gcFEATURE_BIT_FE_ROBUST_FIX */
-        0x0, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
+        0x1, /* gcFEATURE_BIT_SH_MULTI_WG_PACK */
+        0x1, /* gcFEATURE_BIT_SH_DUAL16_SAMPLEMASK_ZW */
+        0x1, /* gcFEATURE_BIT_TPG_TRIVIAL_MODE_FIX */
+        0x1, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
+        0x1, /* gcFEATURE_BIT_FE_ROBUST_FIX */
+        0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000_6210 */
+    /* gc7000XS_6210 */
     {
         0x7000, /* ChipID */
         0x6210, /* ChipRevision */
-        0x70000, /* ProductID */
+        0x70004, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x8, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
@@ -28417,12 +34011,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x30, /* gcFEATURE_VALUE_LocalStorageSize */
         0x10, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x30, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -28556,7 +34150,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -28626,7 +34220,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -28670,11 +34264,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -28685,7 +34279,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -28749,6 +34343,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -28763,21 +34358,29 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x1, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x1, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x1, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x1, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000XS_6210 */
+    /* gc7000L_6210 */
     {
         0x7000, /* ChipID */
         0x6210, /* ChipRevision */
-        0x70004, /* ProductID */
+        0x70002, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x5, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x800, /* gcFEATURE_VALUE_ThreadCount */
+        0x400, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x8, /* gcFEATURE_VALUE_NumShaderCores */
+        0x4, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -28785,12 +34388,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x30, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x10, /* gcFEATURE_VALUE_L1CacheSize */
+        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x30, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -28924,7 +34527,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -28994,7 +34597,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -29038,11 +34641,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x0, /* gcFEATURE_BIT_NO_ASTC */
+        0x1, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x1, /* gcFEATURE_BIT_HWTFB */
+        0x0, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -29053,7 +34656,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -29117,6 +34720,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -29129,16 +34733,24 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
         0x1, /* gcFEATURE_BIT_FE_ROBUST_FIX */
         0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
-        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x1, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x0, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x0, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x0, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x0, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x0, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000L_6210 */
+    /* gc7000LXS_6210 */
     {
         0x7000, /* ChipID */
         0x6210, /* ChipRevision */
-        0x70002, /* ProductID */
+        0x7000a, /* ProductID */
         0x0, /* EcoID */
-        0x5, /* CustomerID */
+        0x0, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
@@ -29153,12 +34765,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x10, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x30, /* gcFEATURE_VALUE_LocalStorageSize */
         0x8, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x10, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x30, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -29292,7 +34904,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_OclOnly */
         0x1, /* gcFEATURE_BIT_REG_NewFeatures0 */
         0x1, /* gcFEATURE_BIT_REG_InstructionCache */
-        0x0, /* gcFEATURE_BIT_REG_GeometryShader */
+        0x1, /* gcFEATURE_BIT_REG_GeometryShader */
         0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
         0x1, /* gcFEATURE_BIT_REG_Generics */
         0x1, /* gcFEATURE_BIT_REG_BugFixes9 */
@@ -29362,7 +34974,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
         0x1, /* gcFEATURE_BIT_REG_BugFixes22 */
         0x1, /* gcFEATURE_BIT_REG_Halti3 */
-        0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
+        0x1, /* gcFEATURE_BIT_REG_TessellationShaders */
         0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
         0x0, /* gcFEATURE_BIT_REG_MultiSrcV2StrQuad */
         0x0, /* gcFEATURE_BIT_REG_SeperateSRCAndDstCache */
@@ -29406,11 +35018,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_ALPHA_BLENDING_OPT */
         0x1, /* gcFEATURE_BIT_NEW_GPIPE */
         0x0, /* gcFEATURE_BIT_PIPELINE_32_ATTRIBUTES */
-        0x0, /* gcFEATURE_BIT_MSAA_SHADING */
+        0x1, /* gcFEATURE_BIT_MSAA_SHADING */
         0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
-        0x1, /* gcFEATURE_BIT_NO_ASTC */
+        0x0, /* gcFEATURE_BIT_NO_ASTC */
         0x0, /* gcFEATURE_BIT_NO_DXT */
-        0x0, /* gcFEATURE_BIT_HWTFB */
+        0x1, /* gcFEATURE_BIT_HWTFB */
         0x1, /* gcFEATURE_BIT_RA_DEPTH_WRITE_MSAA1X_FIX */
         0x1, /* gcFEATURE_BIT_EZHZ_CLOCKGATE_FIX */
         0x1, /* gcFEATURE_BIT_SH_SNAP2PAGE_FIX */
@@ -29421,7 +35033,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_TEXLD_BARRIER_IN_CS_FIX */
         0x1, /* gcFEATURE_BIT_RS_NEW_BASEADDR */
         0x1, /* gcFEATURE_BIT_PE_8bpp_DUALPIPE_FIX */
-        0x0, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
+        0x1, /* gcFEATURE_BIT_SH_ADVANCED_INSTR */
         0x1, /* gcFEATURE_BIT_SH_FLAT_INTERPOLATION_DUAL16_FIX */
         0x1, /* gcFEATURE_BIT_USC_CONTINUOUS_FLUS_FIX */
         0x0, /* gcFEATURE_BIT_SH_SUPPORT_V4 */
@@ -29485,6 +35097,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -29497,23 +35110,31 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_TX_ASTC_MULTISLICE_FIX */
         0x1, /* gcFEATURE_BIT_FE_ROBUST_FIX */
         0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
-        0x1, /* gcFEATURE_BIT_PSIO_INTERLOCK */
+        0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x1, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x1, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x1, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x1, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
-    /* gc7000LXS_6210 */
+    /* gc7000XSVX_6210 */
     {
         0x7000, /* ChipID */
         0x6210, /* ChipRevision */
-        0x7000a, /* ProductID */
+        0x70008, /* ProductID */
         0x0, /* EcoID */
-        0x0, /* CustomerID */
+        0x7, /* CustomerID */
         0x0, /* PatchVersion */
         0x0, /* FormalRelease */
         0x10, /* gcFEATURE_VALUE_Streams */
         0x40, /* gcFEATURE_VALUE_TempRegisters */
-        0x400, /* gcFEATURE_VALUE_ThreadCount */
+        0x800, /* gcFEATURE_VALUE_ThreadCount */
         0x10, /* gcFEATURE_VALUE_VertexCacheSize */
-        0x4, /* gcFEATURE_VALUE_NumShaderCores */
+        0x8, /* gcFEATURE_VALUE_NumShaderCores */
         0x2, /* gcFEATURE_VALUE_NumPixelPipes */
         0x400, /* gcFEATURE_VALUE_VertexOutputBufferSize */
         0x0, /* gcFEATURE_VALUE_BufferSize */
@@ -29521,12 +35142,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x140, /* gcFEATURE_VALUE_NumberOfConstants */
         0x1, /* gcFEATURE_VALUE_CoreCount */
         0x10, /* gcFEATURE_VALUE_VaryingCount */
-        0x30, /* gcFEATURE_VALUE_LocalStorageSize */
-        0x8, /* gcFEATURE_VALUE_L1CacheSize */
+        0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+        0x20, /* gcFEATURE_VALUE_L1CacheSize */
         0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
         0x14, /* gcFEATURE_VALUE_ShaderPCLength */
         0x1, /* gcFEATURE_VALUE_NumResolvePipes */
-        0x30, /* gcFEATURE_VALUE_USC_MAX_PAGES */
+        0x40, /* gcFEATURE_VALUE_USC_MAX_PAGES */
         0x100, /* gcFEATURE_VALUE_RESULT_WINDOW_MAX_SIZE */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
@@ -29750,7 +35371,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_REG_RSS8 */
         0x1, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
         0x1, /* gcFEATURE_BIT_REG_Halti5 */
-        0x0, /* gcFEATURE_BIT_REG_Evis */
+        0x1, /* gcFEATURE_BIT_REG_Evis */
         0x1, /* gcFEATURE_BIT_REG_BltEngine */
         0x0, /* gcFEATURE_BIT_REG_BugFixes23 */
         0x0, /* gcFEATURE_BIT_REG_BugFixes24 */
@@ -29853,6 +35474,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_VG_COLOR_PRECISION_8_BIT */
         0x1, /* gcFEATURE_BIT_PE_MSAA_OQ_FIX */
         0x1, /* gcFEATURE_BIT_PSIO_MSAA_CL_FIX */
+        0x1, /* gcFEATURE_BIT_USC_DEFER_FILL_FIX */
         0x0, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
         0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -29867,6 +35489,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
         0x0, /* gcFEATURE_BIT_PSIO_INTERLOCK */
         0x1, /* gcFEATURE_BIT_PA_WIDELINE_FIX */
+        0x1, /* gcFEATURE_BIT_WIDELINE_HELPER_FIX */
+        0x0, /* gcFEATURE_BIT_G2D_3rd_PARTY_COMPRESSION_1_1 */
+        0x1, /* gcFEATURE_BIT_TX_FLUSH_L1CACHE */
+        0x1, /* gcFEATURE_BIT_PE_DITHER_FIX2 */
+        0x0, /* gcFEATURE_BIT_G2D_DEC400 */
+        0x1, /* gcFEATURE_BIT_SH_TEXLD_U_FIX */
+        0x1, /* gcFEATURE_BIT_MC_FCCACHE_BYTEMASK */
+        0x1, /* gcFEATURE_BIT_SH_MULTI_WG_PACK_FIX */
     },
 };
 
index dc01098..77f8f5e 100644 (file)
@@ -414,7 +414,8 @@ gckOS_MapPagesEx(
     IN gctSIZE_T PageCount,
     IN gctUINT32 Address,
     IN gctPOINTER PageTable,
-    IN gctBOOL Writable
+    IN gctBOOL Writable,
+    IN gceSURF_TYPE Type
     );
 
 gceSTATUS
@@ -1102,6 +1103,7 @@ gceSTATUS
 gckOS_WaitSignal(
     IN gckOS Os,
     IN gctSIGNAL Signal,
+    IN gctBOOL Interruptable,
     IN gctUINT32 Wait
     );
 
@@ -1168,6 +1170,14 @@ gckOS_WrapMemory(
     OUT gctBOOL *Contiguous
     );
 
+gceSTATUS
+gckOS_GetPolicyID(
+    IN gckOS Os,
+    IN gceSURF_TYPE Type,
+    OUT gctUINT32_PTR PolicyID,
+    OUT gctUINT32_PTR AXIConfig
+    );
+
 /******************************************************************************\
 ************************** Android Native Fence Sync ***************************
 \******************************************************************************/
@@ -1779,6 +1789,7 @@ gckKERNEL_Destroy(
 gceSTATUS
 gckKERNEL_Dispatch(
     IN gckKERNEL Kernel,
+    IN gckDEVICE Device,
     IN gctBOOL FromUser,
     IN OUT struct _gcsHAL_INTERFACE * Interface
     );
index 405b600..f3bda19 100644 (file)
@@ -636,6 +636,12 @@ gcoHAL_QuerySuperTileMode(
     OUT gctUINT32_PTR SuperTileMode
     );
 
+gceSTATUS
+gcoHAL_QueryMultiGPUAffinityConfig(
+    IN gceHARDWARE_TYPE Type,
+    OUT gceMULTI_GPU_MODE *Mode,
+    OUT gctUINT32_PTR CoreIndex
+    );
 
 #ifdef LINUX
 gctINT32
@@ -4301,7 +4307,7 @@ gceSTATUS gcfDumpApiData(IN gctCONST_POINTER Data, IN gctSIZE_T Size);
 gceSTATUS gcfDump2DCommand(IN gctUINT32_PTR Command, IN gctUINT32 Size);
 #if gcdDUMP_2D
 #   define gcmDUMP_2D_COMMAND(cmd, size) \
-        if (Hardware->newDump2DLevel > 0) \
+        if (Hardware->newDump2DLevel > 1) \
             gcfDump2DCommand(cmd, size)
 #elif gcdHAS_ELLIPSIS
 #   define gcmDUMP_2D_COMMAND(...)
@@ -4329,7 +4335,7 @@ gceSTATUS gcfDump2DCommand(IN gctUINT32_PTR Command, IN gctUINT32 Size);
 gceSTATUS gcfDump2DSurface(IN gctBOOL Src, IN gctUINT32 Address);
 #if gcdDUMP_2D
 #   define gcmDUMP_2D_SURFACE(src, addr) \
-        if (Hardware->newDump2DLevel > 1) \
+        if (Hardware->newDump2DLevel > 2) \
            gcfDump2DSurface(src, addr)
 #elif gcdHAS_ELLIPSIS
 #   define gcmDUMP_2D_SURFACE(...)
@@ -4396,11 +4402,6 @@ gceSTATUS gcfDelMemoryInfo(IN gctUINT32 Address);
 #   define gcmDUMP_DEL_MEMORY_INFO  __dummy_dump_del_memory_info
 #endif
 
-#if gcdDUMP_2D
-extern gctPOINTER dumpMemInfoListMutex;
-extern gctBOOL    dump2DFlag;
-#endif
-
 /*******************************************************************************
 **
 **  gcmTRACE_RELEASE
index bb6763a..767ad45 100644 (file)
@@ -233,12 +233,16 @@ typedef enum _gceHAL_COMMAND_CODES
     /* Wait until GPU finishes access to a resource. */
     gcvHAL_WAIT_FENCE,
 
-#if gcdENABLE_DEC_COMPRESSION && gcdDEC_ENABLE_AHB
+#if gcdDEC_ENABLE_AHB
     gcvHAL_DEC300_READ,
     gcvHAL_DEC300_WRITE,
     gcvHAL_DEC300_FLUSH,
     gcvHAL_DEC300_FLUSH_WAIT,
 #endif
+
+#if gcdENABLE_VG
+    gcvHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY
+#endif
 }
 gceHAL_COMMAND_CODES;
 
@@ -648,13 +652,13 @@ typedef struct _gcsHAL_INTERFACE
         struct _gcsHAL_COMMIT
         {
             /* Context buffer object gckCONTEXT. */
-            IN gctUINT64            context;
+            IN gctUINT64            contexts;
 
             /* Command buffer gcoCMDBUF. */
-            IN gctUINT64            commandBuffer;
+            IN gctUINT64            commandBuffers;
 
             /* State delta buffer in gcsSTATE_DELTA. */
-            gctUINT64               delta;
+            gctUINT64               deltas;
 
             /* Event queue in gcsQUEUE. */
             IN gctUINT64            queue;
@@ -667,6 +671,9 @@ typedef struct _gcsHAL_INTERFACE
 
             /* Index of command queue. */
             IN gctUINT32            index;
+
+            /* Count of gpu core. */
+            IN gctUINT32            count;
         }
         Commit;
 
@@ -1244,7 +1251,7 @@ typedef struct _gcsHAL_INTERFACE
         }
         CommitDone;
 
-#if gcdENABLE_DEC_COMPRESSION && gcdDEC_ENABLE_AHB
+#if gcdDEC_ENABLE_AHB
         struct _gcsHAL_DEC300_READ
         {
             gctUINT32      enable;
@@ -1284,6 +1291,19 @@ typedef struct _gcsHAL_INTERFACE
         }
         DEC300FlushWait;
 #endif
+
+#if gcdENABLE_VG
+        /* gcvHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY: */
+        struct _gcsHAL_BOTTOM_HALF_UNLOCK_VIDEO_MEMORY
+        {
+            /* Allocated video memory. */
+            IN gctUINT32                node;
+
+            /* Type of surface. */
+            IN gceSURF_TYPE             type;
+        }
+        BottomHalfUnlockVideoMemory;
+#endif
     }
     u;
 }
index 0e4c430..d05b38a 100644 (file)
 #ifndef __gc_hal_eglplatform_h_
 #define __gc_hal_eglplatform_h_
 
-/* Include VDK types. */
 #include "gc_hal_types.h"
 #include "gc_hal_base.h"
-#include "gc_hal_eglplatform_type.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -85,10 +83,6 @@ BITFIELDINFO;
 
 #elif /* defined(__APPLE__) || */ defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
 
-typedef int                             EGLNativeDisplayType;
-typedef void *                          EGLNativeWindowType;
-typedef void *                          EGLNativePixmapType;
-
 #elif defined(WL_EGL_PLATFORM) || defined(EGL_API_WL) /* Wayland */
 
 #if defined(__GNUC__)
@@ -135,7 +129,7 @@ typedef struct _gcsWL_EGL_BUFFER_INFO
    gceSURF_TYPE   type;
    gcuVIDMEM_NODE_PTR node;
    gcePOOL pool;
-   gctUINT bytes;
+   gctSIZE_T bytes;
    gcoSURF surface;
    gctINT32 invalidate;
    gctBOOL locked;
@@ -183,78 +177,24 @@ typedef void *                          HALNativePixmapType;
 
 #elif defined(__GBM__) /* GBM */
 
-typedef struct gbm_device *             HALNativeDisplayType;
-typedef struct gbm_bo *                 HALNativePixmapType;
-typedef void *                          HALNativeWindowType;
-
 #elif defined(__ANDROID__) || defined(ANDROID)
 
-#include <android/native_window.h>
-struct egl_native_pixmap_t;
-
-typedef struct ANativeWindow*           HALNativeWindowType;
-typedef struct egl_native_pixmap_t*     HALNativePixmapType;
-typedef void*                           HALNativeDisplayType;
-
 #elif defined(MIR_EGL_PLATFORM) /* Mir */
 
-#include <mir_toolkit/mir_client_library.h>
-typedef MirEGLNativeDisplayType         HALNativeDisplayType;
-typedef void                   *        HALNativePixmapType;
-typedef MirEGLNativeWindowType          HALNativeWindowType;
-
 #elif defined(__QNXNTO__)
 
-#include <screen/screen.h>
-typedef int                             HALNativeDisplayType;
-typedef screen_window_t                 HALNativeWindowType;
-typedef screen_pixmap_t                 HALNativePixmapType;
-
 #elif defined(__unix__) || defined(__APPLE__)
 
 #if defined(EGL_API_DFB)
 
-/* Vivante DFB. */
-#include <directfb.h>
-typedef struct _DFBDisplay *            HALNativeDisplayType;
-typedef struct _DFBWindow *             HALNativeWindowType;
-typedef struct _DFBPixmap *             HALNativePixmapType;
-
 #elif defined(EGL_API_FB)
 
-/* Vivante FBDEV */
-struct _FBDisplay;
-struct _FBWindow;
-struct _FBPixmap;
+#elif defined(EGL_API_NULLWS)
 
-typedef struct _FBDisplay *             HALNativeDisplayType;
-typedef struct _FBWindow *              HALNativeWindowType;
-typedef struct _FBPixmap *              HALNativePixmapType;
 
 #else
 
 /* X11 (tetative). */
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef Display *                       HALNativeDisplayType;
-typedef Window                          HALNativeWindowType;
-typedef Pixmap                          HALNativePixmapType;
-
-/* Rename some badly named X defines. */
-#ifdef Status
-#   define XStatus      int
-#   undef Status
-#endif
-#ifdef Always
-#   define XAlways      2
-#   undef Always
-#endif
-#ifdef CurrentTime
-#   undef CurrentTime
-#   define XCurrentTime 0
-#endif
-
 #endif
 
 #else
@@ -272,6 +212,10 @@ typedef Pixmap                          HALNativePixmapType;
 #   define EGL_DUMMY (31415926)
 #endif
 
+#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+
+#include "gc_hal_eglplatform_type.h"
+
 /*******************************************************************************
 ** Display. ********************************************************************
 */
@@ -727,6 +671,15 @@ gcoOS_ResizeWindow(
     IN gctUINT Height
     );
 
+gceSTATUS
+gcoOS_RSForSwap(
+    IN gctPOINTER localDisplay,
+    IN HALNativeWindowType Drawable,
+    IN gctPOINTER resolve
+    );
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif
index 13cd640..39bc31b 100644 (file)
@@ -92,6 +92,8 @@ typedef struct _gcsSURF_RESOLVE_ARGS
             gctBOOL   dump;       /* need dump for verify */
             gctBOOL   srcSwizzle;    /* src surface format swizzle infomation */
             gctBOOL   dstSwizzle;    /* dst surface format swizzle infomation */
+            gctBOOL   srcCompressed;   /* src compressed format*/
+            gctBOOL   dstCompressed;   /* dst compressed format*/
         } v2;
     } uArgs;
 }
index 0882d25..4d93eeb 100644 (file)
@@ -626,7 +626,8 @@ gcoHAL_FreeVideoMemory(
     IN gctUINT saveLayerTreeDepth,
     IN gctUINT varTreeDepth,
 #endif
-    IN gctUINT32 Node
+    IN gctUINT32 Node,
+    IN gctBOOL asynchroneous
     );
 
 /* Query command buffer attributes. */
@@ -1137,7 +1138,9 @@ gcoVG_TesselateImage(
     IN gctBOOL Mask,
 #if gcdMOVG
     IN gctBOOL SoftwareTesselation,
-    IN gceVG_BLEND BlendMode
+    IN gceVG_BLEND BlendMode,
+    IN gctINT Width,
+    IN gctINT Height
 #else
     IN gctBOOL SoftwareTesselation
 #endif
index d407c72..dad383b 100644 (file)
@@ -80,6 +80,7 @@ typedef enum _gceCHIPMODEL
     gcv520  = 0x0520,
     gcv530  = 0x0530,
     gcv600  = 0x0600,
+    gcv620  = 0x0620,
     gcv700  = 0x0700,
     gcv800  = 0x0800,
     gcv860  = 0x0860,
@@ -219,7 +220,8 @@ typedef enum _gceFEATURE
     gcvFEATURE_SUPPORT_GCREGTX,
     gcvFEATURE_2D_MIRROR_EXTENSION,
     gcvFEATURE_TEXTURE_ASTC,
-    gcvFEATURE_TEXTURE_ASTC_FIX,
+    gcvFEATURE_TEXTURE_ASTC_DECODE_FIX,
+    gcvFEATURE_TEXTURE_ASTC_BASE_LOD_FIX,
     gcvFEATURE_2D_SUPER_TILE_V1,
     gcvFEATURE_2D_SUPER_TILE_V2,
     gcvFEATURE_2D_SUPER_TILE_V3,
@@ -233,7 +235,10 @@ typedef enum _gceFEATURE
     gcvFEATURE_BRANCH_ON_IMMEDIATE_REG,
     gcvFEATURE_2D_COMPRESSION,
     gcvFEATURE_TPC_COMPRESSION,
+    gcvFEATURE_TPCV11_COMPRESSION,
     gcvFEATURE_DEC_COMPRESSION,
+    gcvFEATURE_DEC300_COMPRESSION,
+    gcvFEATURE_DEC400_COMPRESSION,
     gcvFEATURE_DEC_TPC_COMPRESSION,
     gcvFEATURE_DEC_COMPRESSION_TILE_NV12_8BIT,
     gcvFEATURE_DEC_COMPRESSION_TILE_NV12_10BIT,
@@ -246,6 +251,7 @@ typedef enum _gceFEATURE
     gcvFEATURE_VERTEX_INST_ID_AS_INTEGER,
     gcvFEATURE_2D_YUV_MODE,
     gcvFEATURE_2D_CACHE_128B256BPERLINE,
+    gcvFEATURE_2D_SEPARATE_CACHE,
     gcvFEATURE_2D_MAJOR_SUPER_TILE,
     gcvFEATURE_2D_V4COMPRESSION,
     gcvFEATURE_2D_VMSAA,
@@ -371,7 +377,7 @@ typedef enum _gceFEATURE
     gcvFEATURE_PE_B2B_PIXEL_FIX,
     gcvFEATURE_TEXTURE_GATHER_OFFSETS,
     gcvFEATURE_TEX_CACHE_FLUSH_FIX,
-    gcvFEATURE_WIDE_LINE_FIX,
+    gcvFEATURE_WIDELINE_HELPER_FIX,
     gcvFEATURE_LINE_DIAMOND_RULE_FIX,
     gcvFEATURE_MULTIGPU_SYNC_V2,
     gcvFEATURE_DRAW_ID,
@@ -473,12 +479,23 @@ typedef enum _gceFEATURE
     gcvFEATURE_PE_ENHANCEMENTS2,
     gcvFEATURE_PSIO_MSAA_CL_FIX,
     gcvFEATURE_FE_NEED_DUMMYDRAW,
-
+    gcvFEATURE_TX_ASTC_MULTISLICE_FIX,
+    gcvFEATURE_PSIO_DUAL16_32bpc_FIX,
+    gcvFEATURE_USC_DEFER_FILL_FIX,
     /* Insert features above this comment only. */
     gcvFEATURE_COUNT                /* Not a feature. */
 }
 gceFEATURE;
 
+/* dummy draw type.*/
+typedef enum _gceDUMMY_DRAW_TYPE
+{
+    gcvDUMMY_DRAW_INVALID = 0,
+    gcvDUMMY_DRAW_GC400,
+    gcvDUMMY_DRAW_V60,
+}
+gceDUMMY_DRAW_TYPE;
+
 /* Chip SWWA. */
 typedef enum _gceSWWA
 {
@@ -754,6 +771,7 @@ typedef enum _gceSURF_FORMAT
     gcvSURF_R8G8B8G8,
     gcvSURF_X2R10G10B10,
     gcvSURF_A2R10G10B10,
+    gcvSURF_R10G10B10A2,
     gcvSURF_X12R12G12B12,
     gcvSURF_A12R12G12B12,
     gcvSURF_X16R16G16B16,
@@ -766,7 +784,6 @@ typedef enum _gceSURF_FORMAT
     gcvSURF_A16R16G16B16_2_A8R8G8B8,
     gcvSURF_A32R32G32B32_2_G32R32F,
     gcvSURF_A32R32G32B32_4_A8R8G8B8,
-    gcvSURF_R10G10B10A2,
     /* BGR formats. */
     gcvSURF_A4B4G4R4            = 300,
     gcvSURF_A1B5G5R5,
@@ -785,6 +802,7 @@ typedef enum _gceSURF_FORMAT
     gcvSURF_B5G5R5A1,
     gcvSURF_B8G8R8X8,
     gcvSURF_B8G8R8A8,
+    gcvSURF_B10G10R10A2,
     gcvSURF_X4B4G4R4,
     gcvSURF_X1B5G5R5,
     gcvSURF_B4G4R4X4,
@@ -794,7 +812,6 @@ typedef enum _gceSURF_FORMAT
     gcvSURF_X8B8G8R8_SNORM,
     gcvSURF_A8B8G8R8_SNORM,
     gcvSURF_A8B12G12R12_2_A8R8G8B8,
-    gcvSURF_B10G10R10A2,
 
     /* Compressed formats. */
     gcvSURF_DXT1                = 400,
@@ -830,15 +847,16 @@ typedef enum _gceSURF_FORMAT
     gcvSURF_YUV420_10_ST,
     gcvSURF_YUV420_TILE_ST,
     gcvSURF_YUV420_TILE_10_ST,
+    gcvSURF_NV12_10BIT,
+    gcvSURF_NV21_10BIT,
+    gcvSURF_NV16_10BIT,
+    gcvSURF_NV61_10BIT,
+    gcvSURF_P010,
 #if gcdVG_ONLY
     gcvSURF_AYUY2,
     gcvSURF_ANV12,
     gcvSURF_ANV16,
 #endif
-    gcvSURF_NV12_10BIT,
-    gcvSURF_NV21_10BIT,
-    gcvSURF_NV16_10BIT,
-    gcvSURF_NV61_10BIT,
 
     /* Depth formats. */
     gcvSURF_D16                 = 600,
@@ -1377,7 +1395,6 @@ typedef enum _gce2D_TILE_STATUS_CONFIG
     gcv2D_TSC_COMPRESSED    = 0x00000002,
     gcv2D_TSC_DOWN_SAMPLER  = 0x00000004,
     gcv2D_TSC_2D_COMPRESSED = 0x00000008,
-    gcv2D_TSC_TPC_COMPRESSED = 0x00000010,
 
     gcv2D_TSC_DEC_COMPRESSED = 0x00000020,
     gcv2D_TSC_DEC_TPC        = 0x00000040,
@@ -1388,6 +1405,10 @@ typedef enum _gce2D_TILE_STATUS_CONFIG
 
     gcv2D_TSC_DEC_TPC_TILED  = gcv2D_TSC_DEC_COMPRESSED | gcv2D_TSC_DEC_TPC,
     gcv2D_TSC_DEC_TPC_TILED_COMPRESSED = gcv2D_TSC_DEC_TPC_TILED | gcv2D_TSC_DEC_TPC_COMPRESSED,
+
+    gcv2D_TSC_TPC_COMPRESSED     = 0x00001000,
+    gcv2D_TSC_TPC_COMPRESSED_V10 = gcv2D_TSC_TPC_COMPRESSED | 0x00000400,
+    gcv2D_TSC_TPC_COMPRESSED_V11 = gcv2D_TSC_TPC_COMPRESSED | 0x00000800,
 }
 gce2D_TILE_STATUS_CONFIG;
 
@@ -1529,8 +1550,10 @@ typedef enum _gceTILING
     gcvMINORTILED  = 0x8,         /* 2x2   tiling. */
 
     /* Tiling special layouts. */
-    gcvTILING_SPLIT_BUFFER = 0x100,
-    gcvTILING_Y_MAJOR         = 0x200,
+    gcvTILING_SPLIT_BUFFER = 0x10,
+    gcvTILING_X_MAJOR      = 0x20,
+    gcvTILING_Y_MAJOR      = 0x40,
+    gcvTILING_SWAP         = 0x80,
 
     /* Tiling combination layouts. */
     gcvMULTI_TILED      = gcvTILED
@@ -1541,6 +1564,16 @@ typedef enum _gceTILING
 
     gcvYMAJOR_SUPERTILED = gcvSUPERTILED
                         | gcvTILING_Y_MAJOR,
+
+    gcvTILED_8X4           = 0x0100,
+    gcvTILED_4X8           = 0x0100 | gcvTILING_SWAP,
+    gcvTILED_8X8           = 0x0200,
+    gcvTILED_16X4          = 0x0400,
+    gcvTILED_32X4          = 0x0800,
+    gcvTILED_64X4          = 0x1000,
+
+    gcvTILED_8X8_XMAJOR    = gcvTILED_8X8 | gcvTILING_X_MAJOR,
+    gcvTILED_8X8_YMAJOR    = gcvTILED_8X8 | gcvTILING_Y_MAJOR,
 }
 gceTILING;
 
@@ -1966,7 +1999,7 @@ typedef enum _gceCORE
     gcvCORE_3D3,
     gcvCORE_2D,
     gcvCORE_VG,
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
     gcvCORE_DEC,
 #endif
     gcvCORE_COUNT
index 908cbbd..7cd2124 100644 (file)
@@ -117,6 +117,7 @@ This define enables the use of VM for gckCommand and fence buffers.
 #endif
 
 #ifndef VIVANTE_PROFILER_PROBE
+#   define VIVANTE_PROFILER_PROBE_PERDRAW       0
 #   define VIVANTE_PROFILER_PROBE               0
 #endif
 
@@ -1224,26 +1225,13 @@ This define enables the use of VM for gckCommand and fence buffers.
 #endif
 
 /*
-    gcdENABLE_THIRD_PARTY_OPERATION
-        Enable third party operation like tpc or not.
-        This macro can only be enabled by special customer.
+    gcdDEC_ENABLE_AHB
+        Enable DEC300 compression AHB mode or not.
 */
-#ifndef gcdENABLE_THIRD_PARTY_OPERATION
-#   define gcdENABLE_THIRD_PARTY_OPERATION      0
-#endif
-
-/*
-    gcdENABLE_DEC_COMPRESSION
-        Enable DEC TPC compression or not.
-*/
-#ifndef gcdENABLE_DEC_COMPRESSION
-#   define gcdENABLE_DEC_COMPRESSION            0
 #ifndef gcdDEC_ENABLE_AHB
 #   define gcdDEC_ENABLE_AHB                    0
 #endif
 
-#endif
-
 /*
     gcdENABLE_UNIFIED_CONSTANT
         Enable unified constant or not.
@@ -1414,4 +1402,12 @@ VIV:gcdUSE_MMU_EXCEPTION
 #   define gcdVX_OPTIMIZER                      0
 #endif
 
+/*
+    gcdDISABLE_GPU_VIRTUAL_ADDRESS
+
+        When enabled, disable MMU and all virtual allocated from MMU.
+*/
+#ifndef gcdDISABLE_GPU_VIRTUAL_ADDRESS
+#   define gcdDISABLE_GPU_VIRTUAL_ADDRESS       0
+#endif
 #endif /* __gc_hal_options_h_ */
index 9018808..d8155de 100644 (file)
@@ -628,9 +628,25 @@ typedef struct _gcsPROFILER_COUNTERS
 }
 gcsPROFILER_COUNTERS;
 
-#if VIVANTE_PROFILER_PROBE
 #define NumOfDrawBuf 1024
-#endif
+
+typedef enum _gceCOUNTER_OPTYPE
+{
+    gcvCOUNTER_OP_DRAW = 0,
+    gcvCOUNTER_OP_BLT = 1,
+    gcvCOUNTER_OP_COMPUTE = 2,
+    gcvCOUNTER_OP_RS = 3,
+    gcvCOUNTER_OP_NONE = 4
+}
+gceCOUNTER_OPTYPE;
+
+typedef struct _gcsPROBEBUFFER
+{
+    gctHANDLE       newCounterBuf[NumOfDrawBuf];
+    gctUINT32       curBufId;
+    gceCOUNTER_OPTYPE  opType[NumOfDrawBuf];
+}
+gcsPROBEBUFFER;
 
 /* HAL profile information. */
 typedef struct _gcsPROFILER
@@ -686,11 +702,9 @@ typedef struct _gcsPROFILER
 #endif
 
 #if VIVANTE_PROFILER_PROBE
-    gctHANDLE       newCounterBuf[NumOfDrawBuf];
-    gctUINT32       curBufId;
+    gcsPROBEBUFFER  probeBuffer;
     gctFILE         probeFile;
 #endif
-
 }
 gcsPROFILER;
 
@@ -750,13 +764,14 @@ gcoPROFILER_EndFrame(
     );
 
 gceSTATUS
-gcoPROFILER_BeginDraw(
-IN gcoHAL Hal
-);
+    gcoPROFILER_Begin(
+    IN gcoHAL Hal,
+    IN gceCOUNTER_OPTYPE operationType
+    );
 
 /* Call to signal end of draw. */
 gceSTATUS
-gcoPROFILER_EndDraw(
+gcoPROFILER_End(
     IN gcoHAL Hal,
     IN gctBOOL FirstDraw
     );
index 5b3db21..3ac4dc1 100644 (file)
@@ -123,7 +123,11 @@ extern "C" {
 \******************************************************************************/
 
 #if defined(ANDROID) && defined(__BIONIC_FORTIFY)
-#   define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) __attribute__ ((artificial))
+#if defined(__clang__)
+#       define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline))
+#   else
+#       define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) __attribute__ ((artificial))
+#   endif
 #elif ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || defined(__APPLE__))
 #   define gcmINLINE            inline      /* C99 keyword. */
 #elif defined(__GNUC__)
index 5887e81..07ff071 100644 (file)
 
 #define gcvVERSION_MINOR        1
 
-#define gcvVERSION_PATCH        0
+#define gcvVERSION_PATCH        1
 
-#define gcvVERSION_BUILD     60705
+#define gcvVERSION_BUILD     72587
 
-#define gcvVERSION_STRING    "6.1.0.60705"
+#define gcvVERSION_STRING    "6.1.1.72587"
 
 #endif /* __gc_hal_version_h_ */
index 220351c..fc271f0 100644 (file)
@@ -378,6 +378,14 @@ gckVGKERNEL_Destroy(
     IN gckVGKERNEL Kernel
     );
 
+/* Unlock video memory from gpu. */
+gceSTATUS
+gckVGKERNEL_BottomHalfUnlockVideoMemory(
+    IN gckKERNEL Kernel,
+    IN gctUINT32 ProcessID,
+    IN gctUINT32 Node
+    );
+
 /* Unmap memory. */
 gceSTATUS
 gckKERNEL_UnmapMemory(
index f46bca6..e3de077 100644 (file)
@@ -455,7 +455,7 @@ _DmaAlloctorInit(
     )
 {
     gceSTATUS status;
-    gckALLOCATOR allocator;
+    gckALLOCATOR allocator = gcvNULL;
     gcsDMA_PRIV_PTR priv = gcvNULL;
 
     gcmkONERROR(gckALLOCATOR_Construct(Os, &DmaAllocatorOperations, &allocator));
@@ -483,6 +483,8 @@ _DmaAlloctorInit(
     return gcvSTATUS_OK;
 
 OnError:
+    if(allocator != gcvNULL)
+        gckOS_Free(Os, (gctPOINTER)allocator);
     return status;
 }
 
index 303b5c7..f25f3b8 100644 (file)
@@ -453,7 +453,7 @@ _UserMemoryAttach(
     )
 {
     gceSTATUS status;
-    gcsUserMemory * userMemory;
+    gcsUserMemory * userMemory = gcvNULL;
 
     gckOS os = Allocator->os;
 
@@ -476,7 +476,8 @@ _UserMemoryAttach(
     return gcvSTATUS_OK;
 
 OnError:
-
+    if(userMemory != gcvNULL)
+        gckOS_Free(os,(gctPOINTER)userMemory);
     gcmkFOOTER();
     return status;
 }
index ec90fa4..b786695 100644 (file)
@@ -63,6 +63,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/slab.h>
 #include <linux/dma-mapping.h>
+#include <linux/platform_device.h>
 
 #define _GC_OBJ_ZONE    gcvZONE_OS
 
@@ -143,7 +144,7 @@ _CMAFSLAlloc(
     gcmkONERROR(gckOS_Allocate(os, sizeof(struct mdl_cma_priv), (gctPOINTER *)&mdl_priv));
     mdl_priv->kvaddr = gcvNULL;
 
-    mdl_priv->kvaddr = dma_alloc_writecombine(gcvNULL,
+    mdl_priv->kvaddr = dma_alloc_writecombine(&os->device->platform->device->dev,
             NumPages * PAGE_SIZE,
             &mdl_priv->physical,
             GFP_KERNEL | gcdNOWARN);
@@ -175,7 +176,7 @@ _CMAFSLFree(
     gckOS os = Allocator->os;
     struct mdl_cma_priv *mdl_priv=(struct mdl_cma_priv *)Mdl->priv;
     gcsCMA_PRIV_PTR priv = (gcsCMA_PRIV_PTR)Allocator->privateData;
-    dma_free_writecombine(gcvNULL,
+    dma_free_writecombine(&os->device->platform->device->dev,
             Mdl->numPages * PAGE_SIZE,
             mdl_priv->kvaddr,
             mdl_priv->physical);
@@ -262,7 +263,7 @@ _CMAFSLMapUser(
     if (mdl->contiguous)
     {
         /* map kernel memory to user space.. */
-        if (dma_mmap_writecombine(gcvNULL,
+        if (dma_mmap_writecombine(&os->device->platform->device->dev,
                 vma,
                 mdl_priv->kvaddr,
                 mdl_priv->physical,
index 91c18fd..b44549a 100644 (file)
 #include <asm/atomic.h>
 #include <linux/dma-mapping.h>
 #include <linux/slab.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)
+#include <linux/anon_inodes.h>
+#endif
+#include <linux/file.h>
 
 #include "gc_hal_kernel_allocator_array.h"
 #include "gc_hal_kernel_platform.h"
@@ -90,6 +94,14 @@ typedef struct _gcsDEFAULT_MDL_PRIV {
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
     gctBOOL                 exact;
 #endif
+
+    struct file *           file;
+
+    gctBOOL                 cacheable;
+
+    gcsPLATFORM *           platform;
+
+    gctBOOL                 contiguous;
 }
 gcsDEFAULT_MDL_PRIV;
 
@@ -393,6 +405,98 @@ _UnmapUserLogical(
 #endif
 }
 
+static gceSTATUS
+default_mmap_internal(
+    IN gcsDEFAULT_MDL_PRIV_PTR MdlPriv,
+    IN struct vm_area_struct *vma
+    )
+{
+    gcsPLATFORM * platform = MdlPriv->platform;
+    gctUINT32 numPages;
+    unsigned long start;
+    unsigned long pfn;
+    gctINT i;
+
+    gcmkHEADER();
+
+    vma->vm_flags |= gcdVM_FLAGS;
+
+    if (MdlPriv->cacheable == gcvFALSE)
+    {
+        /* Make this mapping non-cached. */
+        vma->vm_page_prot = gcmkPAGED_MEMROY_PROT(vma->vm_page_prot);
+    }
+
+    if (platform && platform->ops->adjustProt)
+    {
+        platform->ops->adjustProt(vma);
+    }
+
+    /* Now map all the vmalloc pages to this user address. */
+    if (MdlPriv->contiguous)
+    {
+        /* map kernel memory to user space.. */
+        if (remap_pfn_range(vma,
+                            vma->vm_start,
+                            page_to_pfn(MdlPriv->u.contiguousPages),
+                            vma->vm_end - vma->vm_start,
+                            vma->vm_page_prot) < 0)
+        {
+            gcmkTRACE_ZONE(
+                gcvLEVEL_INFO, gcvZONE_OS,
+                "%s(%d): unable to mmap ret",
+                __FUNCTION__, __LINE__
+                );
+
+            gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_MEMORY);
+            return gcvSTATUS_OUT_OF_MEMORY;
+        }
+    }
+    else
+    {
+        numPages = (vma->vm_end - vma->vm_start) / PAGE_SIZE;
+        start = vma->vm_start;
+
+        for (i = 0; i < numPages; i++)
+        {
+            pfn = _NonContiguousToPfn(MdlPriv->u.nonContiguousPages, i);
+
+            if (remap_pfn_range(vma,
+                                start,
+                                pfn,
+                                PAGE_SIZE,
+                                vma->vm_page_prot) < 0)
+            {
+                gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_MEMORY);
+                return gcvSTATUS_OUT_OF_MEMORY;
+            }
+
+            start += PAGE_SIZE;
+        }
+    }
+
+    gcmkFOOTER_NO();
+    return gcvSTATUS_OK;
+}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)
+static int default_mmap(struct file *file, struct vm_area_struct *vma)
+{
+    gcsDEFAULT_MDL_PRIV_PTR mdlPriv = file->private_data;
+
+    if (gcmIS_ERROR(default_mmap_internal(mdlPriv, vma)))
+    {
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static const struct file_operations default_fops = {
+    .mmap = default_mmap,
+};
+#endif
+
 /***************************************************************************\
 ************************ Default Allocator **********************************
 \***************************************************************************/
@@ -528,6 +632,18 @@ _DefaultAlloc(
         }
     }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)
+    mdlPriv->file = anon_inode_getfile("default", &default_fops, mdlPriv, O_RDWR);
+
+    if (IS_ERR(mdlPriv->file))
+    {
+        gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
+    }
+#endif
+
+    mdlPriv->platform = Allocator->os->device->platform;
+    mdlPriv->contiguous = contiguous;
+
     Mdl->priv = mdlPriv;
 
     gcmkFOOTER_NO();
@@ -596,6 +712,11 @@ _DefaultFree(
         _NonContiguousFree(mdlPriv->u.nonContiguousPages, Mdl->numPages);
     }
 
+    if (mdlPriv->file != gcvNULL)
+    {
+        fput(mdlPriv->file);
+    }
+
     gcmkOS_SAFE_FREE(Allocator->os, Mdl->priv);
 }
 
@@ -607,13 +728,7 @@ _DefaultMapUser(
     OUT gctPOINTER * UserLogical
     )
 {
-
-    gctSTRING       addr;
-    unsigned long   start;
-    unsigned long   pfn;
-    gctINT i;
     gckOS           os = Allocator->os;
-    gcsPLATFORM *   platform = os->device->platform;
 
     PLINUX_MDL      mdl = Mdl;
     gctPOINTER      userLogical = gcvNULL;
@@ -622,8 +737,11 @@ _DefaultMapUser(
 
     gcmkHEADER_ARG("Allocator=%p Mdl=%p gctBOOL=%d", Allocator, Mdl, Cacheable);
 
+    /* mdlPriv->cacheable must be used under protection of mdl->mapMutex. */
+    mdlPriv->cacheable = Cacheable;
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)
-    userLogical = (gctSTRING)vm_mmap(gcvNULL,
+    userLogical = (gctSTRING)vm_mmap(mdlPriv->file,
                     0L,
                     mdl->numPages * PAGE_SIZE,
                     PROT_READ | PROT_WRITE,
@@ -632,7 +750,7 @@ _DefaultMapUser(
 #else
     down_write(&current->mm->mmap_sem);
 
-    userLogical = (gctSTRING)do_mmap_pgoff(gcvNULL,
+    userLogical = (gctSTRING)do_mmap_pgoff(mdlPriv->file,
                     0L,
                     mdl->numPages * PAGE_SIZE,
                     PROT_READ | PROT_WRITE,
@@ -664,87 +782,37 @@ _DefaultMapUser(
         return gcvSTATUS_OUT_OF_MEMORY;
     }
 
-    down_write(&current->mm->mmap_sem);
-
-    vma = find_vma(current->mm, (unsigned long)userLogical);
-
-    if (vma == gcvNULL)
+    if (mdlPriv->file == gcvNULL)
     {
-        up_write(&current->mm->mmap_sem);
-
-        gcmkTRACE_ZONE(
-            gcvLEVEL_INFO, gcvZONE_OS,
-            "%s(%d): find_vma error",
-            __FUNCTION__, __LINE__
-            );
+        /* Remap here since there is no file and ops->mmap(). */
+        down_write(&current->mm->mmap_sem);
 
-        gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_RESOURCES);
-        return gcvSTATUS_OUT_OF_RESOURCES;
-    }
+        vma = find_vma(current->mm, (unsigned long)userLogical);
 
-    vma->vm_flags |= gcdVM_FLAGS;
-
-    if (Cacheable == gcvFALSE)
-    {
-        /* Make this mapping non-cached. */
-        vma->vm_page_prot = gcmkPAGED_MEMROY_PROT(vma->vm_page_prot);
-    }
-
-    if (platform && platform->ops->adjustProt)
-    {
-        platform->ops->adjustProt(vma);
-    }
-
-    addr = mdl->addr;
-
-    /* Now map all the vmalloc pages to this user address. */
-    if (mdl->contiguous)
-    {
-        /* map kernel memory to user space.. */
-        if (remap_pfn_range(vma,
-                            vma->vm_start,
-                            page_to_pfn(mdlPriv->u.contiguousPages),
-                            vma->vm_end - vma->vm_start,
-                            vma->vm_page_prot) < 0)
+        if (vma == gcvNULL)
         {
             up_write(&current->mm->mmap_sem);
 
             gcmkTRACE_ZONE(
                 gcvLEVEL_INFO, gcvZONE_OS,
-                "%s(%d): unable to mmap ret",
+                "%s(%d): find_vma error",
                 __FUNCTION__, __LINE__
                 );
 
-            gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_MEMORY);
-            return gcvSTATUS_OUT_OF_MEMORY;
+            gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_RESOURCES);
+            return gcvSTATUS_OUT_OF_RESOURCES;
         }
-    }
-    else
-    {
-        start = vma->vm_start;
 
-        for (i = 0; i < mdl->numPages; i++)
+        if (gcmIS_ERROR(default_mmap_internal(mdlPriv, vma)))
         {
-            pfn = _NonContiguousToPfn(mdlPriv->u.nonContiguousPages, i);
-
-            if (remap_pfn_range(vma,
-                                start,
-                                pfn,
-                                PAGE_SIZE,
-                                vma->vm_page_prot) < 0)
-            {
-                up_write(&current->mm->mmap_sem);
-
-                gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_MEMORY);
-                return gcvSTATUS_OUT_OF_MEMORY;
-            }
+            up_write(&current->mm->mmap_sem);
 
-            start += PAGE_SIZE;
-            addr += PAGE_SIZE;
+            gcmkFOOTER_ARG("*status=%d", gcvSTATUS_OUT_OF_MEMORY);
+            return gcvSTATUS_OUT_OF_MEMORY;
         }
-    }
 
-    up_write(&current->mm->mmap_sem);
+        up_write(&current->mm->mmap_sem);
+    }
 
     gcmkVERIFY_OK(gckOS_CacheFlush(
         os,
index f58b218..004d493 100644 (file)
@@ -978,7 +978,7 @@ static irqreturn_t isrRoutine(int irq, void *ctxt)
 {
     gceSTATUS status;
     gckGALDEVICE device;
-    gceCORE Core = (gceCORE) ctxt;
+    gceCORE Core = (gceCORE) gcmPTR2INT32(ctxt);
 
     device = galDevice;
 
@@ -998,7 +998,7 @@ static irqreturn_t isrRoutine(int irq, void *ctxt)
 static int threadRoutine(void *ctxt)
 {
     gckGALDEVICE device = galDevice;
-    gceCORE core = (gceCORE) ctxt;
+    gceCORE core = (gceCORE) gcmPTR2INT32(ctxt);
     gctUINT i;
 
     gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_DRIVER,
@@ -1221,7 +1221,7 @@ gckGALDEVICE_Construct(
         device->requestedRegisterMemBases[gcvCORE_VG] = RegisterMemBaseVG;
         device->requestedRegisterMemSizes[gcvCORE_VG] = RegisterMemSizeVG;
     }
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
     {
         device->requestedRegisterMemBases[gcvCORE_DEC] = Args->registerMemBaseDEC300;
         device->requestedRegisterMemSizes[gcvCORE_DEC] = Args->registerMemSizeDEC300;
index 77a7834..5813757 100644 (file)
@@ -70,7 +70,7 @@ typedef struct _gcsDEVICE_CONSTRUCT_ARGS
     gctBOOL             mmu;
     gctBOOL             registerMemMapped;
     gctPOINTER             registerMemAddress;
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
     gctUINT32           registerMemBaseDEC300;
     gctSIZE_T           registerMemSizeDEC300;
 #endif
index d427285..6386484 100644 (file)
@@ -113,7 +113,7 @@ static ulong registerMemSizeVG = 2 << 10;
 module_param(registerMemSizeVG, ulong, 0644);
 MODULE_PARM_DESC(registerMemSizeVG, "Size of bus address range of VG core");
 
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
 static ulong registerMemBaseDEC300 = 0x00000000;
 module_param(registerMemBaseDEC300, ulong, 0644);
 
@@ -305,7 +305,7 @@ gckOS_DumpParam(
         printk("  registerMemSizeVG = 0x%08lX\n", registerMemSizeVG);
     }
 
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
     printk("  registerMemBaseDEC300 = 0x%08lX\n", registerMemBaseDEC300);
     printk("  registerMemSizeDEC300 = 0x%08lX\n", registerMemSizeDEC300);
 #endif
@@ -682,6 +682,9 @@ long drv_ioctl(
             }
         }
 
+        if(i == gcvCORE_COUNT)
+            goto OnError;
+
         gckOS_GetProcessID(&processID);
 
         gcmkONERROR(gckVIDMEM_HANDLE_Lookup(device->kernels[i],
@@ -852,7 +855,7 @@ static int drv_init(void)
         .mmu                = mmu,
         .registerMemMapped = registerMemMapped,
         .registerMemAddress = registerMemAddress,
-#if gcdENABLE_DEC_COMPRESSION
+#if gcdDEC_ENABLE_AHB
         .registerMemBaseDEC300 = registerMemBaseDEC300,
         .registerMemSizeDEC300 = registerMemSizeDEC300,
 #endif
index 458cf18..a0932b3 100644 (file)
 #include "gc_hal_kernel_sync.h"
 #endif
 
+#if defined(CONFIG_ARM) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
+#include <dma.h>
+#endif
+
 #define _GC_OBJ_ZONE    gcvZONE_OS
 
 #include "gc_hal_kernel_allocator.h"
@@ -3566,7 +3570,8 @@ gckOS_MapPagesEx(
     IN gctSIZE_T PageCount,
     IN gctUINT32 Address,
     IN gctPOINTER PageTable,
-    IN gctBOOL Writable
+    IN gctBOOL Writable,
+    IN gceSURF_TYPE Type
     )
 {
     gceSTATUS status = gcvSTATUS_OK;
@@ -3586,6 +3591,11 @@ gckOS_MapPagesEx(
 #endif
     gckALLOCATOR allocator;
 
+    gctUINT32 policyID = 0;
+    gctUINT32 axiConfig = 0;
+
+    gcsPLATFORM * platform = Os->device->platform;
+
     gcmkHEADER_ARG("Os=0x%X Core=%d Physical=0x%X PageCount=%u PageTable=0x%X",
                    Os, Core, Physical, PageCount, PageTable);
 
@@ -3621,6 +3631,16 @@ gckOS_MapPagesEx(
     mmuMdl = (PLINUX_MDL)mmu->pageTablePhysical;
 #endif
 
+    if (platform && platform->ops->getPolicyID)
+    {
+        platform->ops->getPolicyID(platform, Type, &policyID, &axiConfig);
+
+        gcmkBUG_ON(policyID > 0x1F, __FUNCTION__, __LINE__);
+
+        /* ID[3:0] is used in STLB. */
+        policyID &= 0xF;
+    }
+
      /* Get all the physical addresses and store them in the page table. */
 
     offset = 0;
@@ -3636,6 +3656,15 @@ gckOS_MapPagesEx(
 
         gcmkVERIFY_OK(gckOS_CPUPhysicalToGPUPhysical(Os, phys, &phys));
 
+        if (policyID)
+        {
+            /* AxUSER must not used for address currently. */
+            gcmkBUG_ON((phys >> 32) & 0xF, __FUNCTION__, __LINE__);
+
+            /* Merge policyID to AxUSER[7:4].*/
+            phys |= ((gctPHYS_ADDR_T)policyID << 36);
+        }
+
 #ifdef CONFIG_IOMMU_SUPPORT
         if (Os->iommu)
         {
@@ -4615,6 +4644,27 @@ gckOS_ZeroMemory(
 **      gctSIZE_T Bytes
 **          Size of the address range in bytes to flush.
 */
+
+/*
+
+Following patch can be applied to kernel in case cache API is not exported.
+
+diff --git a/arch/arm/mm/proc-syms.c b/arch/arm/mm/proc-syms.c
+index 054b491..e9e74ec 100644
+--- a/arch/arm/mm/proc-syms.c
++++ b/arch/arm/mm/proc-syms.c
+@@ -30,6 +30,9 @@ EXPORT_SYMBOL(__cpuc_flush_user_all);
+ EXPORT_SYMBOL(__cpuc_flush_user_range);
+ EXPORT_SYMBOL(__cpuc_coherent_kern_range);
+ EXPORT_SYMBOL(__cpuc_flush_dcache_area);
++EXPORT_SYMBOL(__glue(_CACHE,_dma_map_area));
++EXPORT_SYMBOL(__glue(_CACHE,_dma_unmap_area));
++EXPORT_SYMBOL(__glue(_CACHE,_dma_flush_range));
+ #else
+ EXPORT_SYMBOL(cpu_cache);
+ #endif
+
+*/
 gceSTATUS
 gckOS_CacheClean(
     IN gckOS Os,
@@ -4655,8 +4705,9 @@ gckOS_CacheClean(
     }
 
 #if !gcdCACHE_FUNCTION_UNIMPLEMENTED
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
 
+#if defined (CONFIG_ARM)
     /* Inner cache. */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
     dmac_flush_range(Logical, Logical + Bytes);
@@ -4664,15 +4715,9 @@ gckOS_CacheClean(
     dmac_clean_range(Logical, Logical + Bytes);
 #      endif
 
-#if defined(CONFIG_OUTER_CACHE)
-    /* Outer cache. */
-    _HandleOuterCache(Os, Physical, Logical, Bytes, gcvCACHE_CLEAN);
-#endif
-
 #elif defined(CONFIG_ARM64)
-
-    /* Inner cache. */
     __dma_map_area(Logical, Bytes, DMA_TO_DEVICE);
+#endif
 
 #if defined(CONFIG_OUTER_CACHE)
     /* Outer cache. */
@@ -4765,24 +4810,18 @@ gckOS_CacheInvalidate(
     }
 
 #if !gcdCACHE_FUNCTION_UNIMPLEMENTED
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
 
+#if defined (CONFIG_ARM)
     /* Inner cache. */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
     dmac_flush_range(Logical, Logical + Bytes);
 #      else
     dmac_inv_range(Logical, Logical + Bytes);
 #      endif
-
-#if defined(CONFIG_OUTER_CACHE)
-    /* Outer cache. */
-    _HandleOuterCache(Os, Physical, Logical, Bytes, gcvCACHE_INVALIDATE);
-#endif
-
-#elif defined(CONFIG_MIPS)
-
-    /* Inner cache. */
+#elif defined(CONFIG_ARM64)
     __dma_map_area(Logical, Bytes, DMA_FROM_DEVICE);
+#endif
 
 #if defined(CONFIG_OUTER_CACHE)
     /* Outer cache. */
@@ -4871,18 +4910,13 @@ gckOS_CacheFlush(
     }
 
 #if !gcdCACHE_FUNCTION_UNIMPLEMENTED
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+#if defined (CONFIG_ARM)
     /* Inner cache. */
     dmac_flush_range(Logical, Logical + Bytes);
-
-#if defined(CONFIG_OUTER_CACHE)
-    /* Outer cache. */
-    _HandleOuterCache(Os, Physical, Logical, Bytes, gcvCACHE_FLUSH);
-#endif
-
-#elif defined(CONFIG_ARM64)
-    /* Inner cache. */
+#elif defined (CONFIG_ARM64)
     __dma_flush_range(Logical, Logical + Bytes);
+#endif
 
 #if defined(CONFIG_OUTER_CACHE)
     /* Outer cache. */
@@ -5213,8 +5247,6 @@ gckOS_AcquireSemaphore(
     IN gctPOINTER Semaphore
     )
 {
-    gceSTATUS status;
-
     gcmkHEADER_ARG("Os=0x%08X Semaphore=0x%08X", Os, Semaphore);
 
     /* Verify the arguments. */
@@ -5222,19 +5254,11 @@ gckOS_AcquireSemaphore(
     gcmkVERIFY_ARGUMENT(Semaphore != gcvNULL);
 
     /* Acquire the semaphore. */
-    if (down_interruptible((struct semaphore *) Semaphore))
-    {
-        gcmkONERROR(gcvSTATUS_INTERRUPTED);
-    }
+    down((struct semaphore *) Semaphore);
 
     /* Success. */
     gcmkFOOTER_NO();
     return gcvSTATUS_OK;
-
-OnError:
-    /* Return the status. */
-    gcmkFOOTER();
-    return status;
 }
 
 /*******************************************************************************
@@ -6113,6 +6137,7 @@ gceSTATUS
 gckOS_WaitSignal(
     IN gckOS Os,
     IN gctSIGNAL Signal,
+    IN gctBOOL Interruptable,
     IN gctUINT32 Wait
     )
 {
@@ -6159,7 +6184,7 @@ gckOS_WaitSignal(
 
         while (gcvTRUE)
         {
-            if (signal_pending(current))
+            if (Interruptable && signal_pending(current))
             {
                 /* Interrupt received. */
                 status = gcvSTATUS_INTERRUPTED;
@@ -6376,7 +6401,7 @@ gckOS_WaitUserSignal(
     IN gctUINT32 Wait
     )
 {
-    return gckOS_WaitSignal(Os, (gctSIGNAL)(gctUINTPTR_T)SignalID, Wait);
+    return gckOS_WaitSignal(Os, (gctSIGNAL)(gctUINTPTR_T)SignalID, gcvTRUE, Wait);
 }
 
 /*******************************************************************************
@@ -7311,6 +7336,16 @@ OnError:
     return status;
 }
 
+static void
+_NativeFenceSignaled(
+    struct sync_fence *fence,
+    struct sync_fence_waiter *waiter
+    )
+{
+    kfree(waiter);
+    sync_fence_put(fence);
+}
+
 gceSTATUS
 gckOS_WaitNativeFence(
     IN gckOS Os,
@@ -7321,7 +7356,7 @@ gckOS_WaitNativeFence(
 {
     struct sync_timeline * timeline;
     struct sync_fence * fence;
-    gctBOOL wait = gcvFALSE;
+    gctBOOL wait;
     gceSTATUS status = gcvSTATUS_OK;
 
     gcmkHEADER_ARG("Os=0x%X Timeline=0x%X FenceFD=%d Timeout=%u",
@@ -7338,6 +7373,17 @@ gckOS_WaitNativeFence(
         gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
     }
 
+    if (sync_fence_wait(fence, 0) == 0)
+    {
+        /* Already signaled. */
+        sync_fence_put(fence);
+
+        gcmkFOOTER_NO();
+        return gcvSTATUS_OK;
+    }
+
+    wait = gcvFALSE;
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
     {
         int i;
@@ -7379,6 +7425,9 @@ gckOS_WaitNativeFence(
         long timeout = (Timeout == gcvINFINITE) ? - 1 : (long) Timeout;
         err = sync_fence_wait(fence, timeout);
 
+        /* Put the fence. */
+        sync_fence_put(fence);
+
         switch (err)
         {
         case 0:
@@ -7387,13 +7436,45 @@ gckOS_WaitNativeFence(
             status = gcvSTATUS_TIMEOUT;
             break;
         default:
-            status = gcvSTATUS_GENERIC_IO;
+            gcmkONERROR(gcvSTATUS_GENERIC_IO);
             break;
         }
     }
+    else
+    {
+        int err;
+        struct sync_fence_waiter *waiter;
+        waiter = (struct sync_fence_waiter *)kmalloc(
+                sizeof (struct sync_fence_waiter), gcdNOWARN | GFP_KERNEL);
 
-    /* Put the fence. */
-    sync_fence_put(fence);
+        if (!waiter)
+        {
+            sync_fence_put(fence);
+            gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
+        }
+
+        /* Schedule a waiter callback. */
+        sync_fence_waiter_init(waiter, _NativeFenceSignaled);
+        err = sync_fence_wait_async(fence, waiter);
+
+        switch (err)
+        {
+        case 0:
+            /* Put fence in callback function. */
+            break;
+        case 1:
+            /* already signaled. */
+            sync_fence_put(fence);
+            break;
+        default:
+            sync_fence_put(fence);
+            gcmkONERROR(gcvSTATUS_GENERIC_IO);
+            break;
+        }
+    }
+
+    gcmkFOOTER_NO();
+    return gcvSTATUS_OK;
 
 OnError:
     gcmkFOOTER();
@@ -7787,3 +7868,21 @@ OnError:
     return status;
 }
 
+gceSTATUS
+gckOS_GetPolicyID(
+    IN gckOS Os,
+    IN gceSURF_TYPE Type,
+    OUT gctUINT32_PTR PolicyID,
+    OUT gctUINT32_PTR AXIConfig
+    )
+{
+    gcsPLATFORM * platform = Os->device->platform;
+
+    if (platform && platform->ops->getPolicyID)
+    {
+        return platform->ops->getPolicyID(platform, Type, PolicyID, AXIConfig);
+    }
+
+    return gcvSTATUS_NOT_SUPPORTED;
+}
+
index 24e22b4..90f68db 100644 (file)
@@ -318,6 +318,19 @@ typedef struct _gcsPLATFORM_OPERATIONS
         IN gctCONST_STRING * Name
         );
 
+    /*******************************************************************************
+    **
+    ** getPolicyID
+    **
+    ** Get policyID for a specified surface type.
+    */
+    gceSTATUS
+    (*getPolicyID)(
+        IN gckPLATFORM Platform,
+        IN gceSURF_TYPE Type,
+        OUT gctUINT32_PTR PolicyID,
+        OUT gctUINT32_PTR AXIConfig
+        );
 }
 gcsPLATFORM_OPERATIONS;
 
index 6f52c12..108de03 100644 (file)
@@ -145,7 +145,7 @@ task_notify_func(struct notifier_block *self, unsigned long val, void *data)
     if (task == lowmem_deathpending)
         lowmem_deathpending = NULL;
 
-    return NOTIFY_OK;
+    return NOTIFY_DONE;
 }
 
 extern struct task_struct *lowmem_deathpending;
@@ -512,8 +512,17 @@ gckPLATFORM_AdjustParam(
     Args->gpu3DMinClock = initgpu3DMinClock;
 
     if(Args->physSize == 0)
+    {
+#if IMX8_PHYS_SIZE
+        Args->physSize = IMX8_PHYS_SIZE;
+#else
         Args->physSize = 0x80000000;
+#endif
+    }
 
+#if IMX8_DISABLE_PM
+ Args->powerManagement = 0;
+#endif
 
     return gcvSTATUS_OK;
 }
@@ -527,7 +536,7 @@ _AllocPriv(
 
 #ifdef CONFIG_GPU_LOW_MEMORY_KILLER
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0)
-     task_free_register(&task_nb);
+    task_free_register(&task_nb);
 #else
     task_handoff_register(&task_nb);
 #endif
@@ -920,7 +929,7 @@ _SetClock(
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
 #ifdef CONFIG_PM
-#ifndef CONFIG_ARM64
+#ifdef CONFIG_PM_RUNTIME
 static int gpu_runtime_suspend(struct device *dev)
 {
     release_bus_freq(BUS_FREQ_HIGH);
@@ -932,11 +941,11 @@ static int gpu_runtime_resume(struct device *dev)
     request_bus_freq(BUS_FREQ_HIGH);
     return 0;
 }
+#endif
 
 static struct dev_pm_ops gpu_pm_ops;
 #endif
 #endif
-#endif
 
 gceSTATUS
 _AdjustDriver(
@@ -954,21 +963,19 @@ _AdjustDriver(
 #ifdef CONFIG_PM
     /* Override PM callbacks to add runtime PM callbacks. */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
-#ifdef CONFIG_PM
-#ifndef CONFIG_ARM64
     /* Fill local structure with original value. */
     memcpy(&gpu_pm_ops, driver->driver.pm, sizeof(struct dev_pm_ops));
 
     /* Add runtime PM callback. */
+#ifdef CONFIG_PM_RUNTIME
     gpu_pm_ops.runtime_suspend = gpu_runtime_suspend;
     gpu_pm_ops.runtime_resume = gpu_runtime_resume;
     gpu_pm_ops.runtime_idle = NULL;
+#endif
 
     /* Replace callbacks. */
     driver->driver.pm = &gpu_pm_ops;
 #endif
-#endif
-#endif
 #endif
 
     return gcvSTATUS_OK;
index 119713f..51c5c59 100644 (file)
@@ -3,7 +3,7 @@ EXTRA_CFLAGS += -DgcdFSL_CONTIGUOUS_SIZE=134217728
 
 ifneq ($(CONFIG_ANDROID),)
 # build for android
-EXTRA_CFLAGS += -DgcdANDROID_NATIVE_FENCE_SYNC=3
+EXTRA_CFLAGS += -DgcdANDROID_NATIVE_FENCE_SYNC=2
 
 ifeq ($(CONFIG_SYNC),)
 $(warn CONFIG_SYNC is not set in kernel config)
@@ -12,9 +12,9 @@ endif
 endif
 
 ifneq ($(CONFIG_ARCH_FSL_IMX8DV),)
-EXTRA_CFLAGS += -DIMX8_SCU_CONTROL=1
+EXTRA_CFLAGS += -DIMX8_SCU_CONTROL=1 -DIMX8_DISABLE_PM=1 -DIMX8_PHYS_SIZE=0xB4000000
 else
-EXTRA_CFLAGS += -DIMX8_SCU_CONTROL=0
+EXTRA_CFLAGS += -DIMX8_SCU_CONTROL=0 -DIMX8_DISABLE_PM=0  -DIMX8_PHYS_SIZE=0
 endif
 
 EXTRA_CFLAGS += -DLINUX_CMA_FSL=1