Henrik Rydgard
9109882c04
More microoptimization
2013-08-11 22:12:14 +02:00
Henrik Rydgard
8e2c485373
Some microoptimization
2013-08-11 22:12:14 +02:00
Henrik Rydgård
12275d0e3a
Merge pull request #3125 from raven02/patch-15
...
Some games like FF Type-0 inits viewport as 0x0
2013-08-11 13:01:11 -07:00
Unknown W. Brackets
e6b42768fe
Add a class to manage IO on a separate thread.
...
Also separate the logic for exiting the loop based on coreState. IO and
audio won't necessarily be tied to the frame.
2013-08-11 11:46:55 -07:00
raven02
1eaada15df
Reference and modified code from @arnastia
2013-08-12 02:30:17 +08:00
raven02
c2a86d647f
Fix wrong size generated of FBO for some games which uses it as render-to-texture
2013-08-12 02:20:55 +08:00
raven02
6c889e556b
Some games like FF Type-0 inits viewport as 0x0
2013-08-12 02:15:42 +08:00
Unknown W. Brackets
e0f699fd5f
Use a possibly harmless hack to prevent hangs.
...
Not sure where the problem is, but this fixes it pretty consistently for
me... seems like lists are somehow not being processed after becoming
processable?
2013-08-10 20:03:43 -07:00
Unknown W. Brackets
639ab8306b
SyncThread before deciding if the fbo is dirty.
...
Fixes fps drops in yet other games with multithreading enabled.
2013-08-10 18:45:07 -07:00
Unknown W. Brackets
26c072df51
Don't wait directly from GPUCommon, do it in sceGe.
...
Makes debugging a bit easier.
2013-08-10 18:24:40 -07:00
Unknown W. Brackets
cfb1d02182
Oops, left these here.
2013-08-10 17:18:31 -07:00
Unknown W. Brackets
55c07bdc73
Avoid a possible thread sync issue.
...
Could be that it's about to wake listsync, does, and then we wait.
2013-08-10 17:18:31 -07:00
Unknown W. Brackets
abc396cbe1
Sync the GPU thread on list/draw sync.
...
Otherwise, the CPU gets ahead (inside the frame) and games get confused.
I don't think there's any good workaround to avoid this.
2013-08-10 15:16:49 -07:00
Henrik Rydgård
85e17f03cc
Merge pull request #3118 from unknownbrackets/io-async
...
Prep work for pspFileSystem and two small fixes
2013-08-10 14:32:59 -07:00
Henrik Rydgard
a517b8d53f
Fix #3117 (by reverting part of a previous change), plus a minor change that might speed GT up.
2013-08-10 23:25:55 +02:00
Henrik Rydgard
8ba8b3ddd2
gcc warning fix
2013-08-10 18:39:28 +02:00
Henrik Rydgard
4d4b2990ec
GPU ShaderManager: Naming convention, inline a function
2013-08-10 18:39:27 +02:00
Unknown W. Brackets
1b838c4403
Move ThreadEventQueue to its own file.
2013-08-10 09:08:31 -07:00
raven02
6f994ec05f
Fix texture broken in God of War
2013-08-10 21:56:52 +08:00
Unknown W. Brackets
450e4c7fea
Factor out event queue logic to a template mixin.
2013-08-10 03:33:09 -07:00
Unknown W. Brackets
a80a7690c8
Fix SyncThread() not syncing during last event.
2013-08-09 23:18:37 -07:00
Unknown W. Brackets
5e363bcbd2
Don't allow gpu->Flush() to be called publicly.
2013-08-09 22:57:54 -07:00
Unknown W. Brackets
e82bae3708
Simplify easy_guard to avoid coding errors.
2013-08-09 22:57:53 -07:00
Unknown W. Brackets
1226c3dbd9
Try to prevent a deadlock if CPU doesn't NEXTFRAME.
2013-08-09 22:57:53 -07:00
Unknown W. Brackets
e71cf2ec7e
Don't queue Flush() etc. while on GPU thread.
...
Oops, that makes it not actually flush properly of course.
Also made a simpler guard wrapper to avoid extra braces in too many
places. Reduced contention areas slightly.
2013-08-09 22:57:52 -07:00
Unknown W. Brackets
68fb78e203
Be more careful with the stall address.
...
In case it's moved while running the list.
2013-08-09 22:57:52 -07:00
Unknown W. Brackets
8c69020fa8
Use separate condition vars/locks for GPU sync.
2013-08-09 22:57:51 -07:00
Unknown W. Brackets
b0e6967697
Rename UseCPUThread to SeparateCPUThread.
2013-08-09 22:41:33 -07:00
Unknown W. Brackets
a56cac1eb3
Bail when CPU thread disabled to ensure good perf.
2013-08-09 22:41:32 -07:00
Unknown W. Brackets
3819886e2e
Add a way to synchronize with the GPU thread.
2013-08-09 22:41:32 -07:00
Unknown W. Brackets
02e301e5fe
Add a simple message event system to the GE.
...
With this, the CPU thread feature now mostly works.
2013-08-09 22:41:31 -07:00
Unknown W. Brackets
52ca93aab2
Add mutex locks around list management.
...
This way we can safely execute lists on a separate thread.
2013-08-09 22:41:31 -07:00
Unknown W. Brackets
e7c7c5b3db
Add a setting to launch a separate CPU thread.
2013-08-09 22:41:30 -07:00
The Dax
01e9111ac5
Remove Stream VBO option.
2013-08-09 05:18:24 -04:00
Henrik Rydgård
f01279f2cf
Merge pull request #3082 from raven02/patch-12
...
Fix black/missing textures in few games
2013-08-09 00:58:38 -07:00
Henrik Rydgard
bc00a7e302
Process frame timing on frame boundaries instead of flips. Frameskipping works better in many games.
2013-08-07 23:32:28 +02:00
Henrik Rydgard
51ffdfa132
Rename gpuStats.numFrames to numVBlanks. Switch to using numFlips for things like cache expirations.
2013-08-07 22:34:00 +02:00
raven02
ba4d236d18
Fix black/missing textures in few games
2013-08-07 22:47:41 +08:00
Henrik Rydgård
41f90303b2
Merge pull request #3069 from raven02/patch-10
...
Logic Ops: code cleanup
2013-08-07 02:08:02 -07:00
Henrik Rydgård
b8978e49d2
Merge pull request #3075 from unknownbrackets/gpu-thread
...
Prep work for GE and CPU on separate threads
2013-08-07 01:00:26 -07:00
Henrik Rydgård
75b3d78694
Merge pull request #3029 from unknownbrackets/render-fb
...
Use a null texture for incorrect render-to-texture + delete better
2013-08-07 00:34:38 -07:00
Unknown W. Brackets
00fc5ec40e
Enable interrupts as a property of the list.
...
This way there's no behavior change when enqueue is async.
2013-08-07 00:32:30 -07:00
Unknown W. Brackets
0dc6bab9ff
Shouldn't be necessary to flush on drawsync.
2013-08-07 00:32:27 -07:00
Henrik Rydgard
773115bb6d
GPU: tiny optimization and log fix
2013-08-06 19:08:38 +02:00
raven02
6798762eaa
May fix Vsync broken previously
2013-08-06 23:08:57 +08:00
raven02
6465402283
Logic Ops: code cleanup
2013-08-06 22:14:30 +08:00
Henrik Rydgard
2f1e6f81bb
Android buildfix
2013-08-06 11:24:48 +02:00
raven02
ecf43c7ea9
Fix lookup table
2013-08-06 16:46:35 +08:00
raven02
1fb77f5fec
Use lookup table
2013-08-06 16:30:58 +08:00
raven02
6992eba90a
Add remaining opcodes
2013-08-06 16:25:33 +08:00