mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Use the FLAG_EXECUTEONCHANGE flag.
Improves fps by 1-3% in some games, seems to be a win after all.
This commit is contained in:
parent
22a80fb7be
commit
e780a645cb
1 changed files with 8 additions and 4 deletions
|
@ -46,7 +46,7 @@ enum {
|
|||
FLAG_FLUSHBEFORE = 1,
|
||||
FLAG_FLUSHBEFOREONCHANGE = 2,
|
||||
FLAG_EXECUTE = 4, // needs to actually be executed. unused for now.
|
||||
FLAG_EXECUTEONCHANGE = 8, // unused for now. not sure if checking for this will be more expensive than doing it.
|
||||
FLAG_EXECUTEONCHANGE = 8,
|
||||
FLAG_ANY_EXECUTE = 4 | 8,
|
||||
FLAG_READS_PC = 16,
|
||||
FLAG_WRITES_PC = 32,
|
||||
|
@ -627,7 +627,7 @@ void GLES_GPU::FastRunLoop(DisplayList &list) {
|
|||
transformDraw_.Flush();
|
||||
}
|
||||
gstate.cmdmem[cmd] = op; // TODO: no need to write if diff==0...
|
||||
if (cmdFlags & FLAG_ANY_EXECUTE) { // (cmdFlags & FLAG_EXECUTE) || (diff && (cmdFlags & FLAG_EXECUTEONCHANGE))) {
|
||||
if ((cmdFlags & FLAG_EXECUTE) || (diff && (cmdFlags & FLAG_EXECUTEONCHANGE))) {
|
||||
ExecuteOpInternal(op, diff);
|
||||
}
|
||||
list.pc += 4;
|
||||
|
@ -658,7 +658,7 @@ void GLES_GPU::ProcessEvent(GPUEvent ev) {
|
|||
}
|
||||
|
||||
inline void GLES_GPU::CheckFlushOp(int cmd, u32 diff) {
|
||||
u8 cmdFlags = commandFlags_[cmd];
|
||||
const u8 cmdFlags = commandFlags_[cmd];
|
||||
if ((cmdFlags & FLAG_FLUSHBEFORE) || (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE))) {
|
||||
if (dumpThisFrame_) {
|
||||
NOTICE_LOG(G3D, "================ FLUSH ================");
|
||||
|
@ -672,7 +672,11 @@ void GLES_GPU::PreExecuteOp(u32 op, u32 diff) {
|
|||
}
|
||||
|
||||
void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
|
||||
return ExecuteOpInternal(op, diff);
|
||||
const u8 cmd = op >> 24;
|
||||
const u8 cmdFlags = commandFlags_[cmd];
|
||||
if ((cmdFlags & FLAG_EXECUTE) || (diff && (cmdFlags & FLAG_EXECUTEONCHANGE))) {
|
||||
ExecuteOpInternal(op, diff);
|
||||
}
|
||||
}
|
||||
|
||||
void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||
|
|
Loading…
Add table
Reference in a new issue