summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
authorXianzhong <xianzhong.li@nxp.com>2016-07-26 15:58:43 +0800
committerXianzhong <xianzhong.li@nxp.com>2016-07-26 15:58:43 +0800
commit14a99edb5b8d454de5e98cf6bc34370bac211d69 (patch)
tree22edf815f4b4ab4896035a5163962f78235caa9d /drivers/mxc
parent23d301ab6a3f24799800b5450741d4f69b0ce920 (diff)
MGS-2027 [#ccc] integrate 6.1.1 gpu kernel driver
Integrate gpu kernel driver part for 6.1.1 release Date: Jul 26, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Diffstat (limited to 'drivers/mxc')
-rw-r--r--drivers/mxc/gpu-viv/Kbuild4
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c681
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h1
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c1
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c117
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h4
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c44
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c2
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c18
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c68
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c8
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h5702
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h13
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h15
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h30
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h77
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h2
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h7
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h59
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h26
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h33
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h8
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c5
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c7
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c212
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c6
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h2
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c9
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c189
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h13
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c23
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config6
36 files changed, 7041 insertions, 371 deletions
diff --git a/drivers/mxc/gpu-viv/Kbuild b/drivers/mxc/gpu-viv/Kbuild
index 85b22655e2f1..5eb49db2ca11 100644
--- a/drivers/mxc/gpu-viv/Kbuild
+++ b/drivers/mxc/gpu-viv/Kbuild
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
index 0509539e9a0b..3228a4549020 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
index f4ff38b81d73..ba8265885c5b 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
@@ -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;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
index 3e476fd9ae78..0cf12da75ed2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
@@ -332,6 +332,7 @@ gckHARDWARE_DummyDraw(
IN gckHARDWARE Hardware,
IN gctPOINTER Logical,
IN gctUINT32 Address,
+ IN gceDUMMY_DRAW_TYPE DummyDrawType,
IN OUT gctUINT32 * Bytes
);
diff --git a/drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c b/drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
index a9abb235864c..874b55c2e285 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
@@ -1630,6 +1630,7 @@ static gceSTATUS _CommandStall(
gcmkERR_BREAK(gckOS_WaitSignal(
command->os,
command->powerStallSignal,
+ gcvTRUE,
command->kernel->kernel->timeOut));
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
index 2519729f1e2d..bbd8e5829a06 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
@@ -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;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
index 2c17df12c05b..d528c8da863d 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
@@ -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;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
index fbd08e611a55..d64948d84a24 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
@@ -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)
{
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
index c28eee063667..03e9cc004c4e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
@@ -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();
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
index 9931ce1722ec..784d7f0f229d 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
index 37995ad3484a..5df1a13f3b7a 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
@@ -252,6 +252,67 @@ gceSTATUS gckVGKERNEL_Destroy(
/*******************************************************************************
**
+** 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
**
** Dispatch a command received from the user HAL layer.
@@ -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:
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
index be453ca0e144..9a1b5afdd7e8 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
index 7560ff4007e6..47bc3ef6190c 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
@@ -53,7 +53,7 @@
*****************************************************************************/
-/*Auto created on 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,9 +426,394 @@ 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[] = {
+ /* gc200_4650 */
+ {
+ 0x200, /* ChipID */
+ 0x4650, /* 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 */
+ 0x0, /* 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_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 */
+ 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 */
+ 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 */
+ 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 */
+ 0x0, /* 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ },
/* gc255_v132x */
{
0x255, /* ChipID */
@@ -781,6 +1167,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 */
@@ -795,6 +1182,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 */
},
/* gc255_v133x */
{
@@ -1149,6 +1544,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 */
@@ -1163,6 +1559,768 @@ 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_2001_reneas */
+ {
+ 0x255, /* ChipID */
+ 0x2001, /* ChipRevision */
+ 0x3000006, /* ProductID */
+ 0x0, /* EcoID */
+ 0x400, /* 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 */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_ZCompression */
+ 0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+ 0x1, /* gcFEATURE_BIT_REG_MSAA */
+ 0x0, /* gcFEATURE_BIT_REG_DC */
+ 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 */
+ 0x1, /* 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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_REG_Texture8K */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+ 0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+ 0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+ 0x0, /* gcFEATURE_BIT_REG_VGFilter */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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_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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ },
+ /* gc255_2001_geosemi */
+ {
+ 0x255, /* ChipID */
+ 0x2001, /* ChipRevision */
+ 0x3000006, /* ProductID */
+ 0x0, /* EcoID */
+ 0x401, /* 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 */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_ZCompression */
+ 0x0, /* gcFEATURE_BIT_REG_YUV420Filter */
+ 0x1, /* gcFEATURE_BIT_REG_MSAA */
+ 0x0, /* gcFEATURE_BIT_REG_DC */
+ 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 */
+ 0x1, /* 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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_REG_Texture8K */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_TSExtendedCommands */
+ 0x0, /* gcFEATURE_BIT_REG_CompressionFifoFixed */
+ 0x0, /* gcFEATURE_BIT_REG_ExtraShaderInstructions0 */
+ 0x0, /* gcFEATURE_BIT_REG_VGFilter */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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_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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
},
/* gc300_4650 */
{
@@ -1517,6 +2675,384 @@ 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 */
+ 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 */
+ },
+ /* gc300_4650_guoke */
+ {
+ 0x300, /* ChipID */
+ 0x4650, /* ChipRevision */
+ 0x0, /* ProductID */
+ 0x0, /* EcoID */
+ 0x0, /* CustomerID */
+ 0x4, /* PatchVersion */
+ 0x1, /* 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
@@ -1531,6 +3067,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 */
},
/* gc300_4_6_6_rc0 */
{
@@ -1885,6 +3429,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 */
0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -1899,6 +3444,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 */
},
/* gc320_5007 */
{
@@ -2253,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 */
@@ -2267,6 +3821,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 */
},
/* gc320_5220 */
{
@@ -2621,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 */
@@ -2635,6 +4198,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 */
},
/* gc320_5303 */
{
@@ -2989,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 */
@@ -3003,6 +4575,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 */
},
/* gc320_5303_1 */
{
@@ -3357,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 */
@@ -3371,6 +4952,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 */
},
/* gc320_5340 */
{
@@ -3725,6 +5314,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,6 +5329,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 */
},
/* gc320c_5341 */
{
@@ -4093,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 */
@@ -4107,6 +5706,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 */
},
/* gc320_5341 */
{
@@ -4461,6 +6068,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,6 +6083,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 */
},
/* gc355_v121_rc5 */
{
@@ -4829,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 */
@@ -4843,6 +6460,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 */
},
/* gc355_v121x */
{
@@ -5197,6 +6822,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 */
@@ -5211,6 +6837,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 */
},
/* gc400_4633 */
{
@@ -5565,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 */
@@ -5579,6 +7214,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 */
},
/* gc400_4645 */
{
@@ -5933,6 +7576,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 */
0x1, /* gcFEATURE_BIT_FE_NEED_DUMMYDRAW */
0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
0x0, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -5947,6 +7591,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 */
},
/* gc400L_0x465x */
{
@@ -6301,6 +7953,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,6 +7968,768 @@ 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 */
+ },
+ /* 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 */
{
@@ -6669,6 +9084,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 */
@@ -6683,6 +9099,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 */
},
/* gc420_5336 */
{
@@ -7037,6 +9461,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,6 +9476,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 */
},
/* gc420cpd_533rc7a */
{
@@ -7405,6 +9838,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 */
@@ -7419,6 +9853,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 */
},
/* gc428_5421 */
{
@@ -7773,6 +10215,384 @@ 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 */
+ 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 */
@@ -7787,6 +10607,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 */
},
/* gc520_5341 */
{
@@ -8141,6 +10969,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,6 +10984,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 */
},
/* gc520l_5_3_4_rc2b */
{
@@ -8509,6 +11346,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,6 +11361,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 */
},
/* gc520c_5_5_0 */
{
@@ -8877,6 +11723,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 */
@@ -8891,6 +11738,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 */
},
/* gc520sp_5_5_2_rc0a */
{
@@ -9245,6 +12100,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 */
@@ -9259,6 +12115,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 */
},
/* gc520_5_5_3_rc2a */
{
@@ -9613,6 +12477,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 */
@@ -9627,6 +12492,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 */
},
/* gc600L_0x465x */
{
@@ -9981,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 */
@@ -9995,6 +12869,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 */
},
/* gc7000nanoultra_4_6_5_rc3a */
{
@@ -10004,7 +12886,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* EcoID */
0x0, /* CustomerID */
0x1, /* PatchVersion */
- 0x0, /* FormalRelease */
+ 0x1, /* FormalRelease */
0x4, /* gcFEATURE_VALUE_Streams */
0x40, /* gcFEATURE_VALUE_TempRegisters */
0x100, /* gcFEATURE_VALUE_ThreadCount */
@@ -10349,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 */
@@ -10363,6 +13246,391 @@ 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_rc3b */
+ {
+ 0x600, /* ChipID */
+ 0x4653, /* ChipRevision */
+ 0x70005, /* ProductID */
+ 0x0, /* EcoID */
+ 0x101, /* CustomerID */
+ 0x2, /* PatchVersion */
+ 0x1, /* 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 */
+ 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_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 */
+ 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 */
+ 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 */
+ 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 */
},
/* gc620_5_5_3_rc0 */
{
@@ -10610,7 +13878,761 @@ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ },
+ /* gc620_5_5_5_rc0d */
+ {
+ 0x620, /* ChipID */
+ 0x5550, /* ChipRevision */
+ 0x6200, /* ProductID */
+ 0x0, /* EcoID */
+ 0x201, /* CustomerID */
+ 0x4, /* 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ },
+ /* gc620tpc_5_5_6_rc0a */
+ {
+ 0x620, /* ChipID */
+ 0x5560, /* ChipRevision */
+ 0x6200, /* ProductID */
+ 0x0, /* EcoID */
+ 0x200, /* 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 */
+ 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 */
+ 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 */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_ThirdPartyCompression */
0x0, /* gcFEATURE_BIT_REG_RSS8 */
0x0, /* gcFEATURE_BIT_REG_MSAACoherencyCheck */
0x0, /* gcFEATURE_BIT_REG_Halti5 */
@@ -10717,6 +14739,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 */
0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_OUTPUT */
0x1, /* gcFEATURE_BIT_PE2D_LINEAR_YUV420_10BIT */
@@ -10731,6 +14754,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 */
+ 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 */
},
/* gc860L_0x464x */
{
@@ -11085,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 */
@@ -11099,6 +15131,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 */
},
/* gc880_5106 */
{
@@ -11453,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 */
@@ -11467,6 +15508,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 */
},
/* gc880_5122 */
{
@@ -11821,6 +15870,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,6 +15885,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 */
},
/* gc880TM_0x512x */
{
@@ -12189,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 */
@@ -12203,6 +16262,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 */
},
/* gc900_5250 */
{
@@ -12557,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 */
@@ -12571,6 +16639,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 */
},
/* gc1000_5036 */
{
@@ -12925,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 */
@@ -12939,6 +17016,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 */
},
/* gc1000_5037 */
{
@@ -13293,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 */
@@ -13307,6 +17393,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 */
},
/* gc1000_5037_1 */
{
@@ -13661,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 */
@@ -13675,6 +17770,391 @@ 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_5039 */
+ {
+ 0x1000, /* ChipID */
+ 0x5039, /* ChipRevision */
+ 0x0, /* ProductID */
+ 0x0, /* EcoID */
+ 0x0, /* CustomerID */
+ 0x11, /* PatchVersion */
+ 0x1, /* FormalRelease */
+ 0x4, /* gcFEATURE_VALUE_Streams */
+ 0x40, /* gcFEATURE_VALUE_TempRegisters */
+ 0x200, /* gcFEATURE_VALUE_ThreadCount */
+ 0x8, /* 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 */
+ 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 */
+ 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_MSAA */
+ 0x0, /* gcFEATURE_BIT_REG_DC */
+ 0x0, /* gcFEATURE_BIT_REG_Pipe2D */
+ 0x1, /* gcFEATURE_BIT_REG_ETC1TextureCompression */
+ 0x1, /* 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 */
+ 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 */
+ 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 */
+ 0x1, /* 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 */
+ 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_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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
},
/* gc1500_5246 */
{
@@ -14029,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 */
@@ -14043,6 +18524,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_5108 */
{
@@ -14397,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 */
@@ -14411,6 +18901,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_5140 */
{
@@ -14765,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 */
@@ -14779,6 +19278,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 */
},
/* gc2000w_5_1_4_rc0e */
{
@@ -14918,7 +19425,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 */
0x0, /* gcFEATURE_BIT_REG_OnePass2DFilter */
@@ -15133,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 */
@@ -15147,15 +19655,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_ffff5450 */
+ /* gc2500_5422 */
{
- 0x2000, /* ChipID */
- 0xffff5450, /* ChipRevision */
+ 0x2500, /* ChipID */
+ 0x5422, /* ChipRevision */
0x0, /* ProductID */
0x0, /* EcoID */
0x0, /* CustomerID */
- 0x8, /* PatchVersion */
+ 0x12, /* PatchVersion */
0x1, /* FormalRelease */
0x10, /* gcFEATURE_VALUE_Streams */
0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -15168,7 +19684,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x200, /* gcFEATURE_VALUE_InstructionCount */
0x140, /* gcFEATURE_VALUE_NumberOfConstants */
0x1, /* gcFEATURE_VALUE_CoreCount */
- 0x10, /* gcFEATURE_VALUE_VaryingCount */
+ 0xf, /* gcFEATURE_VALUE_VaryingCount */
0x0, /* gcFEATURE_VALUE_LocalStorageSize */
0x4, /* gcFEATURE_VALUE_L1CacheSize */
0x200, /* gcFEATURE_VALUE_InstructionMemorySize */
@@ -15372,11 +19888,11 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 */
+ 0x0, /* gcFEATURE_BIT_REG_BugFixes22 */
0x0, /* gcFEATURE_BIT_REG_Halti3 */
0x0, /* gcFEATURE_BIT_REG_TessellationShaders */
0x0, /* gcFEATURE_BIT_REG_OPF9Tap */
@@ -15488,7 +20004,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 */
@@ -15501,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 */
@@ -15515,6 +20032,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 */
},
/* gc3000_5435 */
{
@@ -15869,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 */
@@ -15883,11 +20409,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 */
},
- /* gc3000_5450 */
+ /* gc2000_ffff5450 */
{
- 0x3000, /* ChipID */
- 0x5450, /* ChipRevision */
+ 0x2000, /* ChipID */
+ 0xffff5450, /* ChipRevision */
0x0, /* ProductID */
0x0, /* EcoID */
0x0, /* CustomerID */
@@ -16237,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 */
@@ -16251,11 +20786,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 */
},
- /* gc3000_5451 */
+ /* gc3000_5450 */
{
0x3000, /* ChipID */
- 0x5451, /* ChipRevision */
+ 0x5450, /* ChipRevision */
0x0, /* ProductID */
0x0, /* EcoID */
0x0, /* CustomerID */
@@ -16605,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 */
@@ -16619,6 +21163,391 @@ 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 */
+ {
+ 0x3000, /* ChipID */
+ 0x5451, /* ChipRevision */
+ 0x0, /* ProductID */
+ 0x0, /* EcoID */
+ 0x0, /* CustomerID */
+ 0x4, /* PatchVersion */
+ 0x1, /* FormalRelease */
+ 0x10, /* 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 */
+ 0x0, /* gcFEATURE_VALUE_BufferSize */
+ 0x200, /* gcFEATURE_VALUE_InstructionCount */
+ 0x140, /* gcFEATURE_VALUE_NumberOfConstants */
+ 0x1, /* gcFEATURE_VALUE_CoreCount */
+ 0x10, /* gcFEATURE_VALUE_VaryingCount */
+ 0x0, /* gcFEATURE_VALUE_LocalStorageSize */
+ 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 */
+ 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_MSAA */
+ 0x0, /* gcFEATURE_BIT_REG_DC */
+ 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 */
+ 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 */
+ 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 */
+ 0x1, /* 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 */
+ 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_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 */
+ 0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+ 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 */
+ 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 */
+ 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_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 */
+ 0x1, /* gcFEATURE_BIT_REG_PESwizzle */
+ 0x1, /* gcFEATURE_BIT_REG_EndEvent */
+ 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 */
+ 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_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 */
+ 0x1, /* 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_GeometryShader */
+ 0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+ 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 */
+ 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 */
+ 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 */
+ 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 */
+ 0x1, /* 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_DEEnhancements5 */
+ 0x1, /* gcFEATURE_BIT_REG_TXEnhancements4 */
+ 0x0, /* gcFEATURE_BIT_REG_PEEnhancements4 */
+ 0x0, /* 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_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_Compression2D */
+ 0x0, /* 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_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_ExtraVgCaps */
+ 0x0, /* gcFEATURE_BIT_REG_MultiSrcV15 */
+ 0x1, /* 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 */
+ 0x1, /* gcFEATURE_BIT_REG_TXSupportDEC */
+ 0x0, /* gcFEATURE_BIT_REG_S8MSAACompression */
+ 0x0, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+ 0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+ 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 */
+ 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_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 */
+ 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 */
+ 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 */
},
/* gc7000L_551x */
{
@@ -16973,6 +21902,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,6 +21917,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 */
+ 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 */
{
@@ -17341,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 */
@@ -17355,6 +22294,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 */
+ 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 */
},
/* gc4000_5222 */
{
@@ -17709,6 +22656,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,6 +22671,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 */
},
/* gc4000_5245 */
{
@@ -18077,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 */
@@ -18091,6 +23048,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 */
},
/* gc5000_5434 */
{
@@ -18445,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 */
@@ -18459,6 +23425,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 */
},
/* gc7000_551x */
{
@@ -18813,6 +23787,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,6 +23802,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 */
+ 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 */
{
@@ -19181,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 */
@@ -19195,6 +24179,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 */
+ 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 */
{
@@ -19549,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 */
@@ -19563,6 +24556,14 @@ 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 */
{
@@ -19917,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 */
@@ -19931,6 +24933,14 @@ 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 */
{
@@ -20285,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 */
@@ -20299,6 +25310,14 @@ 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 */
{
@@ -20653,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 */
@@ -20667,6 +25687,14 @@ 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 */
{
@@ -20675,7 +25703,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x70008, /* ProductID */
0x0, /* EcoID */
0x0, /* CustomerID */
- 0x0, /* PatchVersion */
+ 0x7, /* PatchVersion */
0x1, /* FormalRelease */
0x10, /* gcFEATURE_VALUE_Streams */
0x40, /* gcFEATURE_VALUE_TempRegisters */
@@ -21021,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 */
@@ -21035,6 +26064,14 @@ 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 */
{
@@ -21389,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 */
@@ -21403,6 +26441,14 @@ 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 */
{
@@ -21757,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 */
@@ -21771,6 +26818,14 @@ 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 */
{
@@ -22125,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 */
@@ -22139,6 +27195,14 @@ 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 */
{
@@ -22493,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 */
@@ -22507,6 +27572,14 @@ 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 */
{
@@ -22861,6 +27934,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,6 +27949,14 @@ 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 */
{
@@ -23229,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 */
@@ -23243,6 +28326,14 @@ 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 */
{
@@ -23597,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 */
@@ -23611,6 +28703,14 @@ 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 */
{
@@ -23965,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 */
@@ -23979,6 +29080,14 @@ 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 */
{
@@ -24333,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 */
@@ -24347,6 +29457,14 @@ 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 */
{
@@ -24701,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 */
@@ -24715,6 +29834,14 @@ 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 */
{
@@ -25069,6 +30196,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 */
@@ -25083,6 +30211,14 @@ 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 */
{
@@ -25437,6 +30573,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 */
@@ -25451,6 +30588,14 @@ 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 */
{
@@ -25472,13 +30617,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 +30870,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 +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 */
@@ -25771,24 +30916,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,6 +30950,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 */
@@ -25819,6 +30965,14 @@ 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_6200 */
{
@@ -26173,6 +31327,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,6 +31342,14 @@ 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 */
},
/* gc7000L_6200 */
{
@@ -26541,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 */
@@ -26555,6 +31719,14 @@ 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 */
{
@@ -26909,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 */
@@ -26923,6 +32096,14 @@ 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 */
{
@@ -27277,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 */
@@ -27291,6 +32473,14 @@ 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 */
{
@@ -27645,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 */
@@ -27659,6 +32850,14 @@ 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 */
{
@@ -27973,7 +33172,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
@@ -28013,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 */
@@ -28027,6 +33227,14 @@ 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 */
{
@@ -28381,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 */
@@ -28395,6 +33604,14 @@ 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_6210 */
{
@@ -28402,7 +33619,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x6210, /* ChipRevision */
0x70000, /* ProductID */
0x0, /* EcoID */
- 0x0, /* CustomerID */
+ 0x6, /* CustomerID */
0x0, /* PatchVersion */
0x0, /* FormalRelease */
0x10, /* gcFEATURE_VALUE_Streams */
@@ -28749,6 +33966,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,6 +33981,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
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 */
},
/* gc7000XS_6210 */
{
@@ -28770,7 +33996,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x6210, /* ChipRevision */
0x70004, /* ProductID */
0x0, /* EcoID */
- 0x0, /* CustomerID */
+ 0x8, /* CustomerID */
0x0, /* PatchVersion */
0x0, /* FormalRelease */
0x10, /* gcFEATURE_VALUE_Streams */
@@ -29117,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 */
@@ -29131,6 +34358,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 */
},
/* gc7000L_6210 */
{
@@ -29485,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 */
@@ -29499,6 +34735,14 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x1, /* gcFEATURE_BIT_SH_GPIPE_ACCESS_FULLTEMPS */
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 */
},
/* gc7000LXS_6210 */
{
@@ -29853,6 +35097,384 @@ 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 */
+ 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 */
+ 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 */
+ },
+ /* gc7000XSVX_6210 */
+ {
+ 0x7000, /* ChipID */
+ 0x6210, /* ChipRevision */
+ 0x70008, /* ProductID */
+ 0x0, /* EcoID */
+ 0x7, /* CustomerID */
+ 0x0, /* PatchVersion */
+ 0x0, /* FormalRelease */
+ 0x10, /* gcFEATURE_VALUE_Streams */
+ 0x40, /* gcFEATURE_VALUE_TempRegisters */
+ 0x800, /* gcFEATURE_VALUE_ThreadCount */
+ 0x10, /* gcFEATURE_VALUE_VertexCacheSize */
+ 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 */
+ 0x40, /* gcFEATURE_VALUE_LocalStorageSize */
+ 0x20, /* 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 */
+ 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_MSAA */
+ 0x0, /* gcFEATURE_BIT_REG_DC */
+ 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 */
+ 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 */
+ 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 */
+ 0x1, /* 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 */
+ 0x0, /* 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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_REG_HalfFloatPipe */
+ 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 */
+ 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 */
+ 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_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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_REG_DynamicFrequencyScaling */
+ 0x0, /* gcFEATURE_BIT_REG_TXFilter */
+ 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 */
+ 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 */
+ 0x0, /* gcFEATURE_BIT_REG_L2CacheFor2D420 */
+ 0x1, /* gcFEATURE_BIT_REG_BugFixes7 */
+ 0x0, /* gcFEATURE_BIT_REG_NoIndexPattern */
+ 0x1, /* 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 */
+ 0x1, /* gcFEATURE_BIT_REG_GeometryShader */
+ 0x1, /* gcFEATURE_BIT_REG_TexCompressionSupertiled */
+ 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 */
+ 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_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_DENoGamma */
+ 0x0, /* gcFEATURE_BIT_REG_PAEnhancements2 */
+ 0x0, /* gcFEATURE_BIT_REG_DEEnhancements4 */
+ 0x1, /* gcFEATURE_BIT_REG_PEEnhancements3 */
+ 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 */
+ 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_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_Compression2D */
+ 0x1, /* gcFEATURE_BIT_REG_Probe */
+ 0x1, /* gcFEATURE_BIT_REG_MediumPrecision */
+ 0x0, /* gcFEATURE_BIT_REG_DESupertile */
+ 0x1, /* gcFEATURE_BIT_REG_BugFixes19 */
+ 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 */
+ 0x1, /* 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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_REG_RAWriteDepth */
+ 0x0, /* gcFEATURE_BIT_REG_AndroidOnly */
+ 0x1, /* gcFEATURE_BIT_REG_HasChipProductReg */
+ 0x0, /* gcFEATURE_BIT_REG_TXSupportDEC */
+ 0x1, /* gcFEATURE_BIT_REG_S8MSAACompression */
+ 0x1, /* gcFEATURE_BIT_REG_BugFixesIn544 */
+ 0x0, /* gcFEATURE_BIT_REG_L2CacheRemove */
+ 0x1, /* gcFEATURE_BIT_REG_FEAllowRndVtxCnt */
+ 0x0, /* gcFEATURE_BIT_REG_CubeMapFL28 */
+ 0x1, /* gcFEATURE_BIT_REG_TX6bitFrac */
+ 0x1, /* gcFEATURE_BIT_REG_FEAllowStallPrefetchEng */
+ 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 */
+ 0x1, /* 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 */
+ 0x1, /* gcFEATURE_BIT_RA_HZEZ_CLOCK_CONTROL */
+ 0x1, /* gcFEATURE_BIT_CACHE128B256BPERLINE */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_MSAA_SHADING */
+ 0x0, /* gcFEATURE_BIT_NO_ANISTRO_FILTER */
+ 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 */
+ 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 */
+ 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_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 */
+ 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 */
+ 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 */
+ 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 */
+ 0x1, /* gcFEATURE_BIT_RSBLT_MSAA_DECOMPRESSION */
+ 0x0, /* 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_VG_RESOLVE_ENGINE */
+ 0x0, /* gcFEATURE_BIT_VG_PE_COLOR_KEY */
+ 0x0, /* gcFEATURE_BIT_VG_IM_INDEX_FORMAT */
+ 0x1, /* 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 */
+ 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 */
+ 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 */
+ 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 */
},
};
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
index dc01098226b2..77f8f5e18e88 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
@@ -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
);
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
index 405b60079d31..f3bda192cf0d 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
index bb6763a61795..767ad454c232 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
@@ -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;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
index 0e4c4301cc36..d05b38ac8c7a 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
@@ -56,10 +56,8 @@
#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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
index 13cd64022369..39bc31b38e24 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
@@ -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;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
index 0882d255a830..4d93eebc1219 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
index d407c72d1bd2..dad383b7cb79 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
index 908cbbd6fd2b..7cd21247e1ba 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
@@ -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_ */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
index 90188082a495..d8155de02b84 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
@@ -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
);
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
index 5b3db21cd048..3ac4dc14c236 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
@@ -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__)
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
index 5887e8164942..07ff0714f000 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
@@ -60,10 +60,10 @@
#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_ */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
index 220351c9b157..fc271f09938b 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
@@ -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(
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
index f46bca6beb4d..e3de0774f80b 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
@@ -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;
}
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
index 32abdc9080c3..27d859703c82 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
@@ -456,7 +456,7 @@ _UserMemoryAttach(
)
{
gceSTATUS status;
- gcsUserMemory * userMemory;
+ gcsUserMemory * userMemory = gcvNULL;
gckOS os = Allocator->os;
@@ -479,7 +479,8 @@ _UserMemoryAttach(
return gcvSTATUS_OK;
OnError:
-
+ if(userMemory != gcvNULL)
+ gckOS_Free(os,(gctPOINTER)userMemory);
gcmkFOOTER();
return status;
}
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
index ec90fa494d07..b786695307ee 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
@@ -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,
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
index 91c18fdf447e..b44549ac6414 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
@@ -61,6 +61,10 @@
#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,
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
index f58b218ce165..004d493b2dce 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
@@ -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;
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
index 77a7834f2f29..581375786aa0 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
index d4272858bfbd..6386484e82e8 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
@@ -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
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
index 718c4221113a..7c33d27142ac 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
@@ -78,6 +78,10 @@
#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_map_area(Logical, Bytes, DMA_TO_DEVICE);
@@ -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_map_area(Logical, Bytes, DMA_FROM_DEVICE);
# 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;
+}
+
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
index 24e22b48cd94..90f68db7b73d 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
@@ -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;
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
index 13ec07312e3a..eb11719d827a 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
@@ -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,22 +963,20 @@ _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;
}
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
index 119713fe22af..51c5c599b86d 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
@@ -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