Skip to content

Commit

Permalink
Added PSP2-specific TA kick props to apphint
Browse files Browse the repository at this point in the history
  • Loading branch information
GrapheneCt committed Aug 28, 2021
1 parent 7528e0f commit ed9d00c
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 5 deletions.
8 changes: 7 additions & 1 deletion eurasiacon/opengles1/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -854,7 +854,7 @@ IMG_INTERNAL IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMo
ui32Default = 0;
PVRSRVGetAppHint(pvHintState, "SwTexOpThreadAffinity", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32SwTexOpThreadAffinity);

ui32Default = 16;
ui32Default = 256;
PVRSRVGetAppHint(pvHintState, "SwTexOpMaxUltNum", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32SwTexOpMaxUltNum);

ui32Default = 10000000;
Expand All @@ -863,6 +863,12 @@ IMG_INTERNAL IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMo
ui32Default = 1;
PVRSRVGetAppHint(pvHintState, "DisableAsyncTextureOp", IMG_UINT_TYPE, &ui32Default, &psAppHints->bDisableAsyncTextureOp);

ui32Default = 1000;
PVRSRVGetAppHint(pvHintState, "PrimitiveSplitThreshold", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32PrimitiveSplitThreshold);

ui32Default = 0;
PVRSRVGetAppHint(pvHintState, "MaxDrawCallsPerCore", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32MaxDrawCallsPerCore);

PVRSRVFreeAppHintState(IMG_OPENGLES1, pvHintState);

return IMG_TRUE;
Expand Down
2 changes: 2 additions & 0 deletions eurasiacon/opengles1/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ typedef struct GLESAppHintsRec
IMG_UINT32 ui32SwTexOpMaxUltNum;
IMG_UINT32 ui32SwTexOpCleanupDelay;
IMG_BOOL bDisableAsyncTextureOp;
IMG_UINT32 ui32PrimitiveSplitThreshold;
IMG_UINT32 ui32MaxDrawCallsPerCore;
} GLESAppHints;

IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMode *psMode);
Expand Down
3 changes: 2 additions & 1 deletion eurasiacon/opengles1/sgxif.c
Original file line number Diff line number Diff line change
Expand Up @@ -1917,7 +1917,8 @@ static IMG_EGLERROR DoKickTA(GLES1Context *gc, EGLRenderSurface *psRenderSurface
psKickTA->sKickTACommon.ui32SceneHeight = psRenderSurface->ui32Height;
psKickTA->sKickTACommon.ui32ValidRegionXMax = psRenderSurface->ui32Width - 1;
psKickTA->sKickTACommon.ui32ValidRegionYMax = psRenderSurface->ui32Height - 1;
psKickTA->sKickTACommon.ui16PrimitiveSplitThreshold = 1000;
psKickTA->sKickTACommon.ui16MaxDrawCallsPerCore = gc->sAppHints.ui32MaxDrawCallsPerCore;
psKickTA->sKickTACommon.ui16PrimitiveSplitThreshold = gc->sAppHints.ui32PrimitiveSplitThreshold;

while (gc->ui32AsyncTexOpNum)
{
Expand Down
8 changes: 7 additions & 1 deletion eurasiacon/opengles2/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -723,7 +723,7 @@ IMG_INTERNAL IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMo
ui32Default = 0;
PVRSRVGetAppHint(pvHintState, "SwTexOpThreadAffinity", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32SwTexOpThreadAffinity);

ui32Default = 16;
ui32Default = 256;
PVRSRVGetAppHint(pvHintState, "SwTexOpMaxUltNum", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32SwTexOpMaxUltNum);

ui32Default = 10000000;
Expand All @@ -732,6 +732,12 @@ IMG_INTERNAL IMG_BOOL GetApplicationHints(GLESAppHints *psAppHints, EGLcontextMo
ui32Default = 1;
PVRSRVGetAppHint(pvHintState, "DisableAsyncTextureOp", IMG_UINT_TYPE, &ui32Default, &psAppHints->bDisableAsyncTextureOp);

ui32Default = 1000;
PVRSRVGetAppHint(pvHintState, "PrimitiveSplitThreshold", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32PrimitiveSplitThreshold);

ui32Default = 0;
PVRSRVGetAppHint(pvHintState, "MaxDrawCallsPerCore", IMG_UINT_TYPE, &ui32Default, &psAppHints->ui32MaxDrawCallsPerCore);

PVRSRVFreeAppHintState(IMG_OPENGLES2, pvHintState);

return IMG_TRUE;
Expand Down
2 changes: 2 additions & 0 deletions eurasiacon/opengles2/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ typedef struct GLESAppHintsRec
IMG_UINT32 ui32SwTexOpMaxUltNum;
IMG_UINT32 ui32SwTexOpCleanupDelay;
IMG_BOOL bDisableAsyncTextureOp;
IMG_UINT32 ui32PrimitiveSplitThreshold;
IMG_UINT32 ui32MaxDrawCallsPerCore;
} GLESAppHints;


Expand Down
3 changes: 2 additions & 1 deletion eurasiacon/opengles2/sgxif.c
Original file line number Diff line number Diff line change
Expand Up @@ -2036,7 +2036,8 @@ static IMG_EGLERROR DoKickTA(GLES2Context *gc, EGLRenderSurface *psRenderSurface
psKickTA->sKickTACommon.ui32SceneHeight = psRenderSurface->ui32Height;
psKickTA->sKickTACommon.ui32ValidRegionXMax = psRenderSurface->ui32Width - 1;
psKickTA->sKickTACommon.ui32ValidRegionYMax = psRenderSurface->ui32Height - 1;
psKickTA->sKickTACommon.ui16PrimitiveSplitThreshold = 1000;
psKickTA->sKickTACommon.ui16MaxDrawCallsPerCore = gc->sAppHints.ui32MaxDrawCallsPerCore;
psKickTA->sKickTACommon.ui16PrimitiveSplitThreshold = gc->sAppHints.ui32PrimitiveSplitThreshold;

while (gc->ui32AsyncTexOpNum)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,17 @@ IMG_EXPORT IMG_BOOL PVRSRVGetAppHint(IMG_VOID *pvHintState,
}
else if (!sceClibStrncasecmp(pszHintName, "DisableAsyncTextureOp", 22))
{
*(IMG_UINT32 *)pvReturn = s_appHint.bDisableAsyncTextureOp;
*(IMG_UINT32 *)pvReturn = s_appHint.bDisableAsyncTextureOp;
bFound = IMG_TRUE;
}
else if (!sceClibStrncasecmp(pszHintName, "MaxDrawCallsPerCore", 20))
{
*(IMG_UINT32 *)pvReturn = s_appHint.ui32MaxDrawCallsPerCore;
bFound = IMG_TRUE;
}
else if (!sceClibStrncasecmp(pszHintName, "PrimitiveSplitThreshold", 24))
{
*(IMG_UINT32 *)pvReturn = s_appHint.ui32PrimitiveSplitThreshold;
bFound = IMG_TRUE;
}
}
Expand Down Expand Up @@ -544,6 +554,8 @@ IMG_EXPORT IMG_BOOL PVRSRVInitializeAppHint(PVRSRV_PSP2_APPHINT *psAppHint)
psAppHint->ui32SwTexOpMaxUltNum = 256;
psAppHint->ui32SwTexOpCleanupDelay = 10000000;
psAppHint->bDisableAsyncTextureOp = IMG_FALSE;
psAppHint->ui32PrimitiveSplitThreshold = 1000;
psAppHint->ui32MaxDrawCallsPerCore = 0;

psAppHint->ui32AdjustShaderPrecision = 0;
psAppHint->bDumpCompilerLogFiles = 0;
Expand Down
Binary file modified gpu_es4_ext/libSceGpuEs4UserForVsh_stub.a
Binary file not shown.
Binary file modified gpu_es4_ext/libSceGpuEs4User_stub.a
Binary file not shown.
2 changes: 2 additions & 0 deletions include/gpu_es4/eurasia/include4/services.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ extern "C" {
IMG_UINT32 ui32SwTexOpThreadAffinity;
IMG_UINT32 ui32SwTexOpMaxUltNum;
IMG_UINT32 ui32SwTexOpCleanupDelay;
IMG_UINT32 ui32PrimitiveSplitThreshold;
IMG_UINT32 ui32MaxDrawCallsPerCore;

/* OGLES2 hints */

Expand Down
2 changes: 2 additions & 0 deletions include/gpu_es4/psp2_pvr_hint.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ typedef struct _PVRSRV_PSP2_APPHINT_
IMG_UINT32 ui32SwTexOpThreadAffinity;
IMG_UINT32 ui32SwTexOpMaxUltNum;
IMG_UINT32 ui32SwTexOpCleanupDelay;
IMG_UINT32 ui32PrimitiveSplitThreshold;
IMG_UINT32 ui32MaxDrawCallsPerCore;

/* OGLES2 hints */

Expand Down

0 comments on commit ed9d00c

Please sign in to comment.