Skip to content

Commit

Permalink
Bugfixes, added vitasdk stubs
Browse files Browse the repository at this point in the history
  • Loading branch information
GrapheneCt committed Aug 6, 2021
1 parent cdd7ee4 commit 8ee0e57
Show file tree
Hide file tree
Showing 24 changed files with 561 additions and 71 deletions.
3 changes: 3 additions & 0 deletions eurasiacon/imgegl/imgegl.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@
<AdditionalOptions>--no-required-files</AdditionalOptions>
<GenerateSnMapFile>None</GenerateSnMapFile>
</Link>
<PostBuildEvent>
<Command>"$(SCE_PSP2_SDK_DIR)\host_tools\build\bin\vdsuite-libgen.exe" --output-kind VitasdkStub "$(SolutionDir)lib\vitasdk_out\IMGEGL.yml" "$(OutDir)libIMGEGL_stub_vitasdk.a"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">
<ClCompile>
Expand Down
4 changes: 2 additions & 2 deletions eurasiacon/imgegl/imgegl/khronos_egl.c
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ IMG_INTERNAL IMG_BOOL _TlsInit(TLS psTls)
PVRSRVGetAppHint(pvHintState, "ParamBufferSize", IMG_UINT_TYPE,
&ui32DefaultParamBufferSize, &psGlobalData->sAppHints.ui32ParamBufferSize);

