Commit Graph
2056 Commits
Author SHA1 Message Date
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