summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/kernel
diff options
context:
space:
mode:
authorLoren HUANG <b02279@freescale.com>2013-09-02 13:43:59 +0800
committerJason Liu <r64343@freescale.com>2013-10-30 09:55:29 +0800
commit9d655a4630a77f6a816fdc884a1f389101b740c1 (patch)
tree683a5a9291be4a7ee7c5fee2547e8e23296c49b6 /drivers/mxc/gpu-viv/hal/kernel
parentdef22a96dec1485df9f4d3bccd05e4bc886180b2 (diff)
ENGR00278350 gpu:viante 4.6.9p13 kernel part integration
Integrated 4.6.9p13 kernel part change. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/kernel')
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c125
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h24
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c57
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c45
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c12
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c29
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c3
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c8
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c20
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h84
-rwxr-xr-xdrivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h170
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h142
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h37
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h46
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h125
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h86
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h1078
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h48
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h79
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h2
20 files changed, 1193 insertions, 1027 deletions
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 b7b0d282940f..12a534046a6e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
@@ -128,19 +128,6 @@ _ResetFinishFunction(
** Pointer to a variable that will hold the pointer to the gckKERNEL
** object.
*/
-#ifdef ANDROID
-#if gcdNEW_PROFILER_FILE
-#define DEFAULT_PROFILE_FILE_NAME "/sdcard/vprofiler.vpd"
-#else
-#define DEFAULT_PROFILE_FILE_NAME "/sdcard/vprofiler.xml"
-#endif
-#else
-#if gcdNEW_PROFILER_FILE
-#define DEFAULT_PROFILE_FILE_NAME "vprofiler.vpd"
-#else
-#define DEFAULT_PROFILE_FILE_NAME "vprofiler.xml"
-#endif
-#endif
gceSTATUS
gckKERNEL_Construct(
@@ -302,17 +289,12 @@ gckKERNEL_Construct(
#if VIVANTE_PROFILER
/* Initialize profile setting */
-#if defined ANDROID
kernel->profileEnable = gcvFALSE;
-#else
- kernel->profileEnable = gcvTRUE;
-#endif
kernel->profileCleanRegister = gcvTRUE;
+#endif
- gcmkVERIFY_OK(
- gckOS_MemCopy(kernel->profileFileName,
- DEFAULT_PROFILE_FILE_NAME,
- gcmSIZEOF(DEFAULT_PROFILE_FILE_NAME) + 1));
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ gcmkONERROR(gckOS_CreateSyncTimeline(Os, &kernel->timeline));
#endif
/* Return pointer to the gckKERNEL object. */
@@ -395,6 +377,13 @@ OnError:
}
#endif
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ if (kernel->timeline)
+ {
+ gcmkVERIFY_OK(gckOS_DestroySyncTimeline(Os, kernel->timeline));
+ }
+#endif
+
gcmkVERIFY_OK(gcmkOS_SAFE_FREE(Os, kernel));
}
@@ -525,6 +514,10 @@ gckKERNEL_Destroy(
}
#endif
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ gcmkVERIFY_OK(gckOS_DestroySyncTimeline(Kernel->os, Kernel->timeline));
+#endif
+
/* Mark the gckKERNEL object as unknown. */
Kernel->object.type = gcvOBJ_UNKNOWN;
@@ -1310,7 +1303,8 @@ gckKERNEL_Dispatch(
/* Commit a command and context buffer. */
gcmkONERROR(
gckCOMMAND_Commit(Kernel->command,
- gcmNAME_TO_PTR(Interface->u.Commit.context),
+ 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),
gcmUINT64_TO_PTR(Interface->u.Commit.queue),
@@ -1600,7 +1594,15 @@ gckKERNEL_Dispatch(
break;
case gcvHAL_READ_ALL_PROFILE_REGISTERS:
-#if VIVANTE_PROFILER
+#if VIVANTE_PROFILER && VIVANTE_PROFILER_CONTEXT
+ /* Read profile data according to the context. */
+ gcmkONERROR(
+ gckHARDWARE_QueryContextProfile(
+ Kernel->hardware,
+ Kernel->profileCleanRegister,
+ gcmNAME_TO_PTR(Interface->u.RegisterProfileData.context),
+ &Interface->u.RegisterProfileData.counters));
+#elif VIVANTE_PROFILER
/* Read all 3D profile registers. */
gcmkONERROR(
gckHARDWARE_QueryProfileRegisters(
@@ -1628,11 +1630,6 @@ gckKERNEL_Dispatch(
#if VIVANTE_PROFILER
/* Get profile setting */
Interface->u.GetProfileSetting.enable = Kernel->profileEnable;
-
- gcmkVERIFY_OK(
- gckOS_MemCopy(Interface->u.GetProfileSetting.fileName,
- Kernel->profileFileName,
- gcdMAX_PROFILE_FILE_NAME));
#endif
status = gcvSTATUS_OK;
@@ -1640,12 +1637,13 @@ gckKERNEL_Dispatch(
case gcvHAL_SET_PROFILE_SETTING:
#if VIVANTE_PROFILER
/* Set profile setting */
- Kernel->profileEnable = Interface->u.SetProfileSetting.enable;
-
- gcmkVERIFY_OK(
- gckOS_MemCopy(Kernel->profileFileName,
- Interface->u.SetProfileSetting.fileName,
- gcdMAX_PROFILE_FILE_NAME));
+ if(Kernel->hardware->gpuProfiler)
+ Kernel->profileEnable = Interface->u.SetProfileSetting.enable;
+ else
+ {
+ status = gcvSTATUS_NOT_SUPPORTED;
+ break;
+ }
#endif
status = gcvSTATUS_OK;
@@ -2093,6 +2091,61 @@ gckKERNEL_Dispatch(
#endif
break;
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ case gcvHAL_SYNC_POINT:
+ {
+ gctSYNC_POINT syncPoint;
+
+ switch (Interface->u.SyncPoint.command)
+ {
+ case gcvSYNC_POINT_CREATE:
+ gcmkONERROR(gckOS_CreateSyncPoint(Kernel->os, &syncPoint));
+
+ Interface->u.SyncPoint.syncPoint = gcmPTR_TO_UINT64(syncPoint);
+
+ gcmkVERIFY_OK(
+ gckKERNEL_AddProcessDB(Kernel,
+ processID, gcvDB_SYNC_POINT,
+ syncPoint,
+ gcvNULL,
+ 0));
+ break;
+
+ case gcvSYNC_POINT_DESTROY:
+ syncPoint = gcmUINT64_TO_PTR(Interface->u.SyncPoint.syncPoint);
+
+ gcmkONERROR(gckOS_DestroySyncPoint(Kernel->os, syncPoint));
+
+ gcmkVERIFY_OK(
+ gckKERNEL_RemoveProcessDB(Kernel,
+ processID, gcvDB_SYNC_POINT,
+ syncPoint));
+ break;
+
+ default:
+ gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
+ break;
+ }
+ }
+ break;
+
+ case gcvHAL_CREATE_NATIVE_FENCE:
+ {
+ gctINT fenceFD;
+ gctSYNC_POINT syncPoint =
+ gcmUINT64_TO_PTR(Interface->u.CreateNativeFence.syncPoint);
+
+ gcmkONERROR(
+ gckOS_CreateNativeFence(Kernel->os,
+ Kernel->timeline,
+ syncPoint,
+ &fenceFD));
+
+ Interface->u.CreateNativeFence.fenceFD = fenceFD;
+ }
+ break;
+#endif
+
default:
/* Invalid command. */
gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
@@ -2856,6 +2909,8 @@ gckKERNEL_Recovery(
return gcvSTATUS_OK;
}
+ gcmkPRINT("[galcore]: GPU[%d] hang, automatic recovery.", Kernel->core);
+
/* Start a timer to clear reset flag, before timer is expired,
** other recovery request is ignored. */
gcmkVERIFY_OK(
@@ -3382,7 +3437,7 @@ gckLINKQUEUE_Dequeue(
IN gckLINKQUEUE LinkQueue
)
{
- gcmASSERT(LinkQueue->count == gcdLINK_QUEUE_SIZE);
+ gcmkASSERT(LinkQueue->count == gcdLINK_QUEUE_SIZE);
LinkQueue->count--;
LinkQueue->front = (LinkQueue->front + 1) % gcdLINK_QUEUE_SIZE;
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 5896e93f5c34..1c40df2fe563 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
@@ -140,8 +140,9 @@ typedef enum _gceDATABASE_TYPE
gcvDB_CONTEXT, /* Context */
gcvDB_IDLE, /* GPU idle. */
gcvDB_MAP_MEMORY, /* Map memory */
- gcvDB_SHARED_INFO, /* Private data */
- gcvDB_MAP_USER_MEMORY /* Map user memory */
+ gcvDB_SHARED_INFO, /* Private data */
+ gcvDB_MAP_USER_MEMORY, /* Map user memory */
+ gcvDB_SYNC_POINT, /* Sync point. */
}
gceDATABASE_TYPE;
@@ -406,9 +407,6 @@ struct _gckKERNEL
/* Enable profiling */
gctBOOL profileEnable;
- /* The profile file name */
- gctCHAR profileFileName[gcdMAX_PROFILE_FILE_NAME];
-
/* Clear profile register or not*/
gctBOOL profileCleanRegister;
@@ -445,6 +443,10 @@ struct _gckKERNEL
#if gcdDVFS
gckDVFS dvfs;
#endif
+
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ gctHANDLE timeline;
+#endif
};
struct _FrequencyHistory
@@ -496,6 +498,11 @@ struct _gckCOMMAND
/* Context switching mutex. */
gctPOINTER mutexContext;
+#if VIVANTE_PROFILER_CONTEXT
+ /* Context sequence mutex. */
+ gctPOINTER mutexContextSeq;
+#endif
+
/* Command queue power semaphore. */
gctPOINTER powerSemaphore;
@@ -649,6 +656,8 @@ struct _gckEVENT
gctPOINTER eventListMutex;
gctPOINTER submitTimer;
+
+ volatile gctBOOL inNotify;
};
/* Free all events belonging to a process. */
@@ -668,6 +677,11 @@ gckEVENT_Stop(
IN OUT gctSIZE_T * waitSize
);
+gceSTATUS
+gckEVENT_WaitEmpty(
+ IN gckEVENT Event
+ );
+
/* gcuVIDMEM_NODE structure. */
typedef union _gcuVIDMEM_NODE
{
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 9ee9ea1dee16..73dab8117525 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
@@ -494,6 +494,11 @@ gckCOMMAND_Construct(
/* Create the context switching mutex. */
gcmkONERROR(gckOS_CreateMutex(os, &command->mutexContext));
+#if VIVANTE_PROFILER_CONTEXT
+ /* Create the context switching mutex. */
+ gcmkONERROR(gckOS_CreateMutex(os, &command->mutexContextSeq));
+#endif
+
/* Create the power management semaphore. */
gcmkONERROR(gckOS_CreateSemaphore(os, &command->powerSemaphore));
@@ -572,6 +577,13 @@ OnError:
gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexContext));
}
+#if VIVANTE_PROFILER_CONTEXT
+ if (command->mutexContextSeq != gcvNULL)
+ {
+ gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexContextSeq));
+ }
+#endif
+
if (command->mutexQueue != gcvNULL)
{
gcmkVERIFY_OK(gckOS_DeleteMutex(os, command->mutexQueue));
@@ -662,6 +674,11 @@ gckCOMMAND_Destroy(
/* Delete the context switching mutex. */
gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexContext));
+#if VIVANTE_PROFILER_CONTEXT
+ if (Command->mutexContextSeq != gcvNULL)
+ gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexContextSeq));
+#endif
+
/* Delete the command queue mutex. */
gcmkVERIFY_OK(gckOS_DeleteMutex(Command->os, Command->mutexQueue));
@@ -1127,6 +1144,10 @@ gckCOMMAND_Commit(
# endif
#endif
+#if VIVANTE_PROFILER_CONTEXT
+ gctBOOL sequenceAcquired = gcvFALSE;
+#endif
+
gctPOINTER pointer = gcvNULL;
gcmkHEADER_ARG(
@@ -1145,6 +1166,17 @@ gckCOMMAND_Commit(
gcmkONERROR(_FlushMMU(Command));
+#if VIVANTE_PROFILER_CONTEXT
+ if((Command->kernel->hardware->gpuProfiler) && (Command->kernel->profileEnable))
+ {
+ /* Acquire the context sequnence mutex. */
+ gcmkONERROR(gckOS_AcquireMutex(
+ Command->os, Command->mutexContextSeq, gcvINFINITE
+ ));
+ sequenceAcquired = gcvTRUE;
+ }
+#endif
+
/* Acquire the command queue. */
gcmkONERROR(gckCOMMAND_EnterCommit(Command, gcvFALSE));
commitEntered = gcvTRUE;
@@ -2002,6 +2034,23 @@ gckCOMMAND_Commit(
gcmkONERROR(gckCOMMAND_ExitCommit(Command, gcvFALSE));
commitEntered = gcvFALSE;
+#if VIVANTE_PROFILER_CONTEXT
+ if(sequenceAcquired)
+ {
+ gcmkONERROR(gckCOMMAND_Stall(Command, gcvTRUE));
+ if (Command->currContext)
+ {
+ gcmkONERROR(gckHARDWARE_UpdateContextProfile(
+ hardware,
+ Command->currContext));
+ }
+
+ /* Release the context switching mutex. */
+ gcmkONERROR(gckOS_ReleaseMutex(Command->os, Command->mutexContextSeq));
+ sequenceAcquired = gcvFALSE;
+ }
+#endif
+
/* Loop while there are records in the queue. */
while (EventQueue != gcvNULL)
{
@@ -2114,6 +2163,14 @@ OnError:
gcmkVERIFY_OK(gckCOMMAND_ExitCommit(Command, gcvFALSE));
}
+#if VIVANTE_PROFILER_CONTEXT
+ if (sequenceAcquired)
+ {
+ /* Release the context sequence mutex. */
+ gcmkVERIFY_OK(gckOS_ReleaseMutex(Command->os, Command->mutexContextSeq));
+ }
+#endif
+
/* Unmap the command buffer pointer. */
if (commandBufferMapped)
{
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
index 76c1c105b5fd..1a7c34022fbe 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
@@ -2819,6 +2819,7 @@ gckVGCOMMAND_Construct(
** Enable TS overflow interrupt.
*/
+ command->info.tsOverflowInt = 0;
gcmkERR_BREAK(gckVGINTERRUPT_Enable(
Kernel->interrupt,
&command->info.tsOverflowInt,
@@ -3406,38 +3407,26 @@ gckVGCOMMAND_Commit(
gctBOOL previousExecuted;
gctUINT controlIndex;
+ gcmkERR_BREAK(gckVGHARDWARE_SetPowerManagementState(
+ Command->hardware, gcvPOWER_ON_AUTO
+ ));
+
+ /* Acquire the power semaphore. */
+ gcmkERR_BREAK(gckOS_AcquireSemaphore(
+ Command->os, Command->powerSemaphore
+ ));
+
/* Acquire the mutex. */
- gcmkERR_BREAK(gckOS_AcquireMutex(
+ status = gckOS_AcquireMutex(
Command->os,
Command->commitMutex,
gcvINFINITE
- ));
-
- status = gckVGHARDWARE_SetPowerManagementState(
- Command->hardware, gcvPOWER_ON_AUTO);
-
- if (gcmIS_ERROR(status))
- {
- /* Acquire the mutex. */
- gcmkVERIFY_OK(gckOS_ReleaseMutex(
- Command->os,
- Command->commitMutex
- ));
-
- break;
- }
- /* Acquire the power semaphore. */
- status = gckOS_AcquireSemaphore(
- Command->os, Command->powerSemaphore);
+ );
if (gcmIS_ERROR(status))
{
- /* Acquire the mutex. */
- gcmkVERIFY_OK(gckOS_ReleaseMutex(
- Command->os,
- Command->commitMutex
- ));
-
+ gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
+ Command->os, Command->powerSemaphore));
break;
}
@@ -3669,14 +3658,14 @@ gckVGCOMMAND_Commit(
}
while (gcvFALSE);
- gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
- Command->os, Command->powerSemaphore));
-
/* Release the mutex. */
gcmkCHECK_STATUS(gckOS_ReleaseMutex(
Command->os,
Command->commitMutex
));
+
+ gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
+ Command->os, Command->powerSemaphore));
}
while (gcvFALSE);
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
index 673d4f72cce7..134351a48ca9 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
@@ -1307,6 +1307,18 @@ gckKERNEL_DestroyProcessDB(
status = gckOS_FreeMemory(Kernel->os, record->physical);
break;
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ case gcvDB_SYNC_POINT:
+ /* Free the user signal. */
+ status = gckOS_DestroySyncPoint(Kernel->os,
+ (gctSYNC_POINT) record->data);
+
+ gcmkTRACE_ZONE(gcvLEVEL_WARNING, gcvZONE_DATABASE,
+ "DB: SYNC POINT %d (status=%d)",
+ (gctINT)(gctUINTPTR_T)record->data, status);
+ break;
+#endif
+
default:
gcmkTRACE_ZONE(gcvLEVEL_ERROR, gcvZONE_DATABASE,
"DB: Correcupted record=0x%08x type=%d",
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 217f7f18c2f2..2d81a5675d27 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
@@ -931,6 +931,7 @@ gckEVENT_AddList(
|| (Interface->command == gcvHAL_TIMESTAMP)
|| (Interface->command == gcvHAL_COMMIT_DONE)
|| (Interface->command == gcvHAL_FREE_VIRTUAL_COMMAND_BUFFER)
+ || (Interface->command == gcvHAL_SYNC_POINT)
);
/* Validate the source. */
@@ -2131,6 +2132,9 @@ gckEVENT_Notify(
gcvINFINITE));
acquired = gcvTRUE;
+ /* We are in the notify loop. */
+ Event->inNotify = gcvTRUE;
+
/* Grab the event head. */
record = queue->head;
@@ -2463,6 +2467,17 @@ gckEVENT_Notify(
break;
#endif
+#if gcdANDROID_NATIVE_FENCE_SYNC
+ case gcvHAL_SYNC_POINT:
+ {
+ gctSYNC_POINT syncPoint;
+
+ syncPoint = gcmUINT64_TO_PTR(record->info.u.SyncPoint.syncPoint);
+ status = gckOS_SignalSyncPoint(Event->os, syncPoint);
+ }
+ break;
+#endif
+
case gcvHAL_COMMIT_DONE:
break;
@@ -2505,6 +2520,9 @@ gckEVENT_Notify(
gcmkONERROR(_TryToIdleGPU(Event));
}
+ /* We are out the notify loop. */
+ Event->inNotify = gcvFALSE;
+
/* Success. */
gcmkFOOTER_NO();
return gcvSTATUS_OK;
@@ -2524,6 +2542,9 @@ OnError:
}
#endif
+ /* We are out the notify loop. */
+ Event->inNotify = gcvFALSE;
+
/* Return the status. */
gcmkFOOTER();
return status;
@@ -2871,3 +2892,11 @@ gckEVENT_Dump(
return gcvSTATUS_OK;
}
+gceSTATUS gckEVENT_WaitEmpty(gckEVENT Event)
+{
+ gctBOOL isEmpty;
+
+ while (Event->inNotify || (gcmIS_SUCCESS(gckEVENT_IsEmpty(Event, &isEmpty)) && !isEmpty)) ;
+
+ return gcvSTATUS_OK;
+}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
index 8ac187b503ae..50bc63e3a88c 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
@@ -794,6 +794,9 @@ gckVGINTERRUPT_Enque(
Interrupt->kernel->hardware, &triggered
));
+ /* Mask out TS overflow interrupt */
+ triggered &= 0xfffffffe;
+
/* No interrupts to process? */
if (triggered == 0)
{
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 c7f67c73c1ed..e4ca49725dce 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
@@ -1436,7 +1436,7 @@ gckMMU_AllocatePages(
acquired = gcvTRUE;
/* Allocate page table for current MMU. */
- for (i = 0; i < mirrorPageTable->reference; i++)
+ for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
{
if (Mmu == mirrorPageTable->mmus[i])
{
@@ -1446,7 +1446,7 @@ gckMMU_AllocatePages(
}
/* Allocate page table for other MMUs. */
- for (i = 0; i < mirrorPageTable->reference; i++)
+ for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
{
mmu = mirrorPageTable->mmus[i];
@@ -1500,7 +1500,7 @@ gckMMU_FreePages(
offset = (gctUINT32)PageTable - (gctUINT32)Mmu->pageTableLogical;
- for (i = 0; i < mirrorPageTable->reference; i++)
+ for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
{
mmu = mirrorPageTable->mmus[i];
@@ -1639,7 +1639,7 @@ gckMMU_SetPage(
_WritePageEntry(PageEntry, data);
#if gcdMIRROR_PAGETABLE
- for (i = 0; i < mirrorPageTable->reference; i++)
+ for (i = 0; i < (gctINT)mirrorPageTable->reference; i++)
{
mmu = mirrorPageTable->mmus[i];
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 8b8bbdc90685..3b5dd82cbad0 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
@@ -1582,6 +1582,7 @@ _NeedVirtualMapping(
gctUINT32 end;
gcePOOL pool;
gctUINT32 offset;
+ gctUINT32 baseAddress;
gcmkHEADER_ARG("Node=0x%X", Node);
@@ -1601,10 +1602,16 @@ _NeedVirtualMapping(
else
#endif
{
- /* For cores which can't access all physical address. */
- gcmkONERROR(gckHARDWARE_ConvertLogical(Kernel->hardware,
- Node->Virtual.logical,
- &phys));
+ /* Convert logical address into a physical address. */
+ gcmkONERROR(
+ gckOS_GetPhysicalAddress(Kernel->os, Node->Virtual.logical, &phys));
+
+ gcmkONERROR(gckOS_GetBaseAddress(Kernel->os, &baseAddress));
+
+ gcmkASSERT(phys >= baseAddress);
+
+ /* Subtract baseAddress to get a GPU address used for programming. */
+ phys -= baseAddress;
/* If part of region is belong to gcvPOOL_VIRTUAL,
** whole region has to be mapped. */
@@ -1734,6 +1741,11 @@ gckVIDMEM_Lock(
gcmkONERROR(gckOS_AcquireMutex(os, Node->Virtual.mutex, gcvINFINITE));
acquired = gcvTRUE;
+#if gcdPAGED_MEMORY_CACHEABLE
+ /* Force video memory cacheable. */
+ Cacheable = gcvTRUE;
+#endif
+
gcmkONERROR(
gckOS_LockPages(os,
Node->Virtual.physical,
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 4406d7ef608f..7312cc24d598 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
@@ -123,6 +123,12 @@ extern "C" {
#define gcvINVALID_ADDRESS ~0U
+#define gcmGET_PRE_ROTATION(rotate) \
+ ((rotate) & (~(gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y)))
+
+#define gcmGET_POST_ROTATION(rotate) \
+ ((rotate) & (gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y))
+
/******************************************************************************\
******************************** gcsOBJECT Object *******************************
\******************************************************************************/
@@ -1124,6 +1130,60 @@ gckOS_UnmapUserMemory(
IN gctUINT32 Address
);
+/******************************************************************************\
+************************** Android Native Fence Sync ***************************
+\******************************************************************************/
+gceSTATUS
+gckOS_CreateSyncTimeline(
+ IN gckOS Os,
+ OUT gctHANDLE * Timeline
+ );
+
+gceSTATUS
+gckOS_DestroySyncTimeline(
+ IN gckOS Os,
+ IN gctHANDLE Timeline
+ );
+
+gceSTATUS
+gckOS_CreateSyncPoint(
+ IN gckOS Os,
+ OUT gctSYNC_POINT * SyncPoint
+ );
+
+gceSTATUS
+gckOS_ReferenceSyncPoint(
+ IN gckOS Os,
+ IN gctSYNC_POINT SyncPoint
+ );
+
+gceSTATUS
+gckOS_DestroySyncPoint(
+ IN gckOS Os,
+ IN gctSYNC_POINT SyncPoint
+ );
+
+gceSTATUS
+gckOS_SignalSyncPoint(
+ IN gckOS Os,
+ IN gctSYNC_POINT SyncPoint
+ );
+
+gceSTATUS
+gckOS_QuerySyncPoint(
+ IN gckOS Os,
+ IN gctSYNC_POINT SyncPoint,
+ OUT gctBOOL_PTR State
+ );
+
+gceSTATUS
+gckOS_CreateNativeFence(
+ IN gckOS Os,
+ IN gctHANDLE Timeline,
+ IN gctSYNC_POINT SyncPoint,
+ OUT gctINT * FenceFD
+ );
+
#if !USE_NEW_LINUX_SIGNAL
/* Create signal to be used in the user space. */
gceSTATUS
@@ -1758,7 +1818,7 @@ gckKERNEL_Recovery(
void
gckKERNEL_SetTimeOut(
IN gckKERNEL Kernel,
- IN gctUINT32 timeOut
+ IN gctUINT32 timeOut
);
/* Get access to the user data. */
@@ -2078,6 +2138,12 @@ gckHARDWARE_SetPowerManagement(
IN gctBOOL PowerManagement
);
+gceSTATUS
+gckHARDWARE_SetGpuProfiler(
+ IN gckHARDWARE Hardware,
+ IN gctBOOL GpuProfiler
+ );
+
#if gcdENABLE_FSCALE_VAL_ADJUST
gceSTATUS
gckHARDWARE_SetFscaleValue(
@@ -2554,6 +2620,22 @@ gckHARDWARE_QueryProfileRegisters(
);
#endif
+#if VIVANTE_PROFILER_CONTEXT
+gceSTATUS
+gckHARDWARE_QueryContextProfile(
+ IN gckHARDWARE Hardware,
+ IN gctBOOL Clear,
+ IN gckCONTEXT Context,
+ OUT gcsPROFILER_COUNTERS * Counters
+ );
+
+gceSTATUS
+gckHARDWARE_UpdateContextProfile(
+ IN gckHARDWARE Hardware,
+ IN gckCONTEXT Context
+ );
+#endif
+
gceSTATUS
gckOS_SignalQueryHardware(
IN gckOS Os,
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 926de6e109b7..9c1711404c4c 100755
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
@@ -71,10 +71,17 @@ typedef struct _gcoFENCE * gcoFENCE;
typedef struct _gcsSYNC_CONTEXT * gcsSYNC_CONTEXT_PTR;
#endif
+typedef struct _gcoOS_SymbolsList gcoOS_SymbolsList;
+
/******************************************************************************\
******************************* Process local storage *************************
\******************************************************************************/
typedef struct _gcsPLS * gcsPLS_PTR;
+
+typedef void (* gctPLS_DESTRUCTOR) (
+ gcsPLS_PTR
+ );
+
typedef struct _gcsPLS
{
/* Global objects. */
@@ -103,6 +110,12 @@ typedef struct _gcsPLS
/* PorcessID of the constrcutor process */
gctUINT32 processID;
+#if gcdFORCE_GAL_LOAD_TWICE
+ /* ThreadID of the constrcutor process. */
+ gctSIZE_T threadID;
+ /* Flag for calling module destructor. */
+ gctBOOL exiting;
+#endif
/* Reference count for destructor. */
gcsATOM_PTR reference;
@@ -111,6 +124,8 @@ typedef struct _gcsPLS
gctBOOL bNeedSupportNP2Texture;
#endif
+ /* Destructor for eglDisplayInfo. */
+ gctPLS_DESTRUCTOR destructor;
}
gcsPLS;
@@ -148,6 +163,11 @@ typedef struct _gcsTLS
#endif
gco2D engine2D;
gctBOOL copied;
+
+#if gcdFORCE_GAL_LOAD_TWICE
+ /* libGAL.so handle */
+ gctHANDLE handle;
+#endif
}
gcsTLS;
@@ -160,6 +180,7 @@ typedef enum _gcePLS_VALUE
gcePLS_VALUE_EGL_DISPLAY_INFO,
gcePLS_VALUE_EGL_SURFACE_INFO,
gcePLS_VALUE_EGL_CONFIG_FORMAT_INFO,
+ gcePLS_VALUE_EGL_DESTRUCTOR_INFO,
}
gcePLS_VALUE;
@@ -577,6 +598,12 @@ gcoHAL_Call(
IN OUT gcsHAL_INTERFACE_PTR Interface
);
+gceSTATUS
+gcoHAL_GetPatchID(
+ IN gcoHAL Hal,
+ OUT gcePATCH_ID * PatchID
+ );
+
/* Schedule an event. */
gceSTATUS
gcoHAL_ScheduleEvent(
@@ -637,6 +664,16 @@ gcoHAL_QuerySeparated3D2D(
IN gcoHAL Hal
);
+gceSTATUS
+gcoHAL_QuerySpecialHint(
+ IN gceSPECIAL_HINT Hint
+ );
+
+gceSTATUS
+gcoHAL_SetSpecialHintData(
+ IN gcoHARDWARE Hardware
+ );
+
/* Get pointer to gcoVG object. */
gceSTATUS
gcoHAL_GetVGEngine(
@@ -786,7 +823,6 @@ gcoOS_FreeVideoMemory(
IN gctPOINTER Handle
);
-#if gcdENABLE_BANK_ALIGNMENT
gceSTATUS
gcoSURF_GetBankOffsetBytes(
IN gcoSURF Surfce,
@@ -794,7 +830,6 @@ gcoSURF_GetBankOffsetBytes(
IN gctUINT32 Stride,
IN gctUINT32_PTR Bytes
);
-#endif
/* Map user memory. */
gceSTATUS
@@ -918,6 +953,21 @@ gcoOS_Flush(
IN gctFILE File
);
+/* Close a file descriptor. */
+gceSTATUS
+gcoOS_CloseFD(
+ IN gcoOS Os,
+ IN gctINT FD
+ );
+
+/* Dup file descriptor to another. */
+gceSTATUS
+gcoOS_DupFD(
+ IN gcoOS Os,
+ IN gctINT FD,
+ OUT gctINT * FD2
+ );
+
/* Create an endpoint for communication. */
gceSTATUS
gcoOS_Socket(
@@ -977,6 +1027,14 @@ gcoOS_GetEnv(
OUT gctSTRING * Value
);
+/* Set environment variable value. */
+gceSTATUS
+gcoOS_SetEnv(
+ IN gcoOS Os,
+ IN gctCONST_STRING VarName,
+ IN gctSTRING Value
+ );
+
/* Get current working directory. */
gceSTATUS
gcoOS_GetCwd(
@@ -1210,6 +1268,13 @@ gcoOS_DetectProcessByEncryptedName(
IN gctCONST_STRING Name
);
+#if defined(ANDROID)
+gceSTATUS
+gcoOS_DetectProgrameByEncryptedSymbols(
+ IN gcoOS_SymbolsList Symbols
+ );
+#endif
+
/*----------------------------------------------------------------------------*/
/*----- Atoms ----------------------------------------------------------------*/
@@ -1403,6 +1468,42 @@ gcoOS_UnmapSignal(
IN gctSIGNAL Signal
);
+/*----------------------------------------------------------------------------*/
+/*----- Android Native Fence -------------------------------------------------*/
+
+/* Create sync point. */
+gceSTATUS
+gcoOS_CreateSyncPoint(
+ IN gcoOS Os,
+ OUT gctSYNC_POINT * SyncPoint
+ );
+
+/* Destroy sync point. */
+gceSTATUS
+gcoOS_DestroySyncPoint(
+ IN gcoOS Os,
+ IN gctSYNC_POINT SyncPoint
+ );
+
+/* Create native fence. */
+gceSTATUS
+gcoOS_CreateNativeFence(
+ IN gcoOS Os,
+ IN gctSYNC_POINT SyncPoint,
+ OUT gctINT * FenceFD
+ );
+
+/* Wait on native fence. */
+gceSTATUS
+gcoOS_WaitNativeFence(
+ IN gcoOS Os,
+ IN gctINT FenceFD,
+ IN gctUINT32 Timeout
+ );
+
+/*----------------------------------------------------------------------------*/
+/*----- Memory Access and Cache ----------------------------------------------*/
+
/* Write a register. */
gceSTATUS
gcoOS_WriteRegister(
@@ -1579,6 +1680,28 @@ typedef struct _gcsRECT
}
gcsRECT;
+typedef union _gcsPIXEL
+{
+ struct
+ {
+ gctFLOAT r, g, b, a;
+ gctFLOAT d, s;
+ } pf;
+
+ struct
+ {
+ gctINT32 r, g, b, a;
+ gctINT32 d, s;
+ } pi;
+
+ struct
+ {
+ gctUINT32 r, g, b, a;
+ gctUINT32 d, s;
+ } pui;
+
+} gcsPIXEL;
+
/******************************************************************************\
********************************* gcoSURF Object ********************************
@@ -1795,6 +1918,18 @@ gcoSURF_SetRotation(
);
gceSTATUS
+gcoSURF_SetPreRotation(
+ IN gcoSURF Surface,
+ IN gceSURF_ROTATION Rotation
+ );
+
+gceSTATUS
+gcoSURF_GetPreRotation(
+ IN gcoSURF Surface,
+ IN gceSURF_ROTATION *Rotation
+ );
+
+gceSTATUS
gcoSURF_IsValid(
IN gcoSURF Surface
);
@@ -1824,6 +1959,15 @@ gcoSURF_DisableTileStatus(
IN gcoSURF Surface,
IN gctBOOL Decompress
);
+
+gceSTATUS
+gcoSURF_AlignResolveRect(
+ IN gcoSURF Surf,
+ IN gcsPOINT_PTR RectOrigin,
+ IN gcsPOINT_PTR RectSize,
+ OUT gcsPOINT_PTR AlignedOrigin,
+ OUT gcsPOINT_PTR AlignedSize
+ );
#endif /* VIVANTE_NO_3D */
/* Get surface size. */
@@ -1910,6 +2054,9 @@ gcoSURF_FillFromTile(
IN gcoSURF Surface
);
+/* Check if surface needs a filler. */
+gceSTATUS gcoSURF_NeedFiller(IN gcoSURF Surface);
+
/* Fill surface with a value. */
gceSTATUS
gcoSURF_Fill(
@@ -1949,6 +2096,19 @@ gcoSURF_SetBuffer(
IN gctUINT32 Physical
);
+/* Set the underlying video buffer for the surface wrapper. */
+gceSTATUS
+gcoSURF_SetVideoBuffer(
+ IN gcoSURF Surface,
+ IN gceSURF_TYPE Type,
+ IN gceSURF_FORMAT Format,
+ IN gctUINT Width,
+ IN gctUINT Height,
+ IN gctUINT Stride,
+ IN gctPOINTER *LogicalPlane1,
+ IN gctUINT32 *PhysicalPlane1
+ );
+
/* Set the size of the surface in pixels and map the underlying buffer. */
gceSTATUS
gcoSURF_SetWindow(
@@ -3705,6 +3865,12 @@ gcGetUserDebugOption(
void
);
+struct _gcoOS_SymbolsList
+{
+ gcePATCH_ID patchId;
+ const char * symList[10];
+};
+
#if gcdHAS_ELLIPSES
#define gcmUSER_DEBUG_MSG(level, ...) \
do \
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
index 8693c3709139..062224c741c4 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h
@@ -39,12 +39,10 @@ extern "C" {
#define GC_ENABLE_LOADTIME_OPT 1
#endif
-#define TEMP_OPT_CONSTANT_TEXLD_COORD 1
+#define TEMP_OPT_CONSTANT_TEXLD_COORD 0
#define TEMP_SHADER_PATCH 1
-#define ADD_PRE_ROTATION_TO_VS 0
-
#define TEMP_INLINE_ALL_EXPANSION 1
/******************************* IR VERSION ******************/
#define gcdSL_IR_VERSION gcmCC('\0','\0','\0','\1')
@@ -271,6 +269,7 @@ typedef enum _gcSL_OPCODE
gcSL_ADDSAT, /* 0x5C */ /* Integer only. */
gcSL_SUBSAT, /* 0x5D */ /* Integer only. */
gcSL_MULSAT, /* 0x5E */ /* Integer only. */
+ gcSL_DP2, /* 0x5F */
gcSL_MAXOPCODE
}
gcSL_OPCODE;
@@ -474,6 +473,9 @@ struct _gcsHINT
gctBOOL clipW;
+ /* Flag whether or not the shader has a KILL instruction. */
+ gctBOOL hasKill;
+
/* Element count. */
gctUINT32 elementCount;
@@ -495,12 +497,18 @@ struct _gcsHINT
/* Balance maximum. */
gctUINT32 balanceMax;
+ /* Auto-shift balancing. */
+ gctBOOL autoShift;
+
/* Flag whether the PS outputs the depth value or not. */
gctBOOL psHasFragDepthOut;
/* Flag whether the ThreadWalker is in PS. */
gctBOOL threadWalkerInPS;
+ /* HW reg number for position of VS */
+ gctUINT32 hwRegNoOfSIVPos;
+
#if gcdALPHA_KILL_IN_SHADER
/* States to set when alpha kill is enabled. */
gctUINT32 killStateAddress;
@@ -687,12 +695,12 @@ typedef enum _gceSHADER_FLAGS
gcvSHADER_USE_ALPHA_KILL = 0x100,
#endif
-#if ADD_PRE_ROTATION_TO_VS
+#if gcdPRE_ROTATION && (ANDROID_SDK_VERSION >= 14)
gcvSHADER_VS_PRE_ROTATION = 0x200,
#endif
#if TEMP_INLINE_ALL_EXPANSION
- gcvSHADER_INLINE_ALL_EXPANSION = 0x200,
+ gcvSHADER_INLINE_ALL_EXPANSION = 0x400,
#endif
}
gceSHADER_FLAGS;
@@ -827,6 +835,7 @@ typedef struct _gcOPTIMIZER_OPTION
gctBOOL dumpOptimizerVerbose; /* dump result IR in each optimization phase */
gctBOOL dumpBEGenertedCode; /* dump generated machine code */
gctBOOL dumpBEVerbose; /* dump BE tree and optimization detail */
+ gctBOOL dumpBEFinalIR; /* dump BE final IR */
/* Code generation */
@@ -945,6 +954,8 @@ extern gcOPTIMIZER_OPTION theOptimizerOption;
gcmOPT_DUMP_CODEGEN_VERBOSE() )
#define gcmOPT_DUMP_CODEGEN_VERBOSE() \
(gcmGetOptimizerOption()->dumpBEVerbose != 0)
+#define gcmOPT_DUMP_FINAL_IR() \
+ (gcmGetOptimizerOption()->dumpBEFinalIR != 0)
#define gcmOPT_SET_DUMP_SHADER_SRC(v) \
gcmGetOptimizerOption()->dumpShaderSource = (v)
@@ -1064,6 +1075,13 @@ typedef struct _gcNPOT_PATCH_PARAM
gctINT texDimension; /* 2 or 3 */
}gcNPOT_PATCH_PARAM, *gcNPOT_PATCH_PARAM_PTR;
+typedef struct _gcZBIAS_PATCH_PARAM
+{
+ /* Driver uses this to program uniform that designating zbias */
+ gctINT uniformAddr;
+ gctINT channel;
+}gcZBIAS_PATCH_PARAM, *gcZBIAS_PATCH_PARAM_PTR;
+
void
gcGetOptionFromEnv(
IN OUT gcOPTIMIZER_OPTION * Option
@@ -1556,6 +1574,43 @@ gcSHADER_AddUniform(
OUT gcUNIFORM * Uniform
);
+/*******************************************************************************
+** gcSHADER_AddPreRotationUniform
+********************************************************************************
+**
+** Add an uniform to a gcSHADER object.
+**
+** INPUT:
+**
+** gcSHADER Shader
+** Pointer to a gcSHADER object.
+**
+** gctCONST_STRING Name
+** Name of the uniform to add.
+**
+** gcSHADER_TYPE Type
+** Type of the uniform to add.
+**
+** gctSIZE_T Length
+** Array length of the uniform to add. 'Length' must be at least 1.
+**
+** gctINT col
+** Which uniform.
+**
+** OUTPUT:
+**
+** gcUNIFORM * Uniform
+** Pointer to a variable receiving the gcUNIFORM object pointer.
+*/
+gceSTATUS
+gcSHADER_AddPreRotationUniform(
+ IN gcSHADER Shader,
+ IN gctCONST_STRING Name,
+ IN gcSHADER_TYPE Type,
+ IN gctSIZE_T Length,
+ IN gctINT col,
+ OUT gcUNIFORM * Uniform
+ );
/*******************************************************************************
** gcSHADER_AddUniformEx
@@ -1677,6 +1732,28 @@ gcSHADER_GetUniformCount(
);
/*******************************************************************************
+** gcSHADER_GetPreRotationUniform
+********************************************************************************
+**
+** Get the preRotate Uniform.
+**
+** INPUT:
+**
+** gcSHADER Shader
+** Pointer to a gcSHADER object.
+**
+** OUTPUT:
+**
+** gcUNIFORM ** pUniform
+** Pointer to a preRotation uniforms array.
+*/
+gceSTATUS
+gcSHADER_GetPreRotationUniform(
+ IN gcSHADER Shader,
+ OUT gcUNIFORM ** pUniform
+ );
+
+/*******************************************************************************
** gcSHADER_GetUniform
********************************************************************************
**
@@ -3438,6 +3515,34 @@ gcUNIFORM_SetValueF(
);
/*******************************************************************************
+** gcUNIFORM_ProgramF
+**
+** Set the value of a uniform in floating point.
+**
+** INPUT:
+**
+** gctUINT32 Address
+** Address of Uniform.
+**
+** gctSIZE_T Row/Col
+**
+** const gctFLOAT * Value
+** Pointer to a buffer holding the floating point values for the
+** uniform.
+**
+** OUTPUT:
+**
+** Nothing.
+*/
+gceSTATUS
+gcUNIFORM_ProgramF(
+ IN gctUINT32 Address,
+ IN gctSIZE_T Row,
+ IN gctSIZE_T Col,
+ IN const gctFLOAT * Value
+ );
+
+/*******************************************************************************
** gcUNIFORM_GetModelViewProjMatrix
********************************************************************************
**
@@ -3912,6 +4017,23 @@ gcRecompileShaders(
IN gctUINT32 *SamplerWrapS,
IN gctUINT32 *SamplerWrapT
);
+
+gceSTATUS
+gcRecompileDepthBias(
+ IN gcoHAL Hal,
+ IN gcMACHINECODE_PTR pVsMachineCode,
+ /*Recompile variables*/
+ IN OUT gctPOINTER *ppRecompileStateBuffer,
+ IN OUT gctSIZE_T *pRecompileStateBufferSize,
+ IN OUT gcsHINT_PTR *ppRecompileHints,
+ /* natvie state*/
+ IN gctPOINTER pNativeStateBuffer,
+ IN gctSIZE_T nativeStateBufferSize,
+ IN gcsHINT_PTR pNativeHints,
+ OUT gctINT * uniformAddr,
+ OUT gctINT * uniformChannel
+ );
+
/*******************************************************************************
** gcSaveProgram
********************************************************************************
@@ -4138,6 +4260,16 @@ gcSHADER_PatchNPOTForMachineCode(
IN OUT gcsHINT_PTR pHints /* User needs copy original hints to this one, then passed this one in */
);
+gceSTATUS
+gcSHADER_PatchZBiasForMachineCodeVS(
+ IN gcMACHINECODE_PTR pMachineCode,
+ IN OUT gcZBIAS_PATCH_PARAM_PTR pPatchParam,
+ IN gctUINT hwSupportedInstCount,
+ OUT gctPOINTER* ppCmdBuffer,
+ OUT gctUINT32* pByteSizeOfCmdBuffer,
+ IN OUT gcsHINT_PTR pHints /* User needs copy original hints to this one, then passed this one in */
+ );
+
#ifdef __cplusplus
}
#endif
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 b056c52191ea..fc8c39539972 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
@@ -166,6 +166,12 @@ typedef enum _gceHAL_COMMAND_CODES
/* Reset time stamp. */
gcvHAL_QUERY_RESET_TIME_STAMP,
+
+ /* Sync point operations. */
+ gcvHAL_SYNC_POINT,
+
+ /* Create native fence and return its fd. */
+ gcvHAL_CREATE_NATIVE_FENCE,
}
gceHAL_COMMAND_CODES;
@@ -723,6 +729,10 @@ typedef struct _gcsHAL_INTERFACE
/* gcvHAL_READ_ALL_PROFILE_REGISTERS */
struct _gcsHAL_READ_ALL_PROFILE_REGISTERS
{
+#if VIVANTE_PROFILER_CONTEXT
+ /* Context buffer object gckCONTEXT. Just a name. */
+ IN gctUINT32 context;
+#endif
/* Data read. */
OUT gcsPROFILER_COUNTERS counters;
}
@@ -978,6 +988,33 @@ typedef struct _gcsHAL_INTERFACE
OUT gctUINT64 timeStamp;
}
QueryResetTimeStamp;
+
+ struct _gcsHAL_SYNC_POINT
+ {
+ /* Command. */
+ gceSYNC_POINT_COMMAND_CODES command;
+
+ /* Sync point. */
+ IN OUT gctUINT64 syncPoint;
+
+ /* From where. */
+ IN gceKERNEL_WHERE fromWhere;
+
+ /* Signaled state. */
+ OUT gctBOOL state;
+ }
+ SyncPoint;
+
+ struct _gcsHAL_CREATE_NATIVE_FENCE
+ {
+ /* Signal id to dup. */
+ IN gctUINT64 syncPoint;
+
+ /* Native fence file descriptor. */
+ OUT gctINT fenceFD;
+
+ }
+ CreateNativeFence;
}
u;
}
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 84813750af7f..3fb2fe4c2709 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
@@ -323,6 +323,15 @@ gcoSURF_Resolve(
IN gcoSURF DestSurface
);
+gceSTATUS
+gcoSURF_IsHWResolveable(
+ IN gcoSURF SrcSurface,
+ IN gcoSURF DestSurface,
+ IN gcsPOINT_PTR SrcOrigin,
+ IN gcsPOINT_PTR DestOrigin,
+ IN gcsPOINT_PTR RectSize
+ );
+
/* Resolve rectangular area of a surface. */
gceSTATUS
gcoSURF_ResolveRect(
@@ -345,6 +354,11 @@ gcoSURF_IsRenderable(
IN gcoSURF Surface
);
+gceSTATUS
+gcoSURF_IsFormatRenderableAsRT(
+ IN gcoSURF Surface
+ );
+
#if gcdSYNC
gceSTATUS
gcoSURF_GetFence(
@@ -1006,6 +1020,7 @@ typedef struct _gcsALPHA_INFO
gctBOOL test;
gceCOMPARE compare;
gctUINT8 reference;
+ gctFLOAT floatReference;
/* Alpha blending states. */
gctBOOL blend;
@@ -1040,7 +1055,8 @@ gco3D_SetAlphaCompare(
gceSTATUS
gco3D_SetAlphaReference(
IN gco3D Engine,
- IN gctUINT8 Reference
+ IN gctUINT8 Reference,
+ IN gctFLOAT FloatReference
);
/* Set alpha test reference in fixed point. */
@@ -1504,6 +1520,19 @@ gcoTEXTURE_UploadSub(
IN gceSURF_FORMAT Format
);
+/* Upload YUV data to an gcoTEXTURE object. */
+gceSTATUS
+gcoTEXTURE_UploadYUV(
+ IN gcoTEXTURE Texture,
+ IN gceTEXTURE_FACE Face,
+ IN gctUINT Width,
+ IN gctUINT Height,
+ IN gctUINT Slice,
+ IN gctPOINTER Memory[3],
+ IN gctINT Stride[3],
+ IN gceSURF_FORMAT Format
+ );
+
/* Upload compressed data to an gcoTEXTURE object. */
gceSTATUS
gcoTEXTURE_UploadCompressed(
@@ -1621,6 +1650,13 @@ gcoTEXTURE_QueryCaps(
);
gceSTATUS
+gcoTEXTURE_GetTiling(
+ IN gcoTEXTURE Texture,
+ IN gctINT preferLevel,
+ OUT gceTILING * Tiling
+ );
+
+gceSTATUS
gcoTEXTURE_GetClosestFormat(
IN gcoHAL Hal,
IN gceSURF_FORMAT InFormat,
@@ -2001,6 +2037,14 @@ gcoHAL_SetSharedInfo(
IN gctSIZE_T Bytes
);
+#if VIVANTE_PROFILER_CONTEXT
+gceSTATUS
+gcoHARDWARE_GetContext(
+ IN gcoHARDWARE Hardware,
+ OUT gctUINT32 * Context
+ );
+#endif
+
#ifdef __cplusplus
}
#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 a1d9ae5dc610..8e3c2f89a8a2 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
@@ -146,10 +146,26 @@ typedef enum _gceFEATURE
gcvFEATURE_FRUSTUM_CLIP_FIX,
gcvFEATURE_TEXTURE_LINEAR,
gcvFEATURE_TEXTURE_YUV_ASSEMBLER,
+ gcvFEATURE_SHADER_HAS_INSTRUCTION_CACHE,
gcvFEATURE_DYNAMIC_FREQUENCY_SCALING,
gcvFEATURE_BUGFIX15,
+ gcvFEATURE_2D_GAMMA,
+ gcvFEATURE_2D_COLOR_SPACE_CONVERSION,
+ gcvFEATURE_2D_SUPER_TILE_VERSION,
gcvFEATURE_2D_MIRROR_EXTENSION,
+ gcvFEATURE_2D_SUPER_TILE_V1,
+ gcvFEATURE_2D_SUPER_TILE_V2,
+ gcvFEATURE_2D_SUPER_TILE_V3,
+ gcvFEATURE_2D_MULTI_SOURCE_BLT_EX2,
gcvFEATURE_ELEMENT_INDEX_UINT,
+ gcvFEATURE_2D_COMPRESSION,
+ gcvFEATURE_2D_OPF_YUV_OUTPUT,
+ gcvFEATURE_2D_MULTI_SRC_BLT_TO_UNIFIED_DST_RECT,
+ gcvFEATURE_2D_YUV_MODE,
+ gcvFEATURE_DECOMPRESS_Z16,
+ gcvFEATURE_LINEAR_RENDER_TARGET,
+ gcvFEATURE_BUG_FIXES8,
+ gcvFEATURE_HALTI2,
}
gceFEATURE;
@@ -203,11 +219,14 @@ typedef enum _gceSURF_TYPE
gcvSURF_NO_VIDMEM = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
In Android, vidmem node is allocated by another process. */
gcvSURF_CACHEABLE = 0x400, /* Used to allocate a cacheable surface */
-#if gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
gcvSURF_FLIP = 0x800, /* The Resolve Target the will been flip resolve from RT */
-#endif
gcvSURF_TILE_STATUS_DIRTY = 0x1000, /* Init tile status to all dirty */
+ gcvSURF_LINEAR = 0x2000,
+
+ gcvSURF_TEXTURE_LINEAR = gcvSURF_TEXTURE
+ | gcvSURF_LINEAR,
+
gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
| gcvSURF_NO_TILE_STATUS,
@@ -217,6 +236,9 @@ typedef enum _gceSURF_TYPE
gcvSURF_DEPTH_NO_TILE_STATUS = gcvSURF_DEPTH
| gcvSURF_NO_TILE_STATUS,
+ gcvSURF_DEPTH_TS_DIRTY = gcvSURF_DEPTH
+ | gcvSURF_TILE_STATUS_DIRTY,
+
/* Supported surface types with no vidmem node. */
gcvSURF_BITMAP_NO_VIDMEM = gcvSURF_BITMAP
| gcvSURF_NO_VIDMEM,
@@ -231,10 +253,8 @@ typedef enum _gceSURF_TYPE
gcvSURF_CACHEABLE_BITMAP = gcvSURF_BITMAP
| gcvSURF_CACHEABLE,
-#if gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
gcvSURF_FLIP_BITMAP = gcvSURF_BITMAP
| gcvSURF_FLIP,
-#endif
}
gceSURF_TYPE;
@@ -263,6 +283,9 @@ typedef enum _gceSURF_ROTATION
gcvSURF_270_DEGREE,
gcvSURF_FLIP_X,
gcvSURF_FLIP_Y,
+
+ gcvSURF_POST_FLIP_X = 0x40000000,
+ gcvSURF_POST_FLIP_Y = 0x80000000,
}
gceSURF_ROTATION;
@@ -622,21 +645,16 @@ gce2D_PORTER_DUFF_RULE;
typedef enum _gce2D_YUV_COLOR_MODE
{
gcv2D_YUV_601= 0,
- gcv2D_YUV_709
-}
-gce2D_YUV_COLOR_MODE;
+ gcv2D_YUV_709,
+ gcv2D_YUV_USER_DEFINED,
+ gcv2D_YUV_USER_DEFINED_CLAMP,
-/* 2D Rotation and flipping. */
-typedef enum _gce2D_ORIENTATION
-{
- gcv2D_0_DEGREE = 0,
- gcv2D_90_DEGREE,
- gcv2D_180_DEGREE,
- gcv2D_270_DEGREE,
- gcv2D_X_FLIP,
- gcv2D_Y_FLIP
+ /* Default setting is for src. gcv2D_YUV_DST
+ can be ORed to set dst.
+ */
+ gcv2D_YUV_DST = 0x80000000,
}
-gce2D_ORIENTATION;
+gce2D_YUV_COLOR_MODE;
typedef enum _gce2D_COMMAND
{
@@ -656,21 +674,39 @@ typedef enum _gce2D_TILE_STATUS_CONFIG
gcv2D_TSC_ENABLE = 0x00000001,
gcv2D_TSC_COMPRESSED = 0x00000002,
gcv2D_TSC_DOWN_SAMPLER = 0x00000004,
+ gcv2D_TSC_2D_COMPRESSED = 0x00000008,
}
gce2D_TILE_STATUS_CONFIG;
typedef enum _gce2D_QUERY
{
- gcv2D_QUERY_RGB_ADDRESS_MAX_ALIGN = 0,
- gcv2D_QUERY_RGB_STRIDE_MAX_ALIGN,
- gcv2D_QUERY_YUV_ADDRESS_MAX_ALIGN,
- gcv2D_QUERY_YUV_STRIDE_MAX_ALIGN,
+ gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN = 0,
+ gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
+ gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
+ gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
}
gce2D_QUERY;
+typedef enum _gce2D_SUPER_TILE_VERSION
+{
+ gcv2D_SUPER_TILE_VERSION_V1 = 1,
+ gcv2D_SUPER_TILE_VERSION_V2 = 2,
+ gcv2D_SUPER_TILE_VERSION_V3 = 3,
+}
+gce2D_SUPER_TILE_VERSION;
+
typedef enum _gce2D_STATE
{
gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE = 1,
+ gcv2D_STATE_SUPER_TILE_VERSION,
+ gcv2D_STATE_EN_GAMMA,
+ gcv2D_STATE_DE_GAMMA,
+ gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
+
+ gcv2D_STATE_ARRAY_EN_GAMMA = 0x10001,
+ gcv2D_STATE_ARRAY_DE_GAMMA,
+ gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
+ gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
}
gce2D_STATE;
@@ -809,6 +845,15 @@ typedef enum _gceUSER_SIGNAL_COMMAND_CODES
}
gceUSER_SIGNAL_COMMAND_CODES;
+/* Sync point command codes. */
+typedef enum _gceSYNC_POINT_COMMAND_CODES
+{
+ gcvSYNC_POINT_CREATE,
+ gcvSYNC_POINT_DESTROY,
+ gcvSYNC_POINT_SIGNAL,
+}
+gceSYNC_POINT_COMMAND_CODES;
+
/* Event locations. */
typedef enum _gceKERNEL_WHERE
{
@@ -848,6 +893,44 @@ typedef enum _gceDEBUG_MESSAGE_TYPE
}
gceDEBUG_MESSAGE_TYPE;
+typedef enum _gceSPECIAL_HINT
+{
+ gceSPECIAL_HINT0,
+ gceSPECIAL_HINT1,
+ gceSPECIAL_HINT2,
+ gceSPECIAL_HINT3,
+ /* For disable dynamic stream/index */
+ gceSPECIAL_HINT4
+}
+gceSPECIAL_HINT;
+
+typedef enum _gceMACHINECODE
+{
+ gcvMACHINECODE_HOVERJET0 = 0x0,
+ gcvMACHINECODE_HOVERJET1 ,
+
+ gcvMACHINECODE_TAIJI0 ,
+ gcvMACHINECODE_TAIJI1 ,
+ gcvMACHINECODE_TAIJI2 ,
+
+ gcvMACHINECODE_ANTUTU0 ,
+
+ gcvMACHINECODE_GLB27_RELEASE_0,
+ gcvMACHINECODE_GLB27_RELEASE_1,
+
+ gcvMACHINECODE_WAVESCAPE0 ,
+ gcvMACHINECODE_WAVESCAPE1 ,
+
+ gcvMACHINECODE_NENAMARKV2_4_0 ,
+ gcvMACHINECODE_NENAMARKV2_4_1 ,
+
+ gcvMACHINECODE_GLB25_RELEASE_0,
+ gcvMACHINECODE_GLB25_RELEASE_1,
+ gcvMACHINECODE_GLB25_RELEASE_2,
+}
+gceMACHINECODE;
+
+
/******************************************************************************\
****************************** Object Declarations *****************************
\******************************************************************************/
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 9e2a8dbf1c73..b53b618c2e50 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
@@ -46,7 +46,7 @@
This define enables the profiler.
*/
#ifndef VIVANTE_PROFILER
-# define VIVANTE_PROFILER 0
+# define VIVANTE_PROFILER 1
#endif
#ifndef VIVANTE_PROFILER_PERDRAW
@@ -54,6 +54,15 @@
#endif
/*
+ VIVANTE_PROFILER_CONTEXT
+
+ This define enables the profiler according to each hw context.
+*/
+#ifndef VIVANTE_PROFILER_CONTEXT
+# define VIVANTE_PROFILER_CONTEXT 1
+#endif
+
+/*
gcdUSE_VG
Enable VG HAL layer (only for GC350).
@@ -729,7 +738,24 @@
Use linear buffer for GPU apps so HWC can do 2D composition.
*/
#ifndef gcdGPU_LINEAR_BUFFER_ENABLED
-# define gcdGPU_LINEAR_BUFFER_ENABLED 0
+# define gcdGPU_LINEAR_BUFFER_ENABLED 1
+#endif
+
+/*
+ gcdENABLE_RENDER_INTO_WINDOW
+
+ Enable Render-Into-Window (ie, No-Resolve) feature on android.
+ NOTE that even if enabled, it still depends on hardware feature and
+ android application behavior. When hardware feature or application
+ behavior can not support render into window mode, it will fail back
+ to normal mode.
+ When Render-Into-Window is finally used, window back buffer of android
+ applications will be allocated matching render target tiling format.
+ Otherwise buffer tiling is decided by the above option
+ 'gcdGPU_LINEAR_BUFFER_ENABLED'.
+*/
+#ifndef gcdENABLE_RENDER_INTO_WINDOW
+# define gcdENABLE_RENDER_INTO_WINDOW 1
#endif
/*
@@ -758,7 +784,11 @@
#endif
#ifndef gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-# define gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST 0
+# ifdef ANDROID
+# define gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST 1
+# else
+# define gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST 0
+# endif
#endif
#ifndef gcdENABLE_PE_DITHER_FIX
@@ -800,6 +830,10 @@
# define gcdDISALBE_EARLY_EARLY_Z 1
#endif
+#ifndef gcdSHADER_SRC_BY_MACHINECODE
+# define gcdSHADER_SRC_BY_MACHINECODE 1
+#endif
+
/*
gcdLINK_QUEUE_SIZE
@@ -849,11 +883,20 @@
#define gcdUSE_NPOT_PATCH 1
#endif
-
#ifndef gcdSYNC
# define gcdSYNC 1
#endif
+#ifndef gcdENABLE_SPECIAL_HINT3
+# define gcdENABLE_SPECIAL_HINT3 1
+#endif
+
+#if defined(ANDROID)
+#ifndef gcdPRE_ROTATION
+# define gcdPRE_ROTATION 1
+#endif
+#endif
+
/*
gcdDVFS
@@ -866,4 +909,39 @@
# define gcdDVFS_POLLING_TIME (gcdDVFS_ANAYLSE_WINDOW * 4)
#endif
+/*
+ gcdANDROID_NATIVE_FENCE_SYNC
+
+ Enable android native fence sync. It is introduced since jellybean-4.2.
+ Depends on linux kernel option: CONFIG_SYNC.
+
+ 0: Disabled
+ 1: Build framework for native fence sync feature, and EGL extension
+ 2: Enable async swap buffers for client
+ * Native fence sync for client 'queueBuffer' in EGL, which is
+ 'acquireFenceFd' for layer in compositor side.
+ 3. Enable async hwcomposer composition.
+ * 'releaseFenceFd' for layer in compositor side, which is native
+ fence sync when client 'dequeueBuffer'
+ * Native fence sync for compositor 'queueBuffer' in EGL, which is
+ 'acquireFenceFd' for framebuffer target for DC
+ */
+#ifndef gcdANDROID_NATIVE_FENCE_SYNC
+# define gcdANDROID_NATIVE_FENCE_SYNC 0
+#endif
+
+#ifndef gcdFORCE_MIPMAP
+# define gcdFORCE_MIPMAP 0
+#endif
+
+/*
+ gcdFORCE_GAL_LOAD_TWICE
+
+ When non-zero, each thread except the main one will load libGAL.so twice to avoid potential segmetantion fault when app using dlopen/dlclose.
+ If threads exit arbitrarily, libGAL.so may not unload until the process quit.
+ */
+#ifndef gcdFORCE_GAL_LOAD_TWICE
+# define gcdFORCE_GAL_LOAD_TWICE 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 3e450ba723a1..aed73aa82c34 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
@@ -45,509 +45,115 @@ extern "C" {
#define gcdNEW_PROFILER_FILE 1
#endif
-/* OpenGL ES11 API IDs. */
-#define ES11_ACTIVETEXTURE 1
-#define ES11_ALPHAFUNC (ES11_ACTIVETEXTURE + 1)
-#define ES11_ALPHAFUNCX (ES11_ALPHAFUNC + 1)
-#define ES11_BINDBUFFER (ES11_ALPHAFUNCX + 1)
-#define ES11_BINDTEXTURE (ES11_BINDBUFFER + 1)
-#define ES11_BLENDFUNC (ES11_BINDTEXTURE + 1)
-#define ES11_BUFFERDATA (ES11_BLENDFUNC + 1)
-#define ES11_BUFFERSUBDATA (ES11_BUFFERDATA + 1)
-#define ES11_CLEAR (ES11_BUFFERSUBDATA + 1)
-#define ES11_CLEARCOLOR (ES11_CLEAR + 1)
-#define ES11_CLEARCOLORX (ES11_CLEARCOLOR + 1)
-#define ES11_CLEARDEPTHF (ES11_CLEARCOLORX + 1)
-#define ES11_CLEARDEPTHX (ES11_CLEARDEPTHF + 1)
-#define ES11_CLEARSTENCIL (ES11_CLEARDEPTHX + 1)
-#define ES11_CLIENTACTIVETEXTURE (ES11_CLEARSTENCIL + 1)
-#define ES11_CLIPPLANEF (ES11_CLIENTACTIVETEXTURE + 1)
-#define ES11_CLIPPLANEX (ES11_CLIPPLANEF + 1)
-#define ES11_COLOR4F (ES11_CLIPPLANEX + 1)
-#define ES11_COLOR4UB (ES11_COLOR4F + 1)
-#define ES11_COLOR4X (ES11_COLOR4UB + 1)
-#define ES11_COLORMASK (ES11_COLOR4X + 1)
-#define ES11_COLORPOINTER (ES11_COLORMASK + 1)
-#define ES11_COMPRESSEDTEXIMAGE2D (ES11_COLORPOINTER + 1)
-#define ES11_COMPRESSEDTEXSUBIMAGE2D (ES11_COMPRESSEDTEXIMAGE2D + 1)
-#define ES11_COPYTEXIMAGE2D (ES11_COMPRESSEDTEXSUBIMAGE2D + 1)
-#define ES11_COPYTEXSUBIMAGE2D (ES11_COPYTEXIMAGE2D + 1)
-#define ES11_CULLFACE (ES11_COPYTEXSUBIMAGE2D + 1)
-#define ES11_DELETEBUFFERS (ES11_CULLFACE + 1)
-#define ES11_DELETETEXTURES (ES11_DELETEBUFFERS + 1)
-#define ES11_DEPTHFUNC (ES11_DELETETEXTURES + 1)
-#define ES11_DEPTHMASK (ES11_DEPTHFUNC + 1)
-#define ES11_DEPTHRANGEF (ES11_DEPTHMASK + 1)
-#define ES11_DEPTHRANGEX (ES11_DEPTHRANGEF + 1)
-#define ES11_DISABLE (ES11_DEPTHRANGEX + 1)
-#define ES11_DISABLECLIENTSTATE (ES11_DISABLE + 1)
-#define ES11_DRAWARRAYS (ES11_DISABLECLIENTSTATE + 1)
-#define ES11_DRAWELEMENTS (ES11_DRAWARRAYS + 1)
-#define ES11_ENABLE (ES11_DRAWELEMENTS + 1)
-#define ES11_ENABLECLIENTSTATE (ES11_ENABLE + 1)
-#define ES11_FINISH (ES11_ENABLECLIENTSTATE + 1)
-#define ES11_FLUSH (ES11_FINISH + 1)
-#define ES11_FOGF (ES11_FLUSH + 1)
-#define ES11_FOGFV (ES11_FOGF + 1)
-#define ES11_FOGX (ES11_FOGFV + 1)
-#define ES11_FOGXV (ES11_FOGX + 1)
-#define ES11_FRONTFACE (ES11_FOGXV + 1)
-#define ES11_FRUSTUMF (ES11_FRONTFACE + 1)
-#define ES11_FRUSTUMX (ES11_FRUSTUMF + 1)
-#define ES11_GENBUFFERS (ES11_FRUSTUMX + 1)
-#define ES11_GENTEXTURES (ES11_GENBUFFERS + 1)
-#define ES11_GETBOOLEANV (ES11_GENTEXTURES + 1)
-#define ES11_GETBUFFERPARAMETERIV (ES11_GETBOOLEANV + 1)
-#define ES11_GETCLIPPLANEF (ES11_GETBUFFERPARAMETERIV + 1)
-#define ES11_GETCLIPPLANEX (ES11_GETCLIPPLANEF + 1)
-#define ES11_GETERROR (ES11_GETCLIPPLANEX + 1)
-#define ES11_GETFIXEDV (ES11_GETERROR + 1)
-#define ES11_GETFLOATV (ES11_GETFIXEDV + 1)
-#define ES11_GETINTEGERV (ES11_GETFLOATV + 1)
-#define ES11_GETLIGHTFV (ES11_GETINTEGERV + 1)
-#define ES11_GETLIGHTXV (ES11_GETLIGHTFV + 1)
-#define ES11_GETMATERIALFV (ES11_GETLIGHTXV + 1)
-#define ES11_GETMATERIALXV (ES11_GETMATERIALFV + 1)
-#define ES11_GETPOINTERV (ES11_GETMATERIALXV + 1)
-#define ES11_GETSTRING (ES11_GETPOINTERV + 1)
-#define ES11_GETTEXENVFV (ES11_GETSTRING + 1)
-#define ES11_GETTEXENVIV (ES11_GETTEXENVFV + 1)
-#define ES11_GETTEXENVXV (ES11_GETTEXENVIV + 1)
-#define ES11_GETTEXPARAMETERFV (ES11_GETTEXENVXV + 1)
-#define ES11_GETTEXPARAMETERIV (ES11_GETTEXPARAMETERFV + 1)
-#define ES11_GETTEXPARAMETERXV (ES11_GETTEXPARAMETERIV + 1)
-#define ES11_HINT (ES11_GETTEXPARAMETERXV + 1)
-#define ES11_ISBUFFER (ES11_HINT + 1)
-#define ES11_ISENABLED (ES11_ISBUFFER + 1)
-#define ES11_ISTEXTURE (ES11_ISENABLED + 1)
-#define ES11_LIGHTF (ES11_ISTEXTURE + 1)
-#define ES11_LIGHTFV (ES11_LIGHTF + 1)
-#define ES11_LIGHTMODELF (ES11_LIGHTFV + 1)
-#define ES11_LIGHTMODELFV (ES11_LIGHTMODELF + 1)
-#define ES11_LIGHTMODELX (ES11_LIGHTMODELFV + 1)
-#define ES11_LIGHTMODELXV (ES11_LIGHTMODELX + 1)
-#define ES11_LIGHTX (ES11_LIGHTMODELXV + 1)
-#define ES11_LIGHTXV (ES11_LIGHTX + 1)
-#define ES11_LINEWIDTH (ES11_LIGHTXV + 1)
-#define ES11_LINEWIDTHX (ES11_LINEWIDTH + 1)
-#define ES11_LOADIDENTITY (ES11_LINEWIDTHX + 1)
-#define ES11_LOADMATRIXF (ES11_LOADIDENTITY + 1)
-#define ES11_LOADMATRIXX (ES11_LOADMATRIXF + 1)
-#define ES11_LOGICOP (ES11_LOADMATRIXX + 1)
-#define ES11_MATERIALF (ES11_LOGICOP + 1)
-#define ES11_MATERIALFV (ES11_MATERIALF + 1)
-#define ES11_MATERIALX (ES11_MATERIALFV + 1)
-#define ES11_MATERIALXV (ES11_MATERIALX + 1)
-#define ES11_MATRIXMODE (ES11_MATERIALXV + 1)
-#define ES11_MULTITEXCOORD4F (ES11_MATRIXMODE + 1)
-#define ES11_MULTITEXCOORD4X (ES11_MULTITEXCOORD4F + 1)
-#define ES11_MULTMATRIXF (ES11_MULTITEXCOORD4X + 1)
-#define ES11_MULTMATRIXX (ES11_MULTMATRIXF + 1)
-#define ES11_NORMAL3F (ES11_MULTMATRIXX + 1)
-#define ES11_NORMAL3X (ES11_NORMAL3F + 1)
-#define ES11_NORMALPOINTER (ES11_NORMAL3X + 1)
-#define ES11_ORTHOF (ES11_NORMALPOINTER + 1)
-#define ES11_ORTHOX (ES11_ORTHOF + 1)
-#define ES11_PIXELSTOREI (ES11_ORTHOX + 1)
-#define ES11_POINTPARAMETERF (ES11_PIXELSTOREI + 1)
-#define ES11_POINTPARAMETERFV (ES11_POINTPARAMETERF + 1)
-#define ES11_POINTPARAMETERX (ES11_POINTPARAMETERFV + 1)
-#define ES11_POINTPARAMETERXV (ES11_POINTPARAMETERX + 1)
-#define ES11_POINTSIZE (ES11_POINTPARAMETERXV + 1)
-#define ES11_POINTSIZEX (ES11_POINTSIZE + 1)
-#define ES11_POLYGONOFFSET (ES11_POINTSIZEX + 1)
-#define ES11_POLYGONOFFSETX (ES11_POLYGONOFFSET + 1)
-#define ES11_POPMATRIX (ES11_POLYGONOFFSETX + 1)
-#define ES11_PUSHMATRIX (ES11_POPMATRIX + 1)
-#define ES11_READPIXELS (ES11_PUSHMATRIX + 1)
-#define ES11_ROTATEF (ES11_READPIXELS + 1)
-#define ES11_ROTATEX (ES11_ROTATEF + 1)
-#define ES11_SAMPLECOVERAGE (ES11_ROTATEX + 1)
-#define ES11_SAMPLECOVERAGEX (ES11_SAMPLECOVERAGE + 1)
-#define ES11_SCALEF (ES11_SAMPLECOVERAGEX + 1)
-#define ES11_SCALEX (ES11_SCALEF + 1)
-#define ES11_SCISSOR (ES11_SCALEX + 1)
-#define ES11_SHADEMODEL (ES11_SCISSOR + 1)
-#define ES11_STENCILFUNC (ES11_SHADEMODEL + 1)
-#define ES11_STENCILMASK (ES11_STENCILFUNC + 1)
-#define ES11_STENCILOP (ES11_STENCILMASK + 1)
-#define ES11_TEXCOORDPOINTER (ES11_STENCILOP + 1)
-#define ES11_TEXENVF (ES11_TEXCOORDPOINTER + 1)
-#define ES11_TEXENVFV (ES11_TEXENVF + 1)
-#define ES11_TEXENVI (ES11_TEXENVFV + 1)
-#define ES11_TEXENVIV (ES11_TEXENVI + 1)
-#define ES11_TEXENVX (ES11_TEXENVIV + 1)
-#define ES11_TEXENVXV (ES11_TEXENVX + 1)
-#define ES11_TEXIMAGE2D (ES11_TEXENVXV + 1)
-#define ES11_TEXPARAMETERF (ES11_TEXIMAGE2D + 1)
-#define ES11_TEXPARAMETERFV (ES11_TEXPARAMETERF + 1)
-#define ES11_TEXPARAMETERI (ES11_TEXPARAMETERFV + 1)
-#define ES11_TEXPARAMETERIV (ES11_TEXPARAMETERI + 1)
-#define ES11_TEXPARAMETERX (ES11_TEXPARAMETERIV + 1)
-#define ES11_TEXPARAMETERXV (ES11_TEXPARAMETERX + 1)
-#define ES11_TEXSUBIMAGE2D (ES11_TEXPARAMETERXV + 1)
-#define ES11_TRANSLATEF (ES11_TEXSUBIMAGE2D + 1)
-#define ES11_TRANSLATEX (ES11_TRANSLATEF + 1)
-#define ES11_VERTEXPOINTER (ES11_TRANSLATEX + 1)
-#define ES11_VIEWPORT (ES11_VERTEXPOINTER + 1)
-#define ES11_BLENDEQUATIONOES (ES11_VIEWPORT + 1)
-#define ES11_BLENDFUNCSEPERATEOES (ES11_BLENDEQUATIONOES + 1)
-#define ES11_BLENDEQUATIONSEPARATEOES (ES11_BLENDFUNCSEPERATEOES + 1)
-#define ES11_GLMAPBUFFEROES (ES11_BLENDEQUATIONSEPARATEOES + 1)
-#define ES11_GLUNMAPBUFFEROES (ES11_GLMAPBUFFEROES + 1)
-#define ES11_GLGETBUFFERPOINTERVOES (ES11_GLUNMAPBUFFEROES + 1)
-#define ES11_CALLS (ES11_GLGETBUFFERPOINTERVOES + 1)
-#define ES11_DRAWCALLS (ES11_CALLS + 1)
-#define ES11_STATECHANGECALLS (ES11_DRAWCALLS + 1)
-#define ES11_POINTCOUNT (ES11_STATECHANGECALLS + 1)
-#define ES11_LINECOUNT (ES11_POINTCOUNT + 1)
-#define ES11_TRIANGLECOUNT (ES11_LINECOUNT + 1)
-
-/* OpenGL ES2X API IDs. */
-#define ES20_ACTIVETEXTURE 1
-#define ES20_ATTACHSHADER (ES20_ACTIVETEXTURE + 1)
-#define ES20_BINDATTRIBLOCATION (ES20_ATTACHSHADER + 1)
-#define ES20_BINDBUFFER (ES20_BINDATTRIBLOCATION + 1)
-#define ES20_BINDFRAMEBUFFER (ES20_BINDBUFFER + 1)
-#define ES20_BINDRENDERBUFFER (ES20_BINDFRAMEBUFFER + 1)
-#define ES20_BINDTEXTURE (ES20_BINDRENDERBUFFER + 1)
-#define ES20_BLENDCOLOR (ES20_BINDTEXTURE + 1)
-#define ES20_BLENDEQUATION (ES20_BLENDCOLOR + 1)
-#define ES20_BLENDEQUATIONSEPARATE (ES20_BLENDEQUATION + 1)
-#define ES20_BLENDFUNC (ES20_BLENDEQUATIONSEPARATE + 1)
-#define ES20_BLENDFUNCSEPARATE (ES20_BLENDFUNC + 1)
-#define ES20_BUFFERDATA (ES20_BLENDFUNCSEPARATE + 1)
-#define ES20_BUFFERSUBDATA (ES20_BUFFERDATA + 1)
-#define ES20_CHECKFRAMEBUFFERSTATUS (ES20_BUFFERSUBDATA + 1)
-#define ES20_CLEAR (ES20_CHECKFRAMEBUFFERSTATUS + 1)
-#define ES20_CLEARCOLOR (ES20_CLEAR + 1)
-#define ES20_CLEARDEPTHF (ES20_CLEARCOLOR + 1)
-#define ES20_CLEARSTENCIL (ES20_CLEARDEPTHF + 1)
-#define ES20_COLORMASK (ES20_CLEARSTENCIL + 1)
-#define ES20_COMPILESHADER (ES20_COLORMASK + 1)
-#define ES20_COMPRESSEDTEXIMAGE2D (ES20_COMPILESHADER + 1)
-#define ES20_COMPRESSEDTEXSUBIMAGE2D (ES20_COMPRESSEDTEXIMAGE2D + 1)
-#define ES20_COPYTEXIMAGE2D (ES20_COMPRESSEDTEXSUBIMAGE2D + 1)
-#define ES20_COPYTEXSUBIMAGE2D (ES20_COPYTEXIMAGE2D + 1)
-#define ES20_CREATEPROGRAM (ES20_COPYTEXSUBIMAGE2D + 1)
-#define ES20_CREATESHADER (ES20_CREATEPROGRAM + 1)
-#define ES20_CULLFACE (ES20_CREATESHADER + 1)
-#define ES20_DELETEBUFFERS (ES20_CULLFACE + 1)
-#define ES20_DELETEFRAMEBUFFERS (ES20_DELETEBUFFERS + 1)
-#define ES20_DELETEPROGRAM (ES20_DELETEFRAMEBUFFERS + 1)
-#define ES20_DELETERENDERBUFFERS (ES20_DELETEPROGRAM + 1)
-#define ES20_DELETESHADER (ES20_DELETERENDERBUFFERS + 1)
-#define ES20_DELETETEXTURES (ES20_DELETESHADER + 1)
-#define ES20_DEPTHFUNC (ES20_DELETETEXTURES + 1)
-#define ES20_DEPTHMASK (ES20_DEPTHFUNC + 1)
-#define ES20_DEPTHRANGEF (ES20_DEPTHMASK + 1)
-#define ES20_DETACHSHADER (ES20_DEPTHRANGEF + 1)
-#define ES20_DISABLE (ES20_DETACHSHADER + 1)
-#define ES20_DISABLEVERTEXATTRIBARRAY (ES20_DISABLE + 1)
-#define ES20_DRAWARRAYS (ES20_DISABLEVERTEXATTRIBARRAY + 1)
-#define ES20_DRAWELEMENTS (ES20_DRAWARRAYS + 1)
-#define ES20_ENABLE (ES20_DRAWELEMENTS + 1)
-#define ES20_ENABLEVERTEXATTRIBARRAY (ES20_ENABLE + 1)
-#define ES20_FINISH (ES20_ENABLEVERTEXATTRIBARRAY + 1)
-#define ES20_FLUSH (ES20_FINISH + 1)
-#define ES20_FRAMEBUFFERRENDERBUFFER (ES20_FLUSH + 1)
-#define ES20_FRAMEBUFFERTEXTURE2D (ES20_FRAMEBUFFERRENDERBUFFER + 1)
-#define ES20_FRONTFACE (ES20_FRAMEBUFFERTEXTURE2D + 1)
-#define ES20_GENBUFFERS (ES20_FRONTFACE + 1)
-#define ES20_GENERATEMIPMAP (ES20_GENBUFFERS + 1)
-#define ES20_GENFRAMEBUFFERS (ES20_GENERATEMIPMAP + 1)
-#define ES20_GENRENDERBUFFERS (ES20_GENFRAMEBUFFERS + 1)
-#define ES20_GENTEXTURES (ES20_GENRENDERBUFFERS + 1)
-#define ES20_GETACTIVEATTRIB (ES20_GENTEXTURES + 1)
-#define ES20_GETACTIVEUNIFORM (ES20_GETACTIVEATTRIB + 1)
-#define ES20_GETATTACHEDSHADERS (ES20_GETACTIVEUNIFORM + 1)
-#define ES20_GETATTRIBLOCATION (ES20_GETATTACHEDSHADERS + 1)
-#define ES20_GETBOOLEANV (ES20_GETATTRIBLOCATION + 1)
-#define ES20_GETBUFFERPARAMETERIV (ES20_GETBOOLEANV + 1)
-#define ES20_GETERROR (ES20_GETBUFFERPARAMETERIV + 1)
-#define ES20_GETFLOATV (ES20_GETERROR + 1)
-#define ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV (ES20_GETFLOATV + 1)
-#define ES20_GETINTEGERV (ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV + 1)
-#define ES20_GETPROGRAMIV (ES20_GETINTEGERV + 1)
-#define ES20_GETPROGRAMINFOLOG (ES20_GETPROGRAMIV + 1)
-#define ES20_GETRENDERBUFFERPARAMETERIV (ES20_GETPROGRAMINFOLOG + 1)
-#define ES20_GETSHADERIV (ES20_GETRENDERBUFFERPARAMETERIV + 1)
-#define ES20_GETSHADERINFOLOG (ES20_GETSHADERIV + 1)
-#define ES20_GETSHADERPRECISIONFORMAT (ES20_GETSHADERINFOLOG + 1)
-#define ES20_GETSHADERSOURCE (ES20_GETSHADERPRECISIONFORMAT + 1)
-#define ES20_GETSTRING (ES20_GETSHADERSOURCE + 1)
-#define ES20_GETTEXPARAMETERFV (ES20_GETSTRING + 1)
-#define ES20_GETTEXPARAMETERIV (ES20_GETTEXPARAMETERFV + 1)
-#define ES20_GETUNIFORMFV (ES20_GETTEXPARAMETERIV + 1)
-#define ES20_GETUNIFORMIV (ES20_GETUNIFORMFV + 1)
-#define ES20_GETUNIFORMLOCATION (ES20_GETUNIFORMIV + 1)
-#define ES20_GETVERTEXATTRIBFV (ES20_GETUNIFORMLOCATION + 1)
-#define ES20_GETVERTEXATTRIBIV (ES20_GETVERTEXATTRIBFV + 1)
-#define ES20_GETVERTEXATTRIBPOINTERV (ES20_GETVERTEXATTRIBIV + 1)
-#define ES20_HINT (ES20_GETVERTEXATTRIBPOINTERV + 1)
-#define ES20_ISBUFFER (ES20_HINT + 1)
-#define ES20_ISENABLED (ES20_ISBUFFER + 1)
-#define ES20_ISFRAMEBUFFER (ES20_ISENABLED + 1)
-#define ES20_ISPROGRAM (ES20_ISFRAMEBUFFER + 1)
-#define ES20_ISRENDERBUFFER (ES20_ISPROGRAM + 1)
-#define ES20_ISSHADER (ES20_ISRENDERBUFFER + 1)
-#define ES20_ISTEXTURE (ES20_ISSHADER + 1)
-#define ES20_LINEWIDTH (ES20_ISTEXTURE + 1)
-#define ES20_LINKPROGRAM (ES20_LINEWIDTH + 1)
-#define ES20_PIXELSTOREI (ES20_LINKPROGRAM + 1)
-#define ES20_POLYGONOFFSET (ES20_PIXELSTOREI + 1)
-#define ES20_READPIXELS (ES20_POLYGONOFFSET + 1)
-#define ES20_RELEASESHADERCOMPILER (ES20_READPIXELS + 1)
-#define ES20_RENDERBUFFERSTORAGE (ES20_RELEASESHADERCOMPILER + 1)
-#define ES20_SAMPLECOVERAGE (ES20_RENDERBUFFERSTORAGE + 1)
-#define ES20_SCISSOR (ES20_SAMPLECOVERAGE + 1)
-#define ES20_SHADERBINARY (ES20_SCISSOR + 1)
-#define ES20_SHADERSOURCE (ES20_SHADERBINARY + 1)
-#define ES20_STENCILFUNC (ES20_SHADERSOURCE + 1)
-#define ES20_STENCILFUNCSEPARATE (ES20_STENCILFUNC + 1)
-#define ES20_STENCILMASK (ES20_STENCILFUNCSEPARATE + 1)
-#define ES20_STENCILMASKSEPARATE (ES20_STENCILMASK + 1)
-#define ES20_STENCILOP (ES20_STENCILMASKSEPARATE + 1)
-#define ES20_STENCILOPSEPARATE (ES20_STENCILOP + 1)
-#define ES20_TEXIMAGE2D (ES20_STENCILOPSEPARATE + 1)
-#define ES20_TEXPARAMETERF (ES20_TEXIMAGE2D + 1)
-#define ES20_TEXPARAMETERFV (ES20_TEXPARAMETERF + 1)
-#define ES20_TEXPARAMETERI (ES20_TEXPARAMETERFV + 1)
-#define ES20_TEXPARAMETERIV (ES20_TEXPARAMETERI + 1)
-#define ES20_TEXSUBIMAGE2D (ES20_TEXPARAMETERIV + 1)
-#define ES20_UNIFORM1F (ES20_TEXSUBIMAGE2D + 1)
-#define ES20_UNIFORM1FV (ES20_UNIFORM1F + 1)
-#define ES20_UNIFORM1I (ES20_UNIFORM1FV + 1)
-#define ES20_UNIFORM1IV (ES20_UNIFORM1I + 1)
-#define ES20_UNIFORM2F (ES20_UNIFORM1IV + 1)
-#define ES20_UNIFORM2FV (ES20_UNIFORM2F + 1)
-#define ES20_UNIFORM2I (ES20_UNIFORM2FV + 1)
-#define ES20_UNIFORM2IV (ES20_UNIFORM2I + 1)
-#define ES20_UNIFORM3F (ES20_UNIFORM2IV + 1)
-#define ES20_UNIFORM3FV (ES20_UNIFORM3F + 1)
-#define ES20_UNIFORM3I (ES20_UNIFORM3FV + 1)
-#define ES20_UNIFORM3IV (ES20_UNIFORM3I + 1)
-#define ES20_UNIFORM4F (ES20_UNIFORM3IV + 1)
-#define ES20_UNIFORM4FV (ES20_UNIFORM4F + 1)
-#define ES20_UNIFORM4I (ES20_UNIFORM4FV + 1)
-#define ES20_UNIFORM4IV (ES20_UNIFORM4I + 1)
-#define ES20_UNIFORMMATRIX2FV (ES20_UNIFORM4IV + 1)
-#define ES20_UNIFORMMATRIX3FV (ES20_UNIFORMMATRIX2FV + 1)
-#define ES20_UNIFORMMATRIX4FV (ES20_UNIFORMMATRIX3FV + 1)
-#define ES20_USEPROGRAM (ES20_UNIFORMMATRIX4FV + 1)
-#define ES20_VALIDATEPROGRAM (ES20_USEPROGRAM + 1)
-#define ES20_VERTEXATTRIB1F (ES20_VALIDATEPROGRAM + 1)
-#define ES20_VERTEXATTRIB1FV (ES20_VERTEXATTRIB1F + 1)
-#define ES20_VERTEXATTRIB2F (ES20_VERTEXATTRIB1FV + 1)
-#define ES20_VERTEXATTRIB2FV (ES20_VERTEXATTRIB2F + 1)
-#define ES20_VERTEXATTRIB3F (ES20_VERTEXATTRIB2FV + 1)
-#define ES20_VERTEXATTRIB3FV (ES20_VERTEXATTRIB3F + 1)
-#define ES20_VERTEXATTRIB4F (ES20_VERTEXATTRIB3FV + 1)
-#define ES20_VERTEXATTRIB4FV (ES20_VERTEXATTRIB4F + 1)
-#define ES20_VERTEXATTRIBPOINTER (ES20_VERTEXATTRIB4FV + 1)
-#define ES20_VIEWPORT (ES20_VERTEXATTRIBPOINTER + 1)
-#define ES20_GETPROGRAMBINARYOES (ES20_VIEWPORT + 1)
-#define ES20_PROGRAMBINARYOES (ES20_GETPROGRAMBINARYOES + 1)
-#define ES20_TEXIMAGE3DOES (ES20_PROGRAMBINARYOES + 1)
-#define ES20_TEXSUBIMAGE3DOES (ES20_TEXIMAGE3DOES + 1)
-#define ES20_COPYSUBIMAGE3DOES (ES20_TEXSUBIMAGE3DOES + 1)
-#define ES20_COMPRESSEDTEXIMAGE3DOES (ES20_COPYSUBIMAGE3DOES + 1)
-#define ES20_COMPRESSEDTEXSUBIMAGE3DOES (ES20_COMPRESSEDTEXIMAGE3DOES + 1)
-#define ES20_FRAMEBUFFERTEXTURE3DOES (ES20_COMPRESSEDTEXSUBIMAGE3DOES + 1)
-#define ES20_BINDVERTEXARRAYOES (ES20_FRAMEBUFFERTEXTURE3DOES + 1)
-#define ES20_GENVERTEXARRAYOES (ES20_BINDVERTEXARRAYOES + 1)
-#define ES20_ISVERTEXARRAYOES (ES20_GENVERTEXARRAYOES + 1)
-#define ES20_DELETEVERTEXARRAYOES (ES20_ISVERTEXARRAYOES + 1)
-#define ES20_GLMAPBUFFEROES (ES20_DELETEVERTEXARRAYOES + 1)
-#define ES20_GLUNMAPBUFFEROES (ES20_GLMAPBUFFEROES + 1)
-#define ES20_GLGETBUFFERPOINTERVOES (ES20_GLUNMAPBUFFEROES + 1)
-#define ES20_DISCARDFRAMEBUFFEREXT (ES20_GLGETBUFFERPOINTERVOES + 1)
-#define ES20_CALLS (ES20_DISCARDFRAMEBUFFEREXT + 1)
-#define ES20_DRAWCALLS (ES20_CALLS + 1)
-#define ES20_STATECHANGECALLS (ES20_DRAWCALLS + 1)
-#define ES20_POINTCOUNT (ES20_STATECHANGECALLS + 1)
-#define ES20_LINECOUNT (ES20_POINTCOUNT + 1)
-#define ES20_TRIANGLECOUNT (ES20_LINECOUNT + 1)
-
-/* OpenVG API IDs. */
-#define VG11_APPENDPATH 1
-#define VG11_APPENDPATHDATA (VG11_APPENDPATH + 1)
-#define VG11_CHILDIMAGE (VG11_APPENDPATHDATA + 1)
-#define VG11_CLEAR (VG11_CHILDIMAGE + 1)
-#define VG11_CLEARGLYPH (VG11_CLEAR + 1)
-#define VG11_CLEARIMAGE (VG11_CLEARGLYPH + 1)
-#define VG11_CLEARPATH (VG11_CLEARIMAGE + 1)
-#define VG11_COLORMATRIX (VG11_CLEARPATH + 1)
-#define VG11_CONVOLVE (VG11_COLORMATRIX + 1)
-#define VG11_COPYIMAGE (VG11_CONVOLVE + 1)
-#define VG11_COPYMASK (VG11_COPYIMAGE + 1)
-#define VG11_COPYPIXELS (VG11_COPYMASK + 1)
-#define VG11_CREATEFONT (VG11_COPYPIXELS + 1)
-#define VG11_CREATEIMAGE (VG11_CREATEFONT + 1)
-#define VG11_CREATEMASKLAYER (VG11_CREATEIMAGE + 1)
-#define VG11_CREATEPAINT (VG11_CREATEMASKLAYER + 1)
-#define VG11_CREATEPATH (VG11_CREATEPAINT + 1)
-#define VG11_DESTROYFONT (VG11_CREATEPATH + 1)
-#define VG11_DESTROYIMAGE (VG11_DESTROYFONT + 1)
-#define VG11_DESTROYMASKLAYER (VG11_DESTROYIMAGE + 1)
-#define VG11_DESTROYPAINT (VG11_DESTROYMASKLAYER + 1)
-#define VG11_DESTROYPATH (VG11_DESTROYPAINT + 1)
-#define VG11_DRAWGLYPH (VG11_DESTROYPATH + 1)
-#define VG11_DRAWGLYPHS (VG11_DRAWGLYPH + 1)
-#define VG11_DRAWIMAGE (VG11_DRAWGLYPHS + 1)
-#define VG11_DRAWPATH (VG11_DRAWIMAGE + 1)
-#define VG11_FILLMASKLAYER (VG11_DRAWPATH + 1)
-#define VG11_FINISH (VG11_FILLMASKLAYER + 1)
-#define VG11_FLUSH (VG11_FINISH + 1)
-#define VG11_GAUSSIANBLUR (VG11_FLUSH + 1)
-#define VG11_GETCOLOR (VG11_GAUSSIANBLUR + 1)
-#define VG11_GETERROR (VG11_GETCOLOR + 1)
-#define VG11_GETF (VG11_GETERROR + 1)
-#define VG11_GETFV (VG11_GETF + 1)
-#define VG11_GETI (VG11_GETFV + 1)
-#define VG11_GETIMAGESUBDATA (VG11_GETI + 1)
-#define VG11_GETIV (VG11_GETIMAGESUBDATA + 1)
-#define VG11_GETMATRIX (VG11_GETIV + 1)
-#define VG11_GETPAINT (VG11_GETMATRIX + 1)
-#define VG11_GETPARAMETERF (VG11_GETPAINT + 1)
-#define VG11_GETPARAMETERFV (VG11_GETPARAMETERF + 1)
-#define VG11_GETPARAMETERI (VG11_GETPARAMETERFV + 1)
-#define VG11_GETPARAMETERIV (VG11_GETPARAMETERI + 1)
-#define VG11_GETPARAMETERVECTORSIZE (VG11_GETPARAMETERIV + 1)
-#define VG11_GETPARENT (VG11_GETPARAMETERVECTORSIZE + 1)
-#define VG11_GETPATHCAPABILITIES (VG11_GETPARENT + 1)
-#define VG11_GETPIXELS (VG11_GETPATHCAPABILITIES + 1)
-#define VG11_GETSTRING (VG11_GETPIXELS + 1)
-#define VG11_GETVECTORSIZE (VG11_GETSTRING + 1)
-#define VG11_HARDWAREQUERY (VG11_GETVECTORSIZE + 1)
-#define VG11_IMAGESUBDATA (VG11_HARDWAREQUERY + 1)
-#define VG11_INTERPOLATEPATH (VG11_IMAGESUBDATA + 1)
-#define VG11_LOADIDENTITY (VG11_INTERPOLATEPATH + 1)
-#define VG11_LOADMATRIX (VG11_LOADIDENTITY + 1)
-#define VG11_LOOKUP (VG11_LOADMATRIX + 1)
-#define VG11_LOOKUPSINGLE (VG11_LOOKUP + 1)
-#define VG11_MASK (VG11_LOOKUPSINGLE + 1)
-#define VG11_MODIFYPATHCOORDS (VG11_MASK + 1)
-#define VG11_MULTMATRIX (VG11_MODIFYPATHCOORDS + 1)
-#define VG11_PAINTPATTERN (VG11_MULTMATRIX + 1)
-#define VG11_PATHBOUNDS (VG11_PAINTPATTERN + 1)
-#define VG11_PATHLENGTH (VG11_PATHBOUNDS + 1)
-#define VG11_PATHTRANSFORMEDBOUNDS (VG11_PATHLENGTH + 1)
-#define VG11_POINTALONGPATH (VG11_PATHTRANSFORMEDBOUNDS + 1)
-#define VG11_READPIXELS (VG11_POINTALONGPATH + 1)
-#define VG11_REMOVEPATHCAPABILITIES (VG11_READPIXELS + 1)
-#define VG11_RENDERTOMASK (VG11_REMOVEPATHCAPABILITIES + 1)
-#define VG11_ROTATE (VG11_RENDERTOMASK + 1)
-#define VG11_SCALE (VG11_ROTATE + 1)
-#define VG11_SEPARABLECONVOLVE (VG11_SCALE + 1)
-#define VG11_SETCOLOR (VG11_SEPARABLECONVOLVE + 1)
-#define VG11_SETF (VG11_SETCOLOR + 1)
-#define VG11_SETFV (VG11_SETF + 1)
-#define VG11_SETGLYPHTOIMAGE (VG11_SETFV + 1)
-#define VG11_SETGLYPHTOPATH (VG11_SETGLYPHTOIMAGE + 1)
-#define VG11_SETI (VG11_SETGLYPHTOPATH + 1)
-#define VG11_SETIV (VG11_SETI + 1)
-#define VG11_SETPAINT (VG11_SETIV + 1)
-#define VG11_SETPARAMETERF (VG11_SETPAINT + 1)
-#define VG11_SETPARAMETERFV (VG11_SETPARAMETERF + 1)
-#define VG11_SETPARAMETERI (VG11_SETPARAMETERFV + 1)
-#define VG11_SETPARAMETERIV (VG11_SETPARAMETERI + 1)
-#define VG11_SETPIXELS (VG11_SETPARAMETERIV + 1)
-#define VG11_SHEAR (VG11_SETPIXELS + 1)
-#define VG11_TRANSFORMPATH (VG11_SHEAR + 1)
-#define VG11_TRANSLATE (VG11_TRANSFORMPATH + 1)
-#define VG11_WRITEPIXELS (VG11_TRANSLATE + 1)
-#define VG11_CALLS (VG11_WRITEPIXELS + 1)
-#define VG11_DRAWCALLS (VG11_CALLS + 1)
-#define VG11_STATECHANGECALLS (VG11_DRAWCALLS + 1)
-#define VG11_FILLCOUNT (VG11_STATECHANGECALLS + 1)
-#define VG11_STROKECOUNT (VG11_FILLCOUNT + 1)
+#define ES11_CALLS 151
+#define ES11_DRAWCALLS (ES11_CALLS + 1)
+#define ES11_STATECHANGECALLS (ES11_DRAWCALLS + 1)
+#define ES11_POINTCOUNT (ES11_STATECHANGECALLS + 1)
+#define ES11_LINECOUNT (ES11_POINTCOUNT + 1)
+#define ES11_TRIANGLECOUNT (ES11_LINECOUNT + 1)
+
+#define ES20_CALLS 159
+#define ES20_DRAWCALLS (ES20_CALLS + 1)
+#define ES20_STATECHANGECALLS (ES20_DRAWCALLS + 1)
+#define ES20_POINTCOUNT (ES20_STATECHANGECALLS + 1)
+#define ES20_LINECOUNT (ES20_POINTCOUNT + 1)
+#define ES20_TRIANGLECOUNT (ES20_LINECOUNT + 1)
+
+#define VG11_CALLS 88
+#define VG11_DRAWCALLS (VG11_CALLS + 1)
+#define VG11_STATECHANGECALLS (VG11_DRAWCALLS + 1)
+#define VG11_FILLCOUNT (VG11_STATECHANGECALLS + 1)
+#define VG11_STROKECOUNT (VG11_FILLCOUNT + 1)
/* End of Driver API ID Definitions. */
/* HAL & MISC IDs. */
-#define HAL_VERTBUFNEWBYTEALLOC 1
-#define HAL_VERTBUFTOTALBYTEALLOC (HAL_VERTBUFNEWBYTEALLOC + 1)
-#define HAL_VERTBUFNEWOBJALLOC (HAL_VERTBUFTOTALBYTEALLOC + 1)
-#define HAL_VERTBUFTOTALOBJALLOC (HAL_VERTBUFNEWOBJALLOC + 1)
-#define HAL_INDBUFNEWBYTEALLOC (HAL_VERTBUFTOTALOBJALLOC + 1)
-#define HAL_INDBUFTOTALBYTEALLOC (HAL_INDBUFNEWBYTEALLOC + 1)
-#define HAL_INDBUFNEWOBJALLOC (HAL_INDBUFTOTALBYTEALLOC + 1)
-#define HAL_INDBUFTOTALOBJALLOC (HAL_INDBUFNEWOBJALLOC + 1)
-#define HAL_TEXBUFNEWBYTEALLOC (HAL_INDBUFTOTALOBJALLOC + 1)
-#define HAL_TEXBUFTOTALBYTEALLOC (HAL_TEXBUFNEWBYTEALLOC + 1)
-#define HAL_TEXBUFNEWOBJALLOC (HAL_TEXBUFTOTALBYTEALLOC + 1)
-#define HAL_TEXBUFTOTALOBJALLOC (HAL_TEXBUFNEWOBJALLOC + 1)
-
-#define GPU_CYCLES 1
-#define GPU_READ64BYTE (GPU_CYCLES + 1)
-#define GPU_WRITE64BYTE (GPU_READ64BYTE + 1)
-#define GPU_TOTALCYCLES (GPU_WRITE64BYTE + 1)
-#define GPU_IDLECYCLES (GPU_TOTALCYCLES + 1)
-
-#define VS_INSTCOUNT 1
-#define VS_BRANCHINSTCOUNT (VS_INSTCOUNT + 1)
-#define VS_TEXLDINSTCOUNT (VS_BRANCHINSTCOUNT + 1)
-#define VS_RENDEREDVERTCOUNT (VS_TEXLDINSTCOUNT + 1)
-
-#define PS_INSTCOUNT 1
-#define PS_BRANCHINSTCOUNT (PS_INSTCOUNT + 1)
-#define PS_TEXLDINSTCOUNT (PS_BRANCHINSTCOUNT + 1)
-#define PS_RENDEREDPIXCOUNT (PS_TEXLDINSTCOUNT + 1)
-
-#define PA_INVERTCOUNT 1
-#define PA_INPRIMCOUNT (PA_INVERTCOUNT + 1)
-#define PA_OUTPRIMCOUNT (PA_INPRIMCOUNT + 1)
-#define PA_DEPTHCLIPCOUNT (PA_OUTPRIMCOUNT + 1)
-#define PA_TRIVIALREJCOUNT (PA_DEPTHCLIPCOUNT + 1)
-#define PA_CULLCOUNT (PA_TRIVIALREJCOUNT + 1)
-
-#define SE_TRIANGLECOUNT 1
-#define SE_LINECOUNT (SE_TRIANGLECOUNT + 1)
-
-#define RA_VALIDPIXCOUNT 1
-#define RA_TOTALQUADCOUNT (RA_VALIDPIXCOUNT + 1)
-#define RA_VALIDQUADCOUNTEZ (RA_TOTALQUADCOUNT + 1)
-#define RA_TOTALPRIMCOUNT (RA_VALIDQUADCOUNTEZ + 1)
-#define RA_PIPECACHEMISSCOUNT (RA_TOTALPRIMCOUNT + 1)
-#define RA_PREFCACHEMISSCOUNT (RA_PIPECACHEMISSCOUNT + 1)
-#define RA_EEZCULLCOUNT (RA_PREFCACHEMISSCOUNT + 1)
-
-#define TX_TOTBILINEARREQ 1
-#define TX_TOTTRILINEARREQ (TX_TOTBILINEARREQ + 1)
-#define TX_TOTDISCARDTEXREQ (TX_TOTTRILINEARREQ + 1)
-#define TX_TOTTEXREQ (TX_TOTDISCARDTEXREQ + 1)
-#define TX_MEMREADCOUNT (TX_TOTTEXREQ + 1)
-#define TX_MEMREADIN8BCOUNT (TX_MEMREADCOUNT + 1)
-#define TX_CACHEMISSCOUNT (TX_MEMREADIN8BCOUNT + 1)
-#define TX_CACHEHITTEXELCOUNT (TX_CACHEMISSCOUNT + 1)
-#define TX_CACHEMISSTEXELCOUNT (TX_CACHEHITTEXELCOUNT + 1)
-
-#define PE_KILLEDBYCOLOR 1
-#define PE_KILLEDBYDEPTH (PE_KILLEDBYCOLOR + 1)
-#define PE_DRAWNBYCOLOR (PE_KILLEDBYDEPTH + 1)
-#define PE_DRAWNBYDEPTH (PE_DRAWNBYCOLOR + 1)
-
-#define MC_READREQ8BPIPE 1
-#define MC_READREQ8BIP (MC_READREQ8BPIPE + 1)
-#define MC_WRITEREQ8BPIPE (MC_READREQ8BIP + 1)
-
-#define AXI_READREQSTALLED 1
-#define AXI_WRITEREQSTALLED (AXI_READREQSTALLED + 1)
-#define AXI_WRITEDATASTALLED (AXI_WRITEREQSTALLED + 1)
-
-#define PVS_INSTRCOUNT 1
-#define PVS_ALUINSTRCOUNT (PVS_INSTRCOUNT + 1)
-#define PVS_TEXINSTRCOUNT (PVS_ALUINSTRCOUNT + 1)
-#define PVS_ATTRIBCOUNT (PVS_TEXINSTRCOUNT + 1)
-#define PVS_UNIFORMCOUNT (PVS_ATTRIBCOUNT + 1)
-#define PVS_FUNCTIONCOUNT (PVS_UNIFORMCOUNT + 1)
-
-#define PPS_INSTRCOUNT 1
-#define PPS_ALUINSTRCOUNT (PPS_INSTRCOUNT + 1)
-#define PPS_TEXINSTRCOUNT (PPS_ALUINSTRCOUNT + 1)
-#define PPS_ATTRIBCOUNT (PPS_TEXINSTRCOUNT + 1)
-#define PPS_UNIFORMCOUNT (PPS_ATTRIBCOUNT + 1)
-#define PPS_FUNCTIONCOUNT (PPS_UNIFORMCOUNT + 1)
+#define HAL_VERTBUFNEWBYTEALLOC 1
+#define HAL_VERTBUFTOTALBYTEALLOC (HAL_VERTBUFNEWBYTEALLOC + 1)
+#define HAL_VERTBUFNEWOBJALLOC (HAL_VERTBUFTOTALBYTEALLOC + 1)
+#define HAL_VERTBUFTOTALOBJALLOC (HAL_VERTBUFNEWOBJALLOC + 1)
+#define HAL_INDBUFNEWBYTEALLOC (HAL_VERTBUFTOTALOBJALLOC + 1)
+#define HAL_INDBUFTOTALBYTEALLOC (HAL_INDBUFNEWBYTEALLOC + 1)
+#define HAL_INDBUFNEWOBJALLOC (HAL_INDBUFTOTALBYTEALLOC + 1)
+#define HAL_INDBUFTOTALOBJALLOC (HAL_INDBUFNEWOBJALLOC + 1)
+#define HAL_TEXBUFNEWBYTEALLOC (HAL_INDBUFTOTALOBJALLOC + 1)
+#define HAL_TEXBUFTOTALBYTEALLOC (HAL_TEXBUFNEWBYTEALLOC + 1)
+#define HAL_TEXBUFNEWOBJALLOC (HAL_TEXBUFTOTALBYTEALLOC + 1)
+#define HAL_TEXBUFTOTALOBJALLOC (HAL_TEXBUFNEWOBJALLOC + 1)
+
+#define GPU_CYCLES 1
+#define GPU_READ64BYTE (GPU_CYCLES + 1)
+#define GPU_WRITE64BYTE (GPU_READ64BYTE + 1)
+#define GPU_TOTALCYCLES (GPU_WRITE64BYTE + 1)
+#define GPU_IDLECYCLES (GPU_TOTALCYCLES + 1)
+
+#define VS_INSTCOUNT 1
+#define VS_BRANCHINSTCOUNT (VS_INSTCOUNT + 1)
+#define VS_TEXLDINSTCOUNT (VS_BRANCHINSTCOUNT + 1)
+#define VS_RENDEREDVERTCOUNT (VS_TEXLDINSTCOUNT + 1)
+#define VS_SOURCE (VS_RENDEREDVERTCOUNT + 1)
+
+#define PS_INSTCOUNT 1
+#define PS_BRANCHINSTCOUNT (PS_INSTCOUNT + 1)
+#define PS_TEXLDINSTCOUNT (PS_BRANCHINSTCOUNT + 1)
+#define PS_RENDEREDPIXCOUNT (PS_TEXLDINSTCOUNT + 1)
+#define PS_SOURCE (PS_RENDEREDPIXCOUNT + 1)
+
+#define PA_INVERTCOUNT 1
+#define PA_INPRIMCOUNT (PA_INVERTCOUNT + 1)
+#define PA_OUTPRIMCOUNT (PA_INPRIMCOUNT + 1)
+#define PA_DEPTHCLIPCOUNT (PA_OUTPRIMCOUNT + 1)
+#define PA_TRIVIALREJCOUNT (PA_DEPTHCLIPCOUNT + 1)
+#define PA_CULLCOUNT (PA_TRIVIALREJCOUNT + 1)
+
+#define SE_TRIANGLECOUNT 1
+#define SE_LINECOUNT (SE_TRIANGLECOUNT + 1)
+
+#define RA_VALIDPIXCOUNT 1
+#define RA_TOTALQUADCOUNT (RA_VALIDPIXCOUNT + 1)
+#define RA_VALIDQUADCOUNTEZ (RA_TOTALQUADCOUNT + 1)
+#define RA_TOTALPRIMCOUNT (RA_VALIDQUADCOUNTEZ + 1)
+#define RA_PIPECACHEMISSCOUNT (RA_TOTALPRIMCOUNT + 1)
+#define RA_PREFCACHEMISSCOUNT (RA_PIPECACHEMISSCOUNT + 1)
+#define RA_EEZCULLCOUNT (RA_PREFCACHEMISSCOUNT + 1)
+
+#define TX_TOTBILINEARREQ 1
+#define TX_TOTTRILINEARREQ (TX_TOTBILINEARREQ + 1)
+#define TX_TOTDISCARDTEXREQ (TX_TOTTRILINEARREQ + 1)
+#define TX_TOTTEXREQ (TX_TOTDISCARDTEXREQ + 1)
+#define TX_MEMREADCOUNT (TX_TOTTEXREQ + 1)
+#define TX_MEMREADIN8BCOUNT (TX_MEMREADCOUNT + 1)
+#define TX_CACHEMISSCOUNT (TX_MEMREADIN8BCOUNT + 1)
+#define TX_CACHEHITTEXELCOUNT (TX_CACHEMISSCOUNT + 1)
+#define TX_CACHEMISSTEXELCOUNT (TX_CACHEHITTEXELCOUNT + 1)
+
+#define PE_KILLEDBYCOLOR 1
+#define PE_KILLEDBYDEPTH (PE_KILLEDBYCOLOR + 1)
+#define PE_DRAWNBYCOLOR (PE_KILLEDBYDEPTH + 1)
+#define PE_DRAWNBYDEPTH (PE_DRAWNBYCOLOR + 1)
+
+#define MC_READREQ8BPIPE 1
+#define MC_READREQ8BIP (MC_READREQ8BPIPE + 1)
+#define MC_WRITEREQ8BPIPE (MC_READREQ8BIP + 1)
+
+#define AXI_READREQSTALLED 1
+#define AXI_WRITEREQSTALLED (AXI_READREQSTALLED + 1)
+#define AXI_WRITEDATASTALLED (AXI_WRITEREQSTALLED + 1)
+
+#define PVS_INSTRCOUNT 1
+#define PVS_ALUINSTRCOUNT (PVS_INSTRCOUNT + 1)
+#define PVS_TEXINSTRCOUNT (PVS_ALUINSTRCOUNT + 1)
+#define PVS_ATTRIBCOUNT (PVS_TEXINSTRCOUNT + 1)
+#define PVS_UNIFORMCOUNT (PVS_ATTRIBCOUNT + 1)
+#define PVS_FUNCTIONCOUNT (PVS_UNIFORMCOUNT + 1)
+#define PVS_SOURCE (PVS_FUNCTIONCOUNT + 1)
+
+#define PPS_INSTRCOUNT 1
+#define PPS_ALUINSTRCOUNT (PPS_INSTRCOUNT + 1)
+#define PPS_TEXINSTRCOUNT (PPS_ALUINSTRCOUNT + 1)
+#define PPS_ATTRIBCOUNT (PPS_TEXINSTRCOUNT + 1)
+#define PPS_UNIFORMCOUNT (PPS_ATTRIBCOUNT + 1)
+#define PPS_FUNCTIONCOUNT (PPS_UNIFORMCOUNT + 1)
+#define PPS_SOURCE (PPS_FUNCTIONCOUNT + 1)
/* End of MISC Counter IDs. */
#ifdef gcdNEW_PROFILER_FILE
@@ -578,8 +184,8 @@ extern "C" {
#define VPG_ES11_TIME 0x170000
#define VPG_ES20_TIME 0x180000
#define VPG_FRAME 0x190000
-#define VPG_ES11_DRAW 0x200000
-#define VPG_ES20_DRAW 0x210000
+#define VPG_ES11_DRAW 0x200000
+#define VPG_ES20_DRAW 0x210000
#define VPG_END 0xff0000
/* Info. */
@@ -592,7 +198,7 @@ extern "C" {
#define VPC_INFOSCREENSIZE (VPC_INFODRIVERMODE + 1)
/* Counter Constants. */
-#define VPC_ELAPSETIME (VPG_TIME + 1)
+#define VPC_ELAPSETIME (VPG_TIME + 1)
#define VPC_CPUTIME (VPC_ELAPSETIME + 1)
#define VPC_MEMMAXRES (VPG_MEM + 1)
@@ -600,404 +206,28 @@ extern "C" {
#define VPC_MEMUNSHAREDDATA (VPC_MEMSHARED + 1)
#define VPC_MEMUNSHAREDSTACK (VPC_MEMUNSHAREDDATA + 1)
-/* OpenGL ES11 Counters. */
-#define VPC_ES11ACTIVETEXTURE (VPG_ES11 + ES11_ACTIVETEXTURE)
-#define VPC_ES11ALPHAFUNC (VPG_ES11 + ES11_ALPHAFUNC)
-#define VPC_ES11ALPHAFUNCX (VPG_ES11 + ES11_ALPHAFUNCX)
-#define VPC_ES11BINDBUFFER (VPG_ES11 + ES11_BINDBUFFER)
-#define VPC_ES11BINDTEXTURE (VPG_ES11 + ES11_BINDTEXTURE)
-#define VPC_ES11BLENDFUNC (VPG_ES11 + ES11_BLENDFUNC)
-#define VPC_ES11BUFFERDATA (VPG_ES11 + ES11_BUFFERDATA)
-#define VPC_ES11BUFFERSUBDATA (VPG_ES11 + ES11_BUFFERSUBDATA)
-#define VPC_ES11CLEAR (VPG_ES11 + ES11_CLEAR)
-#define VPC_ES11CLEARCOLOR (VPG_ES11 + ES11_CLEARCOLOR)
-#define VPC_ES11CLEARCOLORX (VPG_ES11 + ES11_CLEARCOLORX)
-#define VPC_ES11CLEARDEPTHF (VPG_ES11 + ES11_CLEARDEPTHF)
-#define VPC_ES11CLEARDEPTHX (VPG_ES11 + ES11_CLEARDEPTHX)
-#define VPC_ES11CLEARSTENCIL (VPG_ES11 + ES11_CLEARSTENCIL)
-#define VPC_ES11CLIENTACTIVETEXTURE (VPG_ES11 + ES11_CLIENTACTIVETEXTURE)
-#define VPC_ES11CLIPPLANEF (VPG_ES11 + ES11_CLIPPLANEF)
-#define VPC_ES11CLIPPLANEX (VPG_ES11 + ES11_CLIPPLANEX)
-#define VPC_ES11COLOR4F (VPG_ES11 + ES11_COLOR4F)
-#define VPC_ES11COLOR4UB (VPG_ES11 + ES11_COLOR4UB)
-#define VPC_ES11COLOR4X (VPG_ES11 + ES11_COLOR4X)
-#define VPC_ES11COLORMASK (VPG_ES11 + ES11_COLORMASK)
-#define VPC_ES11COLORPOINTER (VPG_ES11 + ES11_COLORPOINTER)
-#define VPC_ES11COMPRESSEDTEXIMAGE2D (VPG_ES11 + ES11_COMPRESSEDTEXIMAGE2D)
-#define VPC_ES11COMPRESSEDTEXSUBIMAGE2D (VPG_ES11 + ES11_COMPRESSEDTEXSUBIMAGE2D)
-#define VPC_ES11COPYTEXIMAGE2D (VPG_ES11 + ES11_COPYTEXIMAGE2D)
-#define VPC_ES11COPYTEXSUBIMAGE2D (VPG_ES11 + ES11_COPYTEXSUBIMAGE2D)
-#define VPC_ES11CULLFACE (VPG_ES11 + ES11_CULLFACE)
-#define VPC_ES11DELETEBUFFERS (VPG_ES11 + ES11_DELETEBUFFERS)
-#define VPC_ES11DELETETEXTURES (VPG_ES11 + ES11_DELETETEXTURES)
-#define VPC_ES11DEPTHFUNC (VPG_ES11 + ES11_DEPTHFUNC)
-#define VPC_ES11DEPTHMASK (VPG_ES11 + ES11_DEPTHMASK)
-#define VPC_ES11DEPTHRANGEF (VPG_ES11 + ES11_DEPTHRANGEF)
-#define VPC_ES11DEPTHRANGEX (VPG_ES11 + ES11_DEPTHRANGEX)
-#define VPC_ES11DISABLE (VPG_ES11 + ES11_DISABLE)
-#define VPC_ES11DISABLECLIENTSTATE (VPG_ES11 + ES11_DISABLECLIENTSTATE)
-#define VPC_ES11DRAWARRAYS (VPG_ES11 + ES11_DRAWARRAYS)
-#define VPC_ES11DRAWELEMENTS (VPG_ES11 + ES11_DRAWELEMENTS)
-#define VPC_ES11ENABLE (VPG_ES11 + ES11_ENABLE)
-#define VPC_ES11ENABLECLIENTSTATE (VPG_ES11 + ES11_ENABLECLIENTSTATE)
-#define VPC_ES11FINISH (VPG_ES11 + ES11_FINISH)
-#define VPC_ES11FLUSH (VPG_ES11 + ES11_FLUSH)
-#define VPC_ES11FOGF (VPG_ES11 + ES11_FOGF)
-#define VPC_ES11FOGFV (VPG_ES11 + ES11_FOGFV)
-#define VPC_ES11FOGX (VPG_ES11 + ES11_FOGX)
-#define VPC_ES11FOGXV (VPG_ES11 + ES11_FOGXV)
-#define VPC_ES11FRONTFACE (VPG_ES11 + ES11_FRONTFACE)
-#define VPC_ES11FRUSTUMF (VPG_ES11 + ES11_FRUSTUMF)
-#define VPC_ES11FRUSTUMX (VPG_ES11 + ES11_FRUSTUMX)
-#define VPC_ES11GENBUFFERS (VPG_ES11 + ES11_GENBUFFERS)
-#define VPC_ES11GENTEXTURES (VPG_ES11 + ES11_GENTEXTURES)
-#define VPC_ES11GETBOOLEANV (VPG_ES11 + ES11_GETBOOLEANV)
-#define VPC_ES11GETBUFFERPARAMETERIV (VPG_ES11 + ES11_GETBUFFERPARAMETERIV)
-#define VPC_ES11GETCLIPPLANEF (VPG_ES11 + ES11_GETCLIPPLANEF)
-#define VPC_ES11GETCLIPPLANEX (VPG_ES11 + ES11_GETCLIPPLANEX)
-#define VPC_ES11GETERROR (VPG_ES11 + ES11_GETERROR)
-#define VPC_ES11GETFIXEDV (VPG_ES11 + ES11_GETFIXEDV)
-#define VPC_ES11GETFLOATV (VPG_ES11 + ES11_GETFLOATV)
-#define VPC_ES11GETINTEGERV (VPG_ES11 + ES11_GETINTEGERV)
-#define VPC_ES11GETLIGHTFV (VPG_ES11 + ES11_GETLIGHTFV)
-#define VPC_ES11GETLIGHTXV (VPG_ES11 + ES11_GETLIGHTXV)
-#define VPC_ES11GETMATERIALFV (VPG_ES11 + ES11_GETMATERIALFV)
-#define VPC_ES11GETMATERIALXV (VPG_ES11 + ES11_GETMATERIALXV)
-#define VPC_ES11GETPOINTERV (VPG_ES11 + ES11_GETPOINTERV)
-#define VPC_ES11GETSTRING (VPG_ES11 + ES11_GETSTRING)
-#define VPC_ES11GETTEXENVFV (VPG_ES11 + ES11_GETTEXENVFV)
-#define VPC_ES11GETTEXENVIV (VPG_ES11 + ES11_GETTEXENVIV)
-#define VPC_ES11GETTEXENVXV (VPG_ES11 + ES11_GETTEXENVXV)
-#define VPC_ES11GETTEXPARAMETERFV (VPG_ES11 + ES11_GETTEXPARAMETERFV)
-#define VPC_ES11GETTEXPARAMETERIV (VPG_ES11 + ES11_GETTEXPARAMETERIV)
-#define VPC_ES11GETTEXPARAMETERXV (VPG_ES11 + ES11_GETTEXPARAMETERXV)
-#define VPC_ES11HINT (VPG_ES11 + ES11_HINT)
-#define VPC_ES11ISBUFFER (VPG_ES11 + ES11_ISBUFFER)
-#define VPC_ES11ISENABLED (VPG_ES11 + ES11_ISENABLED)
-#define VPC_ES11ISTEXTURE (VPG_ES11 + ES11_ISTEXTURE)
-#define VPC_ES11LIGHTF (VPG_ES11 + ES11_LIGHTF)
-#define VPC_ES11LIGHTFV (VPG_ES11 + ES11_LIGHTFV)
-#define VPC_ES11LIGHTMODELF (VPG_ES11 + ES11_LIGHTMODELF)
-#define VPC_ES11LIGHTMODELFV (VPG_ES11 + ES11_LIGHTMODELFV)
-#define VPC_ES11LIGHTMODELX (VPG_ES11 + ES11_LIGHTMODELX)
-#define VPC_ES11LIGHTMODELXV (VPG_ES11 + ES11_LIGHTMODELXV)
-#define VPC_ES11LIGHTX (VPG_ES11 + ES11_LIGHTX)
-#define VPC_ES11LIGHTXV (VPG_ES11 + ES11_LIGHTXV)
-#define VPC_ES11LINEWIDTH (VPG_ES11 + ES11_LINEWIDTH)
-#define VPC_ES11LINEWIDTHX (VPG_ES11 + ES11_LINEWIDTHX)
-#define VPC_ES11LOADIDENTITY (VPG_ES11 + ES11_LOADIDENTITY)
-#define VPC_ES11LOADMATRIXF (VPG_ES11 + ES11_LOADMATRIXF)
-#define VPC_ES11LOADMATRIXX (VPG_ES11 + ES11_LOADMATRIXX)
-#define VPC_ES11LOGICOP (VPG_ES11 + ES11_LOGICOP)
-#define VPC_ES11MATERIALF (VPG_ES11 + ES11_MATERIALF)
-#define VPC_ES11MATERIALFV (VPG_ES11 + ES11_MATERIALFV)
-#define VPC_ES11MATERIALX (VPG_ES11 + ES11_MATERIALX)
-#define VPC_ES11MATERIALXV (VPG_ES11 + ES11_MATERIALXV)
-#define VPC_ES11MATRIXMODE (VPG_ES11 + ES11_MATRIXMODE)
-#define VPC_ES11MULTITEXCOORD4F (VPG_ES11 + ES11_MULTITEXCOORD4F)
-#define VPC_ES11MULTITEXCOORD4X (VPG_ES11 + ES11_MULTITEXCOORD4X)
-#define VPC_ES11MULTMATRIXF (VPG_ES11 + ES11_MULTMATRIXF)
-#define VPC_ES11MULTMATRIXX (VPG_ES11 + ES11_MULTMATRIXX)
-#define VPC_ES11NORMAL3F (VPG_ES11 + ES11_NORMAL3F)
-#define VPC_ES11NORMAL3X (VPG_ES11 + ES11_NORMAL3X)
-#define VPC_ES11NORMALPOINTER (VPG_ES11 + ES11_NORMALPOINTER)
-#define VPC_ES11ORTHOF (VPG_ES11 + ES11_ORTHOF)
-#define VPC_ES11ORTHOX (VPG_ES11 + ES11_ORTHOX)
-#define VPC_ES11PIXELSTOREI (VPG_ES11 + ES11_PIXELSTOREI)
-#define VPC_ES11POINTPARAMETERF (VPG_ES11 + ES11_POINTPARAMETERF)
-#define VPC_ES11POINTPARAMETERFV (VPG_ES11 + ES11_POINTPARAMETERFV)
-#define VPC_ES11POINTPARAMETERX (VPG_ES11 + ES11_POINTPARAMETERX)
-#define VPC_ES11POINTPARAMETERXV (VPG_ES11 + ES11_POINTPARAMETERXV)
-#define VPC_ES11POINTSIZE (VPG_ES11 + ES11_POINTSIZE)
-#define VPC_ES11POINTSIZEX (VPG_ES11 + ES11_POINTSIZEX)
-#define VPC_ES11POLYGONOFFSET (VPG_ES11 + ES11_POLYGONOFFSET)
-#define VPC_ES11POLYGONOFFSETX (VPG_ES11 + ES11_POLYGONOFFSETX)
-#define VPC_ES11POPMATRIX (VPG_ES11 + ES11_POPMATRIX)
-#define VPC_ES11PUSHMATRIX (VPG_ES11 + ES11_PUSHMATRIX)
-#define VPC_ES11READPIXELS (VPG_ES11 + ES11_READPIXELS)
-#define VPC_ES11ROTATEF (VPG_ES11 + ES11_ROTATEF)
-#define VPC_ES11ROTATEX (VPG_ES11 + ES11_ROTATEX)
-#define VPC_ES11SAMPLECOVERAGE (VPG_ES11 + ES11_SAMPLECOVERAGE)
-#define VPC_ES11SAMPLECOVERAGEX (VPG_ES11 + ES11_SAMPLECOVERAGEX)
-#define VPC_ES11SCALEF (VPG_ES11 + ES11_SCALEF)
-#define VPC_ES11SCALEX (VPG_ES11 + ES11_SCALEX)
-#define VPC_ES11SCISSOR (VPG_ES11 + ES11_SCISSOR)
-#define VPC_ES11SHADEMODEL (VPG_ES11 + ES11_SHADEMODEL)
-#define VPC_ES11STENCILFUNC (VPG_ES11 + ES11_STENCILFUNC)
-#define VPC_ES11STENCILMASK (VPG_ES11 + ES11_STENCILMASK)
-#define VPC_ES11STENCILOP (VPG_ES11 + ES11_STENCILOP)
-#define VPC_ES11TEXCOORDPOINTER (VPG_ES11 + ES11_TEXCOORDPOINTER)
-#define VPC_ES11TEXENVF (VPG_ES11 + ES11_TEXENVF)
-#define VPC_ES11TEXENVFV (VPG_ES11 + ES11_TEXENVFV)
-#define VPC_ES11TEXENVI (VPG_ES11 + ES11_TEXENVI)
-#define VPC_ES11TEXENVIV (VPG_ES11 + ES11_TEXENVIV)
-#define VPC_ES11TEXENVX (VPG_ES11 + ES11_TEXENVX)
-#define VPC_ES11TEXENVXV (VPG_ES11 + ES11_TEXENVXV)
-#define VPC_ES11TEXIMAGE2D (VPG_ES11 + ES11_TEXIMAGE2D)
-#define VPC_ES11TEXPARAMETERF (VPG_ES11 + ES11_TEXPARAMETERF)
-#define VPC_ES11TEXPARAMETERFV (VPG_ES11 + ES11_TEXPARAMETERFV)
-#define VPC_ES11TEXPARAMETERI (VPG_ES11 + ES11_TEXPARAMETERI)
-#define VPC_ES11TEXPARAMETERIV (VPG_ES11 + ES11_TEXPARAMETERIV)
-#define VPC_ES11TEXPARAMETERX (VPG_ES11 + ES11_TEXPARAMETERX)
-#define VPC_ES11TEXPARAMETERXV (VPG_ES11 + ES11_TEXPARAMETERXV)
-#define VPC_ES11TEXSUBIMAGE2D (VPG_ES11 + ES11_TEXSUBIMAGE2D)
-#define VPC_ES11TRANSLATEF (VPG_ES11 + ES11_TRANSLATEF)
-#define VPC_ES11TRANSLATEX (VPG_ES11 + ES11_TRANSLATEX)
-#define VPC_ES11VERTEXPOINTER (VPG_ES11 + ES11_VERTEXPOINTER)
-#define VPC_ES11VIEWPORT (VPG_ES11 + ES11_VIEWPORT)
/* OpenGL ES11 Statics Counter IDs. */
-#define VPC_ES11CALLS (VPG_ES11 + ES11_CALLS)
-#define VPC_ES11DRAWCALLS (VPG_ES11 + ES11_DRAWCALLS)
-#define VPC_ES11STATECHANGECALLS (VPG_ES11 + ES11_STATECHANGECALLS)
-#define VPC_ES11POINTCOUNT (VPG_ES11 + ES11_POINTCOUNT)
-#define VPC_ES11LINECOUNT (VPG_ES11 + ES11_LINECOUNT)
-#define VPC_ES11TRIANGLECOUNT (VPG_ES11 + ES11_TRIANGLECOUNT)
-
-/* OpenGLES 2.x */
-#define VPC_ES20ACTIVETEXTURE (VPG_ES20 + ES20_ACTIVETEXTURE)
-#define VPC_ES20ATTACHSHADER (VPG_ES20 + ES20_ATTACHSHADER)
-#define VPC_ES20BINDATTRIBLOCATION (VPG_ES20 + ES20_BINDATTRIBLOCATION)
-#define VPC_ES20BINDBUFFER (VPG_ES20 + ES20_BINDBUFFER)
-#define VPC_ES20BINDFRAMEBUFFER (VPG_ES20 + ES20_BINDFRAMEBUFFER)
-#define VPC_ES20BINDRENDERBUFFER (VPG_ES20 + ES20_BINDRENDERBUFFER)
-#define VPC_ES20BINDTEXTURE (VPG_ES20 + ES20_BINDTEXTURE)
-#define VPC_ES20BLENDCOLOR (VPG_ES20 + ES20_BLENDCOLOR)
-#define VPC_ES20BLENDEQUATION (VPG_ES20 + ES20_BLENDEQUATION)
-#define VPC_ES20BLENDEQUATIONSEPARATE (VPG_ES20 + ES20_BLENDEQUATIONSEPARATE)
-#define VPC_ES20BLENDFUNC (VPG_ES20 + ES20_BLENDFUNC)
-#define VPC_ES20BLENDFUNCSEPARATE (VPG_ES20 + ES20_BLENDFUNCSEPARATE)
-#define VPC_ES20BUFFERDATA (VPG_ES20 + ES20_BUFFERDATA)
-#define VPC_ES20BUFFERSUBDATA (VPG_ES20 + ES20_BUFFERSUBDATA)
-#define VPC_ES20CHECKFRAMEBUFFERSTATUS (VPG_ES20 + ES20_CHECKFRAMEBUFFERSTATUS)
-#define VPC_ES20CLEAR (VPG_ES20 + ES20_CLEAR)
-#define VPC_ES20CLEARCOLOR (VPG_ES20 + ES20_CLEARCOLOR)
-#define VPC_ES20CLEARDEPTHF (VPG_ES20 + ES20_CLEARDEPTHF)
-#define VPC_ES20CLEARSTENCIL (VPG_ES20 + ES20_CLEARSTENCIL)
-#define VPC_ES20COLORMASK (VPG_ES20 + ES20_COLORMASK)
-#define VPC_ES20COMPILESHADER (VPG_ES20 + ES20_COMPILESHADER)
-#define VPC_ES20COMPRESSEDTEXIMAGE2D (VPG_ES20 + ES20_COMPRESSEDTEXIMAGE2D)
-#define VPC_ES20COMPRESSEDTEXSUBIMAGE2D (VPG_ES20 + ES20_COMPRESSEDTEXSUBIMAGE2D)
-#define VPC_ES20COPYTEXIMAGE2D (VPG_ES20 + ES20_COPYTEXIMAGE2D)
-#define VPC_ES20COPYTEXSUBIMAGE2D (VPG_ES20 + ES20_COPYTEXSUBIMAGE2D)
-#define VPC_ES20CREATEPROGRAM (VPG_ES20 + ES20_CREATEPROGRAM)
-#define VPC_ES20CREATESHADER (VPG_ES20 + ES20_CREATESHADER)
-#define VPC_ES20CULLFACE (VPG_ES20 + ES20_CULLFACE)
-#define VPC_ES20DELETEBUFFERS (VPG_ES20 + ES20_DELETEBUFFERS)
-#define VPC_ES20DELETEFRAMEBUFFERS (VPG_ES20 + ES20_DELETEFRAMEBUFFERS)
-#define VPC_ES20DELETEPROGRAM (VPG_ES20 + ES20_DELETEPROGRAM)
-#define VPC_ES20DELETERENDERBUFFERS (VPG_ES20 + ES20_DELETERENDERBUFFERS)
-#define VPC_ES20DELETESHADER (VPG_ES20 + ES20_DELETESHADER)
-#define VPC_ES20DELETETEXTURES (VPG_ES20 + ES20_DELETETEXTURES)
-#define VPC_ES20DEPTHFUNC (VPG_ES20 + ES20_DEPTHFUNC)
-#define VPC_ES20DEPTHMASK (VPG_ES20 + ES20_DEPTHMASK)
-#define VPC_ES20DEPTHRANGEF (VPG_ES20 + ES20_DEPTHRANGEF)
-#define VPC_ES20DETACHSHADER (VPG_ES20 + ES20_DETACHSHADER)
-#define VPC_ES20DISABLE (VPG_ES20 + ES20_DISABLE)
-#define VPC_ES20DISABLEVERTEXATTRIBARRAY (VPG_ES20 + ES20_DISABLEVERTEXATTRIBARRAY)
-#define VPC_ES20DRAWARRAYS (VPG_ES20 + ES20_DRAWARRAYS)
-#define VPC_ES20DRAWELEMENTS (VPG_ES20 + ES20_DRAWELEMENTS)
-#define VPC_ES20ENABLE (VPG_ES20 + ES20_ENABLE)
-#define VPC_ES20ENABLEVERTEXATTRIBARRAY (VPG_ES20 + ES20_ENABLEVERTEXATTRIBARRAY)
-#define VPC_ES20FINISH (VPG_ES20 + ES20_FINISH)
-#define VPC_ES20FLUSH (VPG_ES20 + ES20_FLUSH)
-#define VPC_ES20FRAMEBUFFERRENDERBUFFER (VPG_ES20 + ES20_FRAMEBUFFERRENDERBUFFER)
-#define VPC_ES20FRAMEBUFFERTEXTURE2D (VPG_ES20 + ES20_FRAMEBUFFERTEXTURE2D)
-#define VPC_ES20FRONTFACE (VPG_ES20 + ES20_FRONTFACE)
-#define VPC_ES20GENBUFFERS (VPG_ES20 + ES20_GENBUFFERS)
-#define VPC_ES20GENERATEMIPMAP (VPG_ES20 + ES20_GENERATEMIPMAP)
-#define VPC_ES20GENFRAMEBUFFERS (VPG_ES20 + ES20_GENFRAMEBUFFERS)
-#define VPC_ES20GENRENDERBUFFERS (VPG_ES20 + ES20_GENRENDERBUFFERS)
-#define VPC_ES20GENTEXTURES (VPG_ES20 + ES20_GENTEXTURES)
-#define VPC_ES20GETACTIVEATTRIB (VPG_ES20 + ES20_GETACTIVEATTRIB)
-#define VPC_ES20GETACTIVEUNIFORM (VPG_ES20 + ES20_GETACTIVEUNIFORM)
-#define VPC_ES20GETATTACHEDSHADERS (VPG_ES20 + ES20_GETATTACHEDSHADERS)
-#define VPC_ES20GETATTRIBLOCATION (VPG_ES20 + ES20_GETATTRIBLOCATION)
-#define VPC_ES20GETBOOLEANV (VPG_ES20 + ES20_GETBOOLEANV)
-#define VPC_ES20GETBUFFERPARAMETERIV (VPG_ES20 + ES20_GETBUFFERPARAMETERIV)
-#define VPC_ES20GETERROR (VPG_ES20 + ES20_GETERROR)
-#define VPC_ES20GETFLOATV (VPG_ES20 + ES20_GETFLOATV)
-#define VPC_ES20GETFRAMEBUFFERATTACHMENTPARAMETERIV (VPG_ES20 + ES20_GETFRAMEBUFFERATTACHMENTPARAMETERIV)
-#define VPC_ES20GETINTEGERV (VPG_ES20 + ES20_GETINTEGERV)
-#define VPC_ES20GETPROGRAMIV (VPG_ES20 + ES20_GETPROGRAMIV)
-#define VPC_ES20GETPROGRAMINFOLOG (VPG_ES20 + ES20_GETPROGRAMINFOLOG)
-#define VPC_ES20GETRENDERBUFFERPARAMETERIV (VPG_ES20 + ES20_GETRENDERBUFFERPARAMETERIV)
-#define VPC_ES20GETSHADERIV (VPG_ES20 + ES20_GETSHADERIV)
-#define VPC_ES20GETSHADERINFOLOG (VPG_ES20 + ES20_GETSHADERINFOLOG)
-#define VPC_ES20GETSHADERPRECISIONFORMAT (VPG_ES20 + ES20_GETSHADERPRECISIONFORMAT)
-#define VPC_ES20GETSHADERSOURCE (VPG_ES20 + ES20_GETSHADERSOURCE)
-#define VPC_ES20GETSTRING (VPG_ES20 + ES20_GETSTRING)
-#define VPC_ES20GETTEXPARAMETERFV (VPG_ES20 + ES20_GETTEXPARAMETERFV)
-#define VPC_ES20GETTEXPARAMETERIV (VPG_ES20 + ES20_GETTEXPARAMETERIV)
-#define VPC_ES20GETUNIFORMFV (VPG_ES20 + ES20_GETUNIFORMFV)
-#define VPC_ES20GETUNIFORMIV (VPG_ES20 + ES20_GETUNIFORMIV)
-#define VPC_ES20GETUNIFORMLOCATION (VPG_ES20 + ES20_GETUNIFORMLOCATION)
-#define VPC_ES20GETVERTEXATTRIBFV (VPG_ES20 + ES20_GETVERTEXATTRIBFV)
-#define VPC_ES20GETVERTEXATTRIBIV (VPG_ES20 + ES20_GETVERTEXATTRIBIV)
-#define VPC_ES20GETVERTEXATTRIBPOINTERV (VPG_ES20 + ES20_GETVERTEXATTRIBPOINTERV)
-#define VPC_ES20HINT (VPG_ES20 + ES20_HINT)
-#define VPC_ES20ISBUFFER (VPG_ES20 + ES20_ISBUFFER)
-#define VPC_ES20ISENABLED (VPG_ES20 + ES20_ISENABLED)
-#define VPC_ES20ISFRAMEBUFFER (VPG_ES20 + ES20_ISFRAMEBUFFER)
-#define VPC_ES20ISPROGRAM (VPG_ES20 + ES20_ISPROGRAM)
-#define VPC_ES20ISRENDERBUFFER (VPG_ES20 + ES20_ISRENDERBUFFER)
-#define VPC_ES20ISSHADER (VPG_ES20 + ES20_ISSHADER)
-#define VPC_ES20ISTEXTURE (VPG_ES20 + ES20_ISTEXTURE)
-#define VPC_ES20LINEWIDTH (VPG_ES20 + ES20_LINEWIDTH)
-#define VPC_ES20LINKPROGRAM (VPG_ES20 + ES20_LINKPROGRAM)
-#define VPC_ES20PIXELSTOREI (VPG_ES20 + ES20_PIXELSTOREI)
-#define VPC_ES20POLYGONOFFSET (VPG_ES20 + ES20_POLYGONOFFSET)
-#define VPC_ES20READPIXELS (VPG_ES20 + ES20_READPIXELS)
-#define VPC_ES20RELEASESHADERCOMPILER (VPG_ES20 + ES20_RELEASESHADERCOMPILER)
-#define VPC_ES20RENDERBUFFERSTORAGE (VPG_ES20 + ES20_RENDERBUFFERSTORAGE)
-#define VPC_ES20SAMPLECOVERAGE (VPG_ES20 + ES20_SAMPLECOVERAGE)
-#define VPC_ES20SCISSOR (VPG_ES20 + ES20_SCISSOR)
-#define VPC_ES20SHADERBINARY (VPG_ES20 + ES20_SHADERBINARY)
-#define VPC_ES20SHADERSOURCE (VPG_ES20 + ES20_SHADERSOURCE)
-#define VPC_ES20STENCILFUNC (VPG_ES20 + ES20_STENCILFUNC)
-#define VPC_ES20STENCILFUNCSEPARATE (VPG_ES20 + ES20_STENCILFUNCSEPARATE)
-#define VPC_ES20STENCILMASK (VPG_ES20 + ES20_STENCILMASK)
-#define VPC_ES20STENCILMASKSEPARATE (VPG_ES20 + ES20_STENCILMASKSEPARATE)
-#define VPC_ES20STENCILOP (VPG_ES20 + ES20_STENCILOP)
-#define VPC_ES20STENCILOPSEPARATE (VPG_ES20 + ES20_STENCILOPSEPARATE)
-#define VPC_ES20TEXIMAGE2D (VPG_ES20 + ES20_TEXIMAGE2D)
-#define VPC_ES20TEXPARAMETERF (VPG_ES20 + ES20_TEXPARAMETERF)
-#define VPC_ES20TEXPARAMETERFV (VPG_ES20 + ES20_TEXPARAMETERFV)
-#define VPC_ES20TEXPARAMETERI (VPG_ES20 + ES20_TEXPARAMETERI)
-#define VPC_ES20TEXPARAMETERIV (VPG_ES20 + ES20_TEXPARAMETERIV)
-#define VPC_ES20TEXSUBIMAGE2D (VPG_ES20 + ES20_TEXSUBIMAGE2D)
-#define VPC_ES20UNIFORM1F (VPG_ES20 + ES20_UNIFORM1F)
-#define VPC_ES20UNIFORM1FV (VPG_ES20 + ES20_UNIFORM1FV)
-#define VPC_ES20UNIFORM1I (VPG_ES20 + ES20_UNIFORM1I)
-#define VPC_ES20UNIFORM1IV (VPG_ES20 + ES20_UNIFORM1IV)
-#define VPC_ES20UNIFORM2F (VPG_ES20 + ES20_UNIFORM2F)
-#define VPC_ES20UNIFORM2FV (VPG_ES20 + ES20_UNIFORM2FV)
-#define VPC_ES20UNIFORM2I (VPG_ES20 + ES20_UNIFORM2I)
-#define VPC_ES20UNIFORM2IV (VPG_ES20 + ES20_UNIFORM2IV)
-#define VPC_ES20UNIFORM3F (VPG_ES20 + ES20_UNIFORM3F)
-#define VPC_ES20UNIFORM3FV (VPG_ES20 + ES20_UNIFORM3FV)
-#define VPC_ES20UNIFORM3I (VPG_ES20 + ES20_UNIFORM3I)
-#define VPC_ES20UNIFORM3IV (VPG_ES20 + ES20_UNIFORM3IV)
-#define VPC_ES20UNIFORM4F (VPG_ES20 + ES20_UNIFORM4F)
-#define VPC_ES20UNIFORM4FV (VPG_ES20 + ES20_UNIFORM4FV)
-#define VPC_ES20UNIFORM4I (VPG_ES20 + ES20_UNIFORM4I)
-#define VPC_ES20UNIFORM4IV (VPG_ES20 + ES20_UNIFORM4IV)
-#define VPC_ES20UNIFORMMATRIX2FV (VPG_ES20 + ES20_UNIFORMMATRIX2FV)
-#define VPC_ES20UNIFORMMATRIX3FV (VPG_ES20 + ES20_UNIFORMMATRIX3FV)
-#define VPC_ES20UNIFORMMATRIX4FV (VPG_ES20 + ES20_UNIFORMMATRIX4FV)
-#define VPC_ES20USEPROGRAM (VPG_ES20 + ES20_USEPROGRAM)
-#define VPC_ES20VALIDATEPROGRAM (VPG_ES20 + ES20_VALIDATEPROGRAM)
-#define VPC_ES20VERTEXATTRIB1F (VPG_ES20 + ES20_VERTEXATTRIB1F)
-#define VPC_ES20VERTEXATTRIB1FV (VPG_ES20 + ES20_VERTEXATTRIB1FV)
-#define VPC_ES20VERTEXATTRIB2F (VPG_ES20 + ES20_VERTEXATTRIB2F)
-#define VPC_ES20VERTEXATTRIB2FV (VPG_ES20 + ES20_VERTEXATTRIB2FV)
-#define VPC_ES20VERTEXATTRIB3F (VPG_ES20 + ES20_VERTEXATTRIB3F)
-#define VPC_ES20VERTEXATTRIB3FV (VPG_ES20 + ES20_VERTEXATTRIB3FV)
-#define VPC_ES20VERTEXATTRIB4F (VPG_ES20 + ES20_VERTEXATTRIB4F)
-#define VPC_ES20VERTEXATTRIB4FV (VPG_ES20 + ES20_VERTEXATTRIB4FV)
-#define VPC_ES20VERTEXATTRIBPOINTER (VPG_ES20 + ES20_VERTEXATTRIBPOINTER)
-#define VPC_ES20VIEWPORT (VPG_ES20 + ES20_VIEWPORT)
+#define VPC_ES11CALLS (VPG_ES11 + ES11_CALLS)
+#define VPC_ES11DRAWCALLS (VPG_ES11 + ES11_DRAWCALLS)
+#define VPC_ES11STATECHANGECALLS (VPG_ES11 + ES11_STATECHANGECALLS)
+#define VPC_ES11POINTCOUNT (VPG_ES11 + ES11_POINTCOUNT)
+#define VPC_ES11LINECOUNT (VPG_ES11 + ES11_LINECOUNT)
+#define VPC_ES11TRIANGLECOUNT (VPG_ES11 + ES11_TRIANGLECOUNT)
+
/* OpenGL ES20 Statistics Counter IDs. */
-#define VPC_ES20CALLS (VPG_ES20 + ES20_CALLS)
-#define VPC_ES20DRAWCALLS (VPG_ES20 + ES20_DRAWCALLS)
-#define VPC_ES20STATECHANGECALLS (VPG_ES20 + ES20_STATECHANGECALLS)
-#define VPC_ES20POINTCOUNT (VPG_ES20 + ES20_POINTCOUNT)
-#define VPC_ES20LINECOUNT (VPG_ES20 + ES20_LINECOUNT)
-#define VPC_ES20TRIANGLECOUNT (VPG_ES20 + ES20_TRIANGLECOUNT)
-
-/* VG11 Counters. */
-#define VPC_VG11APPENDPATH (VPG_VG11 + VG11_APPENDPATH)
-#define VPC_VG11APPENDPATHDATA (VPG_VG11 + VG11_APPENDPATHDATA)
-#define VPC_VG11CHILDIMAGE (VPG_VG11 + VG11_CHILDIMAGE)
-#define VPC_VG11CLEAR (VPG_VG11 + VG11_CLEAR)
-#define VPC_VG11CLEARGLYPH (VPG_VG11 + VG11_CLEARGLYPH)
-#define VPC_VG11CLEARIMAGE (VPG_VG11 + VG11_CLEARIMAGE)
-#define VPC_VG11CLEARPATH (VPG_VG11 + VG11_CLEARPATH)
-#define VPC_VG11COLORMATRIX (VPG_VG11 + VG11_COLORMATRIX)
-#define VPC_VG11CONVOLVE (VPG_VG11 + VG11_CONVOLVE)
-#define VPC_VG11COPYIMAGE (VPG_VG11 + VG11_COPYIMAGE)
-#define VPC_VG11COPYMASK (VPG_VG11 + VG11_COPYMASK)
-#define VPC_VG11COPYPIXELS (VPG_VG11 + VG11_COPYPIXELS)
-#define VPC_VG11CREATEFONT (VPG_VG11 + VG11_CREATEFONT)
-#define VPC_VG11CREATEIMAGE (VPG_VG11 + VG11_CREATEIMAGE)
-#define VPC_VG11CREATEMASKLAYER (VPG_VG11 + VG11_CREATEMASKLAYER)
-#define VPC_VG11CREATEPAINT (VPG_VG11 + VG11_CREATEPAINT)
-#define VPC_VG11CREATEPATH (VPG_VG11 + VG11_CREATEPATH)
-#define VPC_VG11DESTROYFONT (VPG_VG11 + VG11_DESTROYFONT)
-#define VPC_VG11DESTROYIMAGE (VPG_VG11 + VG11_DESTROYIMAGE)
-#define VPC_VG11DESTROYMASKLAYER (VPG_VG11 + VG11_DESTROYMASKLAYER)
-#define VPC_VG11DESTROYPAINT (VPG_VG11 + VG11_DESTROYPAINT)
-#define VPC_VG11DESTROYPATH (VPG_VG11 + VG11_DESTROYPATH)
-#define VPC_VG11DRAWGLYPH (VPG_VG11 + VG11_DRAWGLYPH)
-#define VPC_VG11DRAWGLYPHS (VPG_VG11 + VG11_DRAWGLYPHS)
-#define VPC_VG11DRAWIMAGE (VPG_VG11 + VG11_DRAWIMAGE)
-#define VPC_VG11DRAWPATH (VPG_VG11 + VG11_DRAWPATH)
-#define VPC_VG11FILLMASKLAYER (VPG_VG11 + VG11_FILLMASKLAYER)
-#define VPC_VG11FINISH (VPG_VG11 + VG11_FINISH)
-#define VPC_VG11FLUSH (VPG_VG11 + VG11_FLUSH)
-#define VPC_VG11GAUSSIANBLUR (VPG_VG11 + VG11_GAUSSIANBLUR)
-#define VPC_VG11GETCOLOR (VPG_VG11 + VG11_GETCOLOR)
-#define VPC_VG11GETERROR (VPG_VG11 + VG11_GETERROR)
-#define VPC_VG11GETF (VPG_VG11 + VG11_GETF)
-#define VPC_VG11GETFV (VPG_VG11 + VG11_GETFV)
-#define VPC_VG11GETI (VPG_VG11 + VG11_GETI)
-#define VPC_VG11GETIMAGESUBDATA (VPG_VG11 + VG11_GETIMAGESUBDATA)
-#define VPC_VG11GETIV (VPG_VG11 + VG11_GETIV)
-#define VPC_VG11GETMATRIX (VPG_VG11 + VG11_GETMATRIX)
-#define VPC_VG11GETPAINT (VPG_VG11 + VG11_GETPAINT)
-#define VPC_VG11GETPARAMETERF (VPG_VG11 + VG11_GETPARAMETERF)
-#define VPC_VG11GETPARAMETERFV (VPG_VG11 + VG11_GETPARAMETERFV)
-#define VPC_VG11GETPARAMETERI (VPG_VG11 + VG11_GETPARAMETERI)
-#define VPC_VG11GETPARAMETERIV (VPG_VG11 + VG11_GETPARAMETERIV)
-#define VPC_VG11GETPARAMETERVECTORSIZE (VPG_VG11 + VG11_GETPARAMETERVECTORSIZE)
-#define VPC_VG11GETPARENT (VPG_VG11 + VG11_GETPARENT)
-#define VPC_VG11GETPATHCAPABILITIES (VPG_VG11 + VG11_GETPATHCAPABILITIES)
-#define VPC_VG11GETPIXELS (VPG_VG11 + VG11_GETPIXELS)
-#define VPC_VG11GETSTRING (VPG_VG11 + VG11_GETSTRING)
-#define VPC_VG11GETVECTORSIZE (VPG_VG11 + VG11_GETVECTORSIZE)
-#define VPC_VG11HARDWAREQUERY (VPG_VG11 + VG11_HARDWAREQUERY)
-#define VPC_VG11IMAGESUBDATA (VPG_VG11 + VG11_IMAGESUBDATA)
-#define VPC_VG11INTERPOLATEPATH (VPG_VG11 + VG11_INTERPOLATEPATH)
-#define VPC_VG11LOADIDENTITY (VPG_VG11 + VG11_LOADIDENTITY)
-#define VPC_VG11LOADMATRIX (VPG_VG11 + VG11_LOADMATRIX)
-#define VPC_VG11LOOKUP (VPG_VG11 + VG11_LOOKUP)
-#define VPC_VG11LOOKUPSINGLE (VPG_VG11 + VG11_LOOKUPSINGLE)
-#define VPC_VG11MASK (VPG_VG11 + VG11_MASK)
-#define VPC_VG11MODIFYPATHCOORDS (VPG_VG11 + VG11_MODIFYPATHCOORDS)
-#define VPC_VG11MULTMATRIX (VPG_VG11 + VG11_MULTMATRIX)
-#define VPC_VG11PAINTPATTERN (VPG_VG11 + VG11_PAINTPATTERN)
-#define VPC_VG11PATHBOUNDS (VPG_VG11 + VG11_PATHBOUNDS)
-#define VPC_VG11PATHLENGTH (VPG_VG11 + VG11_PATHLENGTH)
-#define VPC_VG11PATHTRANSFORMEDBOUNDS (VPG_VG11 + VG11_PATHTRANSFORMEDBOUNDS)
-#define VPC_VG11POINTALONGPATH (VPG_VG11 + VG11_POINTALONGPATH)
-#define VPC_VG11READPIXELS (VPG_VG11 + VG11_READPIXELS)
-#define VPC_VG11REMOVEPATHCAPABILITIES (VPG_VG11 + VG11_REMOVEPATHCAPABILITIES)
-#define VPC_VG11RENDERTOMASK (VPG_VG11 + VG11_RENDERTOMASK)
-#define VPC_VG11ROTATE (VPG_VG11 + VG11_ROTATE)
-#define VPC_VG11SCALE (VPG_VG11 + VG11_SCALE)
-#define VPC_VG11SEPARABLECONVOLVE (VPG_VG11 + VG11_SEPARABLECONVOLVE)
-#define VPC_VG11SETCOLOR (VPG_VG11 + VG11_SETCOLOR)
-#define VPC_VG11SETF (VPG_VG11 + VG11_SETF)
-#define VPC_VG11SETFV (VPG_VG11 + VG11_SETFV)
-#define VPC_VG11SETGLYPHTOIMAGE (VPG_VG11 + VG11_SETGLYPHTOIMAGE)
-#define VPC_VG11SETGLYPHTOPATH (VPG_VG11 + VG11_SETGLYPHTOPATH)
-#define VPC_VG11SETI (VPG_VG11 + VG11_SETI)
-#define VPC_VG11SETIV (VPG_VG11 + VG11_SETIV)
-#define VPC_VG11SETPAINT (VPG_VG11 + VG11_SETPAINT)
-#define VPC_VG11SETPARAMETERF (VPG_VG11 + VG11_SETPARAMETERF)
-#define VPC_VG11SETPARAMETERFV (VPG_VG11 + VG11_SETPARAMETERFV)
-#define VPC_VG11SETPARAMETERI (VPG_VG11 + VG11_SETPARAMETERI)
-#define VPC_VG11SETPARAMETERIV (VPG_VG11 + VG11_SETPARAMETERIV)
-#define VPC_VG11SETPIXELS (VPG_VG11 + VG11_SETPIXELS)
-#define VPC_VG11SHEAR (VPG_VG11 + VG11_SHEAR)
-#define VPC_VG11TRANSFORMPATH (VPG_VG11 + VG11_TRANSFORMPATH)
-#define VPC_VG11TRANSLATE (VPG_VG11 + VG11_TRANSLATE)
-#define VPC_VG11WRITEPIXELS (VPG_VG11 + VG11_WRITEPIXELS)
+#define VPC_ES20CALLS (VPG_ES20 + ES20_CALLS)
+#define VPC_ES20DRAWCALLS (VPG_ES20 + ES20_DRAWCALLS)
+#define VPC_ES20STATECHANGECALLS (VPG_ES20 + ES20_STATECHANGECALLS)
+#define VPC_ES20POINTCOUNT (VPG_ES20 + ES20_POINTCOUNT)
+#define VPC_ES20LINECOUNT (VPG_ES20 + ES20_LINECOUNT)
+#define VPC_ES20TRIANGLECOUNT (VPG_ES20 + ES20_TRIANGLECOUNT)
+
/* OpenVG Statistics Counter IDs. */
-#define VPC_VG11CALLS (VPG_VG11 + VG11_CALLS)
-#define VPC_VG11DRAWCALLS (VPG_VG11 + VG11_DRAWCALLS)
-#define VPC_VG11STATECHANGECALLS (VPG_VG11 + VG11_STATECHANGECALLS)
-#define VPC_VG11FILLCOUNT (VPG_VG11 + VG11_FILLCOUNT)
-#define VPC_VG11STROKECOUNT (VPG_VG11 + VG11_STROKECOUNT)
+#define VPC_VG11CALLS (VPG_VG11 + VG11_CALLS)
+#define VPC_VG11DRAWCALLS (VPG_VG11 + VG11_DRAWCALLS)
+#define VPC_VG11STATECHANGECALLS (VPG_VG11 + VG11_STATECHANGECALLS)
+#define VPC_VG11FILLCOUNT (VPG_VG11 + VG11_FILLCOUNT)
+#define VPC_VG11STROKECOUNT (VPG_VG11 + VG11_STROKECOUNT)
/* HAL Counters. */
#define VPC_HALVERTBUFNEWBYTEALLOC (VPG_HAL + HAL_VERTBUFNEWBYTEALLOC)
@@ -1018,7 +248,7 @@ extern "C" {
#define VPC_GPUREAD64BYTE (VPG_GPU + GPU_READ64BYTE)
#define VPC_GPUWRITE64BYTE (VPG_GPU + GPU_WRITE64BYTE)
#define VPC_GPUTOTALCYCLES (VPG_GPU + GPU_TOTALCYCLES)
-#define VPC_GPUIDLECYCLES (VPG_GPU + GPU_IDLECYCLES)
+#define VPC_GPUIDLECYCLES (VPG_GPU + GPU_IDLECYCLES)
/* HW: Shader Counters. */
#define VPC_VSINSTCOUNT (VPG_VS + VS_INSTCOUNT)
@@ -1026,9 +256,9 @@ extern "C" {
#define VPC_VSTEXLDINSTCOUNT (VPG_VS + VS_TEXLDINSTCOUNT)
#define VPC_VSRENDEREDVERTCOUNT (VPG_VS + VS_RENDEREDVERTCOUNT)
/* HW: PS Count. */
-#define VPC_PSINSTCOUNT (VPG_PS + PS_INSTCOUNT)
-#define VPC_PSBRANCHINSTCOUNT (VPG_PS + PS_BRANCHINSTCOUNT)
-#define VPC_PSTEXLDINSTCOUNT (VPG_PS + PS_TEXLDINSTCOUNT)
+#define VPC_PSINSTCOUNT (VPG_PS + PS_INSTCOUNT)
+#define VPC_PSBRANCHINSTCOUNT (VPG_PS + PS_BRANCHINSTCOUNT)
+#define VPC_PSTEXLDINSTCOUNT (VPG_PS + PS_TEXLDINSTCOUNT)
#define VPC_PSRENDEREDPIXCOUNT (VPG_PS + PS_RENDEREDPIXCOUNT)
@@ -1071,7 +301,7 @@ extern "C" {
#define VPC_PEDRAWNBYDEPTH (VPG_PE + PE_DRAWNBYDEPTH)
/* HW: MC Counters. */
-#define VPC_MCREADREQ8BPIPE (VPG_MC + MC_READREQ8BPIPE)
+#define VPC_MCREADREQ8BPIPE (VPG_MC + MC_READREQ8BPIPE)
#define VPC_MCREADREQ8BIP (VPG_MC + MC_READREQ8BIP)
#define VPC_MCWRITEREQ8BPIPE (VPG_MC + MC_WRITEREQ8BPIPE)
@@ -1087,6 +317,7 @@ extern "C" {
#define VPC_PVSATTRIBCOUNT (VPG_PVS + PVS_ATTRIBCOUNT)
#define VPC_PVSUNIFORMCOUNT (VPG_PVS + PVS_UNIFORMCOUNT)
#define VPC_PVSFUNCTIONCOUNT (VPG_PVS + PVS_FUNCTIONCOUNT)
+#define VPC_PVSSOURCE (VPG_PVS + PVS_SOURCE)
#define VPC_PPSINSTRCOUNT (VPG_PPS + PPS_INSTRCOUNT)
#define VPC_PPSALUINSTRCOUNT (VPG_PPS + PPS_ALUINSTRCOUNT)
@@ -1094,7 +325,9 @@ extern "C" {
#define VPC_PPSATTRIBCOUNT (VPG_PPS + PPS_ATTRIBCOUNT)
#define VPC_PPSUNIFORMCOUNT (VPG_PPS + PPS_UNIFORMCOUNT)
#define VPC_PPSFUNCTIONCOUNT (VPG_PPS + PPS_FUNCTIONCOUNT)
+#define VPC_PPSSOURCE (VPG_PPS + PPS_SOURCE)
+#define VPC_PROGRAMHANDLE (VPG_PROG + 1)
#define VPG_ES20_DRAW_NO (VPG_ES20_DRAW + 1)
#define VPG_ES11_DRAW_NO (VPG_ES11_DRAW + 1)
@@ -1118,8 +351,8 @@ typedef struct _gcsPROFILER_COUNTERS
/* HW vairable counters. */
gctUINT32 gpuCyclesCounter;
- gctUINT32 gpuTotalCyclesCounter;
- gctUINT32 gpuIdleCyclesCounter;
+ gctUINT32 gpuTotalCyclesCounter;
+ gctUINT32 gpuIdleCyclesCounter;
gctUINT32 gpuTotalRead64BytesPerFrame;
gctUINT32 gpuTotalWrite64BytesPerFrame;
@@ -1158,7 +391,7 @@ typedef struct _gcsPROFILER_COUNTERS
gctUINT32 ra_total_primitive_count;
gctUINT32 ra_pipe_cache_miss_counter;
gctUINT32 ra_prefetch_cache_miss_counter;
- gctUINT32 ra_eez_culled_counter;
+ gctUINT32 ra_eez_culled_counter;
/* TX */
gctUINT32 tx_total_bilinear_requests;
@@ -1190,7 +423,7 @@ typedef struct _gcsPROFILER
gctBOOL enableHal;
gctBOOL enableHW;
gctBOOL enableSH;
- gctBOOL isSyncMode;
+ gctBOOL isSyncMode;
gctBOOL useSocket;
gctINT sockFd;
@@ -1234,14 +467,17 @@ typedef struct _gcsPROFILER
gctUINT32 redundantStateChangeCalls;
#endif
- gctUINT32 prevVSInstCount;
- gctUINT32 prevVSBranchInstCount;
- gctUINT32 prevVSTexInstCount;
- gctUINT32 prevVSVertexCount;
- gctUINT32 prevPSInstCount;
- gctUINT32 prevPSBranchInstCount;
- gctUINT32 prevPSTexInstCount;
- gctUINT32 prevPSPixelCount;
+ gctUINT32 prevVSInstCount;
+ gctUINT32 prevVSBranchInstCount;
+ gctUINT32 prevVSTexInstCount;
+ gctUINT32 prevVSVertexCount;
+ gctUINT32 prevPSInstCount;
+ gctUINT32 prevPSBranchInstCount;
+ gctUINT32 prevPSTexInstCount;
+ gctUINT32 prevPSPixelCount;
+
+ char* psSource;
+ char* vsSource;
}
gcsPROFILER;
@@ -1315,6 +551,18 @@ gcoPROFILER_Count(
IN gctINT Value
);
+gceSTATUS
+gcoPROFILER_ShaderSourceFS(
+ IN gcoHAL Hal,
+ IN char* source
+ );
+
+gceSTATUS
+gcoPROFILER_ShaderSourceVS(
+ IN gcoHAL Hal,
+ IN char* source
+ );
+
/* Profile input vertex shader. */
gceSTATUS
gcoPROFILER_ShaderVS(
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
index bc4171efcbfe..6e4d830ee74b 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
@@ -568,6 +568,23 @@ gco2D_MonoBlit(
IN gceSURF_FORMAT DestFormat
);
+gceSTATUS
+gco2D_MonoBlitEx(
+ IN gco2D Engine,
+ IN gctPOINTER StreamBits,
+ IN gctINT32 StreamStride,
+ IN gctINT32 StreamWidth,
+ IN gctINT32 StreamHeight,
+ IN gctINT32 StreamX,
+ IN gctINT32 StreamY,
+ IN gctUINT32 FgColor,
+ IN gctUINT32 BgColor,
+ IN gcsRECT_PTR SrcRect,
+ IN gcsRECT_PTR DstRect,
+ IN gctUINT8 FgRop,
+ IN gctUINT8 BgRop
+ );
+
/* Set kernel size. */
gceSTATUS
gco2D_SetKernelSize(
@@ -942,6 +959,15 @@ gco2D_SetSourceTileStatus(
);
gceSTATUS
+gco2D_SetTargetTileStatus(
+ IN gco2D Engine,
+ IN gce2D_TILE_STATUS_CONFIG TileStatusConfig,
+ IN gceSURF_FORMAT CompressedFormat,
+ IN gctUINT32 ClearValue,
+ IN gctUINT32 GpuAddress
+ );
+
+gceSTATUS
gco2D_QueryU32(
IN gco2D Engine,
IN gce2D_QUERY Item,
@@ -955,6 +981,28 @@ gco2D_SetStateU32(
IN gctUINT32 Value
);
+gceSTATUS
+gco2D_SetStateArrayI32(
+ IN gco2D Engine,
+ IN gce2D_STATE State,
+ IN gctINT32_PTR Array,
+ IN gctINT32 ArraySize
+ );
+
+gceSTATUS
+gco2D_SetStateArrayU32(
+ IN gco2D Engine,
+ IN gce2D_STATE State,
+ IN gctUINT32_PTR Array,
+ IN gctINT32 ArraySize
+ );
+
+gceSTATUS
+gco2D_SetTargetRect(
+ IN gco2D Engine,
+ IN gcsRECT_PTR Rect
+ );
+
#ifdef __cplusplus
}
#endif
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 5c0877df76e3..14801aae46db 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
@@ -128,6 +128,7 @@ typedef int gctBOOL;
typedef gctBOOL * gctBOOL_PTR;
typedef int gctINT;
+typedef long gctLONG;
typedef signed char gctINT8;
typedef signed short gctINT16;
typedef signed int gctINT32;
@@ -171,6 +172,7 @@ typedef void * gctFILE;
typedef void * gctSIGNAL;
typedef void * gctWINDOW;
typedef void * gctIMAGE;
+typedef void * gctSYNC_POINT;
typedef void * gctSEMAPHORE;
@@ -941,12 +943,19 @@ typedef struct _gcsHAL_FRAME_INFO
OUT gctUINT readRequests[8];
OUT gctUINT writeRequests[8];
+ /* FE counters. */
+ OUT gctUINT drawCount;
+ OUT gctUINT vertexOutCount;
+ OUT gctUINT vertexMissCount;
+
/* 3D counters. */
OUT gctUINT vertexCount;
OUT gctUINT primitiveCount;
OUT gctUINT rejectedPrimitives;
OUT gctUINT culledPrimitives;
OUT gctUINT clippedPrimitives;
+ OUT gctUINT droppedPrimitives;
+ OUT gctUINT frustumClippedPrimitives;
OUT gctUINT outPrimitives;
OUT gctUINT inPrimitives;
OUT gctUINT culledQuadCount;
@@ -964,18 +973,86 @@ typedef struct _gcsHAL_FRAME_INFO
OUT gctUINT shaderCycles;
OUT gctUINT vsInstructionCount;
OUT gctUINT vsTextureCount;
+ OUT gctUINT vsBranchCount;
+ OUT gctUINT vsVertices;
OUT gctUINT psInstructionCount;
OUT gctUINT psTextureCount;
+ OUT gctUINT psBranchCount;
+ OUT gctUINT psPixels;
/* Texture counters. */
OUT gctUINT bilinearRequests;
OUT gctUINT trilinearRequests;
- OUT gctUINT txBytes8;
+ OUT gctUINT txBytes8[2];
OUT gctUINT txHitCount;
OUT gctUINT txMissCount;
}
gcsHAL_FRAME_INFO;
+typedef enum _gcePATCH_ID
+{
+ gcePATCH_UNKNOWN = 0xFFFFFFFF,
+
+ /* Benchmark list*/
+ gcePATCH_GLB11 = 0x0,
+ gcePATCH_GLB21,
+ gcePATCH_GLB25,
+ gcePATCH_GLB27,
+
+ gcePATCH_BM21,
+ gcePATCH_MM,
+ gcePATCH_MM06,
+ gcePATCH_MM07,
+ gcePATCH_QUADRANT,
+ gcePATCH_ANTUTU,
+ gcePATCH_SMARTBENCH,
+ gcePATCH_JPCT,
+ gcePATCH_NENAMARK,
+ gcePATCH_NENAMARK2,
+ gcePATCH_NEOCORE,
+ gcePATCH_GLB,
+ gcePATCH_GB,
+ gcePATCH_RTESTVA,
+ gcePATCH_BMX,
+ gcePATCH_BMGUI,
+
+ /* Game list */
+ gcePATCH_NBA2013,
+ gcePATCH_BARDTALE,
+ gcePATCH_BUSPARKING3D,
+ gcePATCH_FISHBOODLE,
+ gcePATCH_SUBWAYSURFER,
+ gcePATCH_HIGHWAYDRIVER,
+ gcePATCH_PREMIUM,
+ gcePATCH_RACEILLEGAL,
+ gcePATCH_BLABLA,
+ gcePATCH_MEGARUN,
+ gcePATCH_GALAXYONFIRE2,
+ gcePATCH_GLOFTR3HM,
+ gcePATCH_GLOFTSXHM,
+ gcePATCH_GLOFTF3HM,
+ gcePATCH_GLOFTGANG,
+ gcePATCH_XRUNNER,
+ gcePATCH_WP,
+ gcePATCH_DEVIL,
+ gcePATCH_HOLYARCH,
+ gcePATCH_MUSE,
+ gcePATCH_SG,
+ gcePATCH_SIEGECRAFT,
+ gcePATCH_CARCHALLENGE,
+ gcePATCH_HEROESCALL,
+ gcePATCH_MONOPOLY,
+ gcePATCH_CTGL20,
+ gcePATCH_FIREFOX,
+ gcePATCH_CHORME,
+ gcePATCH_DUOKANTV,
+ gcePATCH_TESTAPP,
+
+ /* Count enum*/
+ gcePATCH_COUNT,
+}
+gcePATCH_ID;
+
#if gcdLINK_QUEUE_SIZE
typedef struct _gckLINKDATA * gckLINKDATA;
struct _gckLINKDATA
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 03cb4d6161df..2eab66604642 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
@@ -28,7 +28,7 @@
#define gcvVERSION_PATCH 9
-#define gcvVERSION_BUILD 6622
+#define gcvVERSION_BUILD 9754
#define gcvVERSION_DATE __DATE__