PVRSRVGetAppHint(pvHintState, "DriverMemorySizeSize", IMG_UINT_TYPE,
PVRSRVGetAppHint(pvHintState, "DriverMemorySize", IMG_UINT_TYPE,
&ui32DefaultDriverMemorySize, &psGlobalData->sAppHints.ui32DriverMemorySize);

ui32Default = EXTERNAL_ZBUFFER_MODE_DEFAULT;
Expand Down Expand Up @@ -4921,7 +4921,7 @@ IMG_EXPORT EGLContext IMGeglCreateContext(EGLDisplay eglDpy,
KEGL_CONFIG_INDEX configIndex = (KEGL_CONFIG_INDEX)eglCfg;

#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
SGX_CONTEXT_PRIORITY eContextPriority = SGX_CONTEXT_PRIORITY_MEDIUM;
SGX_CONTEXT_PRIORITY eContextPriority = SGX_CONTEXT_PRIORITY_HIGH;
#endif

#if defined(EGL_EXTENSION_IMG_EGL_HIBERNATION)
Expand Down
1 change: 1 addition & 0 deletions eurasiacon/opengles1/context.h
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,7 @@ __inline IMG_VOID *GLES1CallocHeapUNC(GLES1Context *gc, unsigned int size)
}
#define GLES1ReallocHeapUNC(X,Y,Z) (IMG_VOID*)sceHeapReallocHeapMemory(X->pvUNCHeap, Y, Z)
#define GLES1FreeHeapUNC(X,Y) sceHeapFreeHeapMemory(X->pvUNCHeap, Y)
#define GLES1FreeHeapAsyncUNC(X,Y) texOpAsyncAddForCleanup(X, Y)


#define GLES1MallocHeapCDRAM(X,Y) (IMG_VOID*)sceHeapAllocHeapMemory(X->pvCDRAMHeap, Y)
Expand Down
4 changes: 4 additions & 0 deletions eurasiacon/opengles1/eglglue.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

#include "context.h"
#include "pvrversion.h"
#include "psp2/swtexop.h"
#include "psp2/libheap_custom.h"
#include <string.h>
#include <ult.h>
Expand Down Expand Up @@ -613,6 +614,9 @@ static IMG_BOOL InitContext(GLES1Context *gc, GLES1Context *psShareContext, EGLc
goto FAILED_sceUltUlthreadRuntimeCreate;
}

SceUID swTexCl = sceKernelCreateThread("OGLES1AsyncTexOpCl", texOpAsyncCleanupThread, 190, 256 * 1024, 0, 0, SCE_NULL);
sceKernelStartThread(swTexCl, 4, &gc);

#if defined(GLES1_EXTENSION_VERTEX_ARRAY_OBJECT)
/* Initialize the unshareable names arrays */
for (i = 0; i < GLES1_MAX_UNSHAREABLE_NAMETYPE; i++)
Expand Down
4 changes: 2 additions & 2 deletions eurasiacon/opengles1/makemips.c
Original file line number Diff line number Diff line change
Expand Up @@ -966,7 +966,7 @@ IMG_INTERNAL IMG_BOOL HardwareMakeTextureMipmapLevels(GLES1Context *gc, GLESText
{
bHWTexUploaded = IMG_TRUE;

GLES1FreeHeapUNC(gc, psLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psLevel->pui8Buffer);

psLevel->pui8Buffer = GLES1_LOADED_LEVEL;
}
Expand Down Expand Up @@ -1068,7 +1068,7 @@ IMG_INTERNAL IMG_BOOL HardwareMakeTextureMipmapLevels(GLES1Context *gc, GLESText
/* The local data copy of the texture level is being freed */
if ((psLevel->pui8Buffer != IMG_NULL) && (psLevel->pui8Buffer != GLES1_LOADED_LEVEL))
{
GLES1FreeHeapUNC(gc, psLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psLevel->pui8Buffer);
}

if (i == 0)
Expand Down
3 changes: 3 additions & 0 deletions eurasiacon/opengles1/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,9 @@ IMG_INTERNAL IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMo
ui32Default = 16;
PVRSRVGetAppHint(pvHintState, "OGLES1SwTexOpMaxUltNum", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32OGLES1SwTexOpMaxUltNum);

ui32Default = 10000000;
PVRSRVGetAppHint(pvHintState, "OGLES1SwTexOpCleanupDelay", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32OGLES1SwTexOpCleanupDelay);

PVRSRVFreeAppHintState(IMG_OPENGLES1, pvHintState);

return IMG_TRUE;
Expand Down
1 change: 1 addition & 0 deletions eurasiacon/opengles1/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ typedef struct GLESAppHintsRec
IMG_UINT32 ui32OGLES1SwTexOpThreadPriority;
IMG_UINT32 ui32OGLES1SwTexOpThreadAffinity;
IMG_UINT32 ui32OGLES1SwTexOpMaxUltNum;
IMG_UINT32 ui32OGLES1SwTexOpCleanupDelay;
} GLESAppHints;

IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMode *psMode);
Expand Down
7 changes: 5 additions & 2 deletions eurasiacon/opengles1/opengles1.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@
<AdditionalIncludeDirectories>$(SCE_PSP2_SDK_DIR)\target\include\vdsuite\user;$(SCE_PSP2_SDK_DIR)\target\include\vdsuite\common;$(SolutionDir)include\gpu_es4;$(SolutionDir)include\gpu_es4\eurasia\include4;$(SolutionDir)include\gpu_es4\eurasia\hwdefs;$(SolutionDir)include\gpu_es4\eurasia\services4\include;$(SolutionDir)include\gpu_es4\eurasia\services4\system\psp2;$(SolutionDir)codegen\pds;$(SolutionDir)codegen\pixevent;$(SolutionDir)codegen\usegen;$(SolutionDir)eurasiacon\include;$(SolutionDir)eurasiacon\common;$(SolutionDir)common\tls;$(SolutionDir)common\dmscalc;$(SolutionDir)include\gpu_es4\eurasia\services4\srvclient\devices\sgx;$(SolutionDir)codegen\ffgen;$(SolutionDir)tools\intern\useasm;$(SolutionDir)codegen\pixfmts;$(SolutionDir)intermediates\pds_mte_state_copy;$(SolutionDir)intermediates\pds_aux_vtx;$(SolutionDir)intermediates\pixelevent;$(SolutionDir)intermediates\pixelevent_tilexy;$(SolutionDir)intermediates\sgxsupport;$(SolutionDir)intermediates\errata;$(SolutionDir)tools\intern\usc2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalDependencies>$(OutDir)libgpu_es4_ext_stub.a;$(OutDir)libpvrPSP2_WSEGL_stub.a;$(OutDir)libIMGEGL_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4User_stub.a;-lSceGxm_stub;-lSceGpuEs4ForUser_stub;-lSceDmacmgr_stub;-lSceSysmodule_stub;-lSceUlt_stub_weak;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(OutDir)libgpu_es4_ext_stub.a;$(OutDir)libpvrPSP2_WSEGL_stub.a;$(OutDir)libIMGEGL_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4User_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4UserForVsh_stub.a;-lSceGxm_stub;-lSceGpuEs4ForUser_stub;-lSceDmacmgr_stub;-lSceSysmodule_stub;-lSceUlt_stub_weak;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SCE_PSP2_SDK_DIR)\target\lib\vdsuite;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
Expand All @@ -217,10 +217,13 @@
<FastMath>true</FastMath>
</ClCompile>
<Link>
<AdditionalDependencies>$(OutDir)libgpu_es4_ext_stub.a;$(OutDir)libpvrPSP2_WSEGL_stub.a;$(OutDir)libIMGEGL_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4User_stub.a;-lSceGxm_stub;-lSceGpuEs4ForUser_stub;-lSceDmacmgr_stub;-lSceSysmodule_stub;-lSceUlt_stub_weak;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(OutDir)libgpu_es4_ext_stub.a;$(OutDir)libpvrPSP2_WSEGL_stub.a;$(OutDir)libIMGEGL_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4User_stub.a;$(SolutionDir)gpu_es4_ext\libSceGpuEs4UserForVsh_stub.a;-lSceGxm_stub;-lSceGpuEs4ForUser_stub;-lSceDmacmgr_stub;-lSceSysmodule_stub;-lSceUlt_stub_weak;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SCE_PSP2_SDK_DIR)\target\lib\vdsuite;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<InfoStripping>StripSymsAndDebug</InfoStripping>
</Link>
<PostBuildEvent>
<Command>"$(SCE_PSP2_SDK_DIR)\host_tools\build\bin\vdsuite-libgen.exe" --output-kind VitasdkStub "$(SolutionDir)lib\vitasdk_out\GLESv1_CM.yml" "$(OutDir)libGLESv1_CM_stub_vitasdk.a"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
Expand Down
15 changes: 15 additions & 0 deletions eurasiacon/opengles1/psp2/heap.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,21 @@ void *sceHeapAllocHeapMemoryWithOption(void *heap, unsigned int nbytes, const Sc
head->info.ordblks++;
#endif /* USE_HEAPINFO */
sceKernelUnlockLwMutex(&head->lwmtx, 1);

#if defined(DEBUG)
res = PVRSRVCheckMappedMemory(
head->psDevData,
head->hDevMemContext,
result,
nbytes,
PVRSRV_MEM_READ | PVRSRV_MEM_WRITE
);

sceClibPrintf("sceHeapAllocHeapMemoryWithOption check res: %d\n", res);
sceClibPrintf("base: 0x%X\n", result);
sceClibPrintf("size: 0x%X\n", nbytes);
#endif

return (result);
}

