Commit Graph

278 Commits

Author SHA1 Message Date
Henrik Rydgard 7e46a153c0 Centralize DoBlockTransfer between the GPUs.
Required adding a pointer to the framebuffer manager and texture cache in
GPUCommon, which took a little bit of refactoring.
2016-12-21 18:07:17 +01:00
Henrik Rydgard f4b1152b00 Pick some safe changes from the android gradle branch (including windows CMake fixes) 2016-12-05 16:52:03 +01:00
Florent Castelli 70593d1004 android: Change preprocessor define to standard __ANDROID__
ANDROID is only standard to the old Makefile buildsystem, not the platform.
2016-10-12 11:14:09 +02:00
Unknown W. Brackets e95b2cf0d5 Reduce some repetitive code. 2016-04-10 13:07:08 -07:00
Henrik Rydgard 35b6c7341b Fix a bunch of memory leaks, after enabling file+line-number memory leak tracking for the MS Debug CRT.
Few of these were serious, most were on-exit, but good to have a cleaner memory report after running.
2016-02-10 15:36:10 +01:00
Henrik Rydgard 94c91e199a Minor GPU interface change needed for a WIP backend 2016-01-06 23:53:21 +01:00
Henrik Rydgård 25d2f4da9c LLVM warning fixes 2015-10-14 22:18:43 +02:00
Henrik Rydgard 7f4e473e8c Add new shader viewing tool 2015-10-14 18:10:21 +02:00
Henrik Rydgard 72ae497350 Remove glstate usage except in the GPU implementation. Prepare for moving it into PPSSPP. 2015-09-06 12:42:15 +02:00
Henrik Rydgard b22850720d Move the CheckGPUFeatures call to the Resize check 2015-09-06 00:13:46 +02:00
Henrik Rydgard f524049277 Move more GPU feature checks upfront. Re-check when exiting settings menu. 2015-09-05 21:23:58 +02:00
Henrik Rydgard 2430c283a5 More GPU cleaning, removing uses of GPUState.h where not needed.
Want to get rid of direct accesses to GPUState in modules that may be reused in
my future next-gen backends, that will reformat display lists into command lists that will
then be optimized and executed, out of sync with the real GPUState.

Candidate modules that may be reused in full are Framebuffer and Depal, possibly TextureCache to some degree.
2015-07-29 12:37:49 +02:00
Unknown W. Brackets 6b26e1a591 Read pending vertex data before exiting gpu loop.
Fixes save pictures in Crimson Gem Saga.
2015-03-14 18:11:24 -07:00
Unknown W. Brackets 795088001c Avoid passing a GPUstate by value.
Only used by Qt GE debugger thing anyway.
2015-01-17 18:21:04 -08:00
Unknown W. Brackets 6d104edb5d Make sure not to leak any enabled vertex arrays.
When returning to EmuScreen, we need to reset any enabled vertex arrays or
we could crash in EmuScreen.  Also, when starting a frame / dirting the
shader, make sure also to toggle the vertex arrays.
2014-06-22 21:42:29 -07:00
Unknown W. Brackets 03f86f364f Skip debug stepping time in list/func time.
Just makes the debug stats actually useful while stepping.  A bit of
overengineering, but it makes it easy to go frame-by-frame looking for
perf issues.
2014-06-14 08:42:18 -07:00
Unknown W. Brackets 256e98b841 Add the common funcs to the direct exec calls. 2014-04-17 01:18:52 -07:00
Unknown W. Brackets 82df1b1fa8 Simplify UpdatePC() a bit more. 2014-04-05 12:04:10 -07:00
Unknown W. Brackets a4327702f1 Reduce some includes under GPU/. 2014-03-29 16:51:38 -07:00
Unknown W. Brackets 0a880b09ad Allow fast bone mtx loads w/o software skinning. 2014-03-02 18:12:40 -08:00
Unknown W. Brackets d35717f5a8 Also report the vertex decoder jit to verysleepy.
Can use the same methods to support other platforms.
2013-11-30 19:20:22 -08:00
Unknown W. Brackets 435115441d Reinitialize the GE on sceKernelLoadExec().
Mostly, reset the lists and draw completion, etc.

May be required for Capcom Classic Collection Reloaded to work.
2013-11-28 15:35:12 -08:00
Unknown W. Brackets 597b2fe597 Align the GPU so the tick count can be aligned.
It's atomic for free on 64 bit, but only if it's aligned.
2013-10-26 18:29:44 -07:00
Henrik Rydgard a88ab80477 Only clear the shader cache when toggling "Disable alpha test" 2013-10-22 14:34:16 +02:00
Unknown W. Brackets ff0e9cf32d Make it possible to flip flags in the ge debugger. 2013-10-06 22:17:56 -07:00
Unknown W. Brackets 3787471791 Add some initial methods to GPUDebugInterface. 2013-09-22 10:22:33 -07:00
Unknown W. Brackets eabd8b5302 Add GPU debugging hooks to Host, not yet in use. 2013-09-22 08:14:55 -07:00
Unknown W. Brackets 881cefbc83 A paused list will allow a context save.
Just not stall, drawing, etc.
2013-09-21 21:01:41 -07:00
Unknown W. Brackets e7bd716c71 Allocate ge list ids using round robin.
Even if you enqueue and then dequeue 0, you don't get it again right away.
2013-09-21 15:03:29 -07:00
Unknown W. Brackets 863eb83e4c Add support for sceGeGetStack() for debugging. 2013-09-21 10:04:31 -07:00
Unknown W. Brackets 4078dcd917 Support save/restore of context on list run/finish. 2013-09-20 09:51:44 -07:00
Henrik Rydgard 664d74a9b7 Another frameskipping attempt. Now: 0=no frameskip, 1=auto frameskipt, 2-9=fixed frameskip.
There is still some flicker remaining in non-buffered rendering that I can't seem to get rid off.
2013-08-16 01:00:26 +02:00
Unknown W. Brackets f53426db9d Obviously no reason for this to be virtual. 2013-08-13 21:42:48 -07:00
Unknown W. Brackets 8a59463351 Disabling warnings you don't understand = bad. 2013-08-13 01:01:40 -07:00
Unknown W. Brackets 49ab98c7fd Use atomic operations on Android + warning fixes. 2013-08-12 08:51:49 -07:00
Unknown W. Brackets 24203b1a5d Improve performance on x86 as well using movq. 2013-08-12 08:40:54 -07:00
Unknown W. Brackets 5c96782f29 Improve performance on x64 at least.
Maybe can just ignore for 32?  I'm not sure how bad it would be if it read
in between...
2013-08-12 02:42:30 -07:00
Unknown W. Brackets cf7c718706 Use a timer to keep gpu/cpu in sync periodically.
Fixes Diva Extend demo, at least, losing FPS.
2013-08-11 13:41:42 -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
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 cfb1d02182 Oops, left these here. 2013-08-10 17:18:31 -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 8ba8b3ddd2 gcc warning fix 2013-08-10 18:39:28 +02:00
Unknown W. Brackets 1b838c4403 Move ThreadEventQueue to its own file. 2013-08-10 09:08:31 -07: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 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 8c69020fa8 Use separate condition vars/locks for GPU sync. 2013-08-09 22:57:51 -07:00
Unknown W. Brackets 3819886e2e Add a way to synchronize with the GPU thread. 2013-08-09 22:41:32 -07:00