Expand Down
49 changes: 49 additions & 0 deletions eurasiacon/opengles1/psp2/swtexop.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@

int32_t sceKernelAtomicAddAndGet32(volatile int32_t* ptr, int32_t value);

static IMG_VOID *pvAsDstPtr[1024];
static IMG_UINT32 ui32AsDstReqTime[1024];

static IMG_INT32 _SWTextureUploadEntry(IMG_UINT32 arg)
{
SWTexUploadArg *psArg = (SWTexUploadArg *)arg;
Expand Down Expand Up @@ -162,4 +165,50 @@ IMG_INTERNAL IMG_BOOL SWMakeTextureMipmapLevels(GLES1Context *gc, GLESTexture *p
SCE_NULL);

return IMG_TRUE;
}

IMG_VOID texOpAsyncAddForCleanup(GLES1Context *gc, IMG_PVOID pvPtr)
{
IMG_UINT32 i = 0;

for (i = 0; i < 1024; i++)
{
if (pvAsDstPtr[i] == IMG_NULL)
{
ui32AsDstReqTime[i] = sceKernelGetProcessTimeLow();
pvAsDstPtr[i] = pvPtr;
return;
}
}

GLES1FreeHeapUNC(gc, pvPtr);
}

IMG_INT32 texOpAsyncCleanupThread(IMG_UINT32 argSize, IMG_VOID *pArgBlock)
{
IMG_UINT32 i = 0;
IMG_UINT32 ui32TriggerTime = 0;
GLES1Context *gc = *(GLES1Context **)pArgBlock;

sceClibMemset(pvAsDstPtr, 0, 1024 * 4);
sceClibMemset(&ui32AsDstReqTime[0], 0, 1024 * 4);

while (1)
{
ui32TriggerTime = sceKernelGetProcessTimeLow();

for (i = 0; i < 1024; i++)
{
if (pvAsDstPtr[i] != IMG_NULL)
{
if ((ui32TriggerTime - ui32AsDstReqTime[i]) > gc->sAppHints.ui32OGLES1SwTexOpCleanupDelay)
{
GLES1FreeHeapUNC(gc, pvAsDstPtr[i]);
pvAsDstPtr[i] = IMG_NULL;
}
}
}

sceKernelDelayThread(100000);
}
}
4 changes: 4 additions & 0 deletions eurasiacon/opengles1/psp2/swtexop.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,8 @@ IMG_INTERNAL IMG_VOID SWTextureUpload(

IMG_INTERNAL IMG_BOOL SWMakeTextureMipmapLevels(GLES1Context *gc, GLESTexture *psTex, IMG_UINT32 ui32Face);

IMG_INT32 texOpAsyncCleanupThread(IMG_UINT32 argSize, IMG_VOID *pArgBlock);

IMG_VOID texOpAsyncAddForCleanup(GLES1Context *gc, IMG_PVOID pvPtr);

#endif /* _PSP2_SWTEXOP_ */
8 changes: 4 additions & 4 deletions eurasiacon/opengles1/tex.c
Original file line number Diff line number Diff line change
Expand Up @@ -3578,7 +3578,7 @@ GL_API void GL_APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffse
ui32SrcRowSize, psMipLevel, IMG_TRUE);
TranslateLevel(gc, psTex, 0, 0);

GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);

psMipLevel->pui8Buffer = GLES1_LOADED_LEVEL;

Expand Down Expand Up @@ -3819,7 +3819,7 @@ GL_API void GL_APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffse
}
}

GLES1FreeHeapUNC(gc, pui8SubTexBuffer);
GLES1FreeHeapAsyncUNC(gc, pui8SubTexBuffer);
}
}

Expand Down Expand Up @@ -5716,7 +5716,7 @@ GL_API void GL_APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xo

TranslateLevel(gc, psTex, 0, 0);

GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);

psMipLevel->pui8Buffer = GLES1_LOADED_LEVEL;

Expand Down Expand Up @@ -6161,7 +6161,7 @@ GL_API void GL_APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xo
}
}

GLES1FreeHeapUNC(gc, pui8SubTexBuffer);
GLES1FreeHeapAsyncUNC(gc, pui8SubTexBuffer);
}

/* otherwise, use the software copy subtexture uploading:
Expand Down
12 changes: 6 additions & 6 deletions eurasiacon/opengles1/texmgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -1094,7 +1094,7 @@ IMG_INTERNAL IMG_BOOL TextureMakeResident(GLES1Context *gc, GLESTexture *psTex)
#if (defined(DEBUG) || defined(TIMING))
ui32TextureMemCurrent -= psMipLevel->ui32ImageSize;
#endif
GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);

psMipLevel->pui8Buffer = GLES1_LOADED_LEVEL;
}
Expand Down Expand Up @@ -1532,7 +1532,7 @@ IMG_INTERNAL IMG_BOOL TextureCreatePBufferLevel(GLES1Context *gc, GLESTexture *p
if (psMipLevel->pui8Buffer != NULL && psMipLevel->pui8Buffer != GLES1_LOADED_LEVEL)
{
PVR_UNREFERENCED_PARAMETER(gc);
GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);
}

psMipLevel->pui8Buffer = IMG_NULL;
Expand Down Expand Up @@ -1650,7 +1650,7 @@ IMG_INTERNAL IMG_BOOL TextureCreateImageLevel(GLES1Context *gc, GLESTexture *psT
if (psMipLevel->pui8Buffer != NULL && psMipLevel->pui8Buffer != GLES1_LOADED_LEVEL)
{
PVR_UNREFERENCED_PARAMETER(gc);
GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);
}

psMipLevel->pui8Buffer = IMG_NULL;
Expand Down Expand Up @@ -2062,7 +2062,7 @@ IMG_INTERNAL IMG_UINT8* TextureCreateLevel(GLES1Context *gc, GLESTexture *psTex
{
if (psMipLevel->pui8Buffer != GLES1_LOADED_LEVEL)
{
pui8Buffer = (IMG_UINT8 *) GLES1Realloc(gc, psMipLevel->pui8Buffer, ui32BufferSize);
pui8Buffer = (IMG_UINT8 *) GLES1ReallocHeapUNC(gc, psMipLevel->pui8Buffer, ui32BufferSize);

if (pui8Buffer == IMG_NULL)
{
Expand Down Expand Up @@ -2123,7 +2123,7 @@ IMG_INTERNAL IMG_UINT8* TextureCreateLevel(GLES1Context *gc, GLESTexture *psTex
#if (defined(DEBUG) || defined(TIMING))
ui32TextureMemCurrent -= psMipLevel->ui32ImageSize;
#endif
GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);
}

psMipLevel->pui8Buffer = IMG_NULL;
Expand Down Expand Up @@ -2290,7 +2290,7 @@ static IMG_VOID FreeTexture(GLES1Context *gc, GLESTexture *psTex)
#if (defined(DEBUG) || defined(TIMING))
ui32TextureMemCurrent -= psMipLevel->ui32ImageSize;
#endif
GLES1FreeHeapUNC(gc, psMipLevel->pui8Buffer);
GLES1FreeHeapAsyncUNC(gc, psMipLevel->pui8Buffer);

psMipLevel->pui8Buffer = IMG_NULL;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,11 @@ IMG_EXPORT IMG_BOOL PVRSRVGetAppHint(IMG_VOID *pvHintState,
*(IMG_UINT32 *)pvReturn = s_appHint.ui32OGLES1SwTexOpMaxUltNum;
bFound = IMG_TRUE;
}
else if (!sceClibStrncasecmp(pszHintName, "OGLES1SwTexOpCleanupDelay", 26))
{
*(IMG_UINT32 *)pvReturn = s_appHint.ui32OGLES1SwTexOpCleanupDelay;
bFound = IMG_TRUE;
}
}

if (!bFound)
Expand Down Expand Up @@ -401,5 +406,67 @@ IMG_EXPORT IMG_BOOL PVRSRVCreateVirtualAppHint(PVRSRV_PSP2_APPHINT *psAppHint)
sceClibMemcpy(&s_appHint, psAppHint, sizeof(PVRSRV_PSP2_APPHINT));
s_appHintCreated = IMG_TRUE;

return IMG_TRUE;
}

/******************************************************************************
Function Name : PVRSRVInitializeAppHint
Inputs : *psAppHint
Outputs :
Returns : Boolean - True if hint struct created, False if error
Description : Sets default values for apphint struct
******************************************************************************/
IMG_EXPORT IMG_BOOL PVRSRVInitializeAppHint(PVRSRV_PSP2_APPHINT *psAppHint)
{
if (!psAppHint)
return IMG_FALSE;

sceClibMemset(psAppHint, 0, sizeof(PVRSRV_PSP2_APPHINT));

sceClibStrncpy(psAppHint->szGLES1, "app0:libGLESv1_CM.suprx", 256);
sceClibStrncpy(psAppHint->szWindowSystem, "app0:libpvrPSP2_WSEGL.suprx", 256);
psAppHint->bDisableMetricsOutput = IMG_TRUE;
psAppHint->bDumpProfileData = IMG_FALSE;
psAppHint->ui32ProfileStartFrame = 0;
psAppHint->ui32ProfileEndFrame = 0;
psAppHint->ui32ExternalZBufferMode = IMG_FALSE;
psAppHint->ui32ExternalZBufferXSize = 0;
psAppHint->ui32ExternalZBufferYSize = 0;
psAppHint->ui32ParamBufferSize = 16 * 1024 * 1024;
psAppHint->ui32PDSFragBufferSize = 50 * 1024;
psAppHint->ui32DriverMemorySize = 4 * 1024 * 1024;

psAppHint->bDisableHWTextureUpload = IMG_FALSE;
psAppHint->bDisableHWTQBufferBlit = IMG_FALSE;
psAppHint->bDisableHWTQMipGen = IMG_TRUE;
psAppHint->bDisableHWTQNormalBlit = IMG_FALSE;
psAppHint->bDisableHWTQTextureUpload = IMG_FALSE;
psAppHint->bDisableStaticPDSPixelSAProgram = IMG_FALSE;
psAppHint->bDisableUSEASMOPT = IMG_FALSE;
psAppHint->bDumpShaders = IMG_FALSE;
psAppHint->bEnableAppTextureDependency = IMG_FALSE;
psAppHint->bEnableMemorySpeedTest = IMG_TRUE;
psAppHint->bEnableStaticMTECopy = IMG_TRUE;
psAppHint->bEnableStaticPDSVertex = IMG_TRUE;
psAppHint->bFBODepthDiscard = IMG_TRUE;
psAppHint->bOptimisedValidation = IMG_TRUE;
psAppHint->ui32DefaultIndexBufferSize = 200 * 1024;
psAppHint->ui32DefaultPDSVertBufferSize = 50 * 1024;
psAppHint->ui32DefaultPregenMTECopyBufferSize = 50 * 1024;
psAppHint->ui32DefaultPregenPDSVertBufferSize = 80 * 1024;
psAppHint->ui32DefaultVDMBufferSize = 20 * 1024;
psAppHint->ui32DefaultVertexBufferSize = 200 * 1024;
psAppHint->ui32FlushBehaviour = 0;
psAppHint->ui32MaxVertexBufferSize = 800 * 1024;
psAppHint->ui32OGLES1UNCTexHeapSize = 4 * 1024;
psAppHint->ui32OGLES1CDRAMTexHeapSize = 256 * 1024;
psAppHint->bOGLES1EnableUNCAutoExtend = IMG_TRUE;
psAppHint->bOGLES1EnableCDRAMAutoExtend = IMG_TRUE;
psAppHint->ui32OGLES1SwTexOpThreadNum = 1;
psAppHint->ui32OGLES1SwTexOpThreadPriority = 70;
psAppHint->ui32OGLES1SwTexOpThreadAffinity = 0;
psAppHint->ui32OGLES1SwTexOpMaxUltNum = 16;
psAppHint->ui32OGLES1SwTexOpCleanupDelay = 10000000;

return IMG_TRUE;
}
Loading

0 comments on commit 8ee0e57

Please sign in to comment.