Commit graph

197 commits

Author SHA1 Message Date
Henrik Rydgard
e8396b10f9 D3D11: Implement screenshots. 2017-02-18 00:43:02 +01:00
Henrik Rydgard
0e8aeaea3a D3D11: Implement basic framebuffer readback.
Also make debug interfaces more consistent.
2017-02-18 00:07:49 +01:00
xebra
ef536ae54d Move wasted checks in FastRunLoop() to Execute_TexLevel() 2017-02-15 01:02:50 +09:00
Henrik Rydgard
55aa879216 A lot of buildfixes 2017-02-06 16:16:43 +01:00
Henrik Rydgard
0d1d6f98e4 Pass in the DrawContext to all backends 2017-01-30 20:26:47 +01:00
Henrik Rydgard
182d87cc15 Minor cleanup in GPU dispatch tables 2017-01-28 12:11:56 +01:00
Henrik Rydgard
ab6bc4cb16 Restores a lost optimization from uv prescale - avoiding flushing. Should fix #9219.
Also #ifdef away some invalid-address checks in hot paths in the GPU.
2017-01-28 11:39:34 +01:00
Henrik Rydgard
52a4467a46 Disable the GPU mutex in single core mode. On some platforms it's expensive enough to show up in profiles even though it's useless. 2017-01-27 10:17:44 +01:00
Henrik Rydgard
c70265d7f2 Use table-driven dirtying instead of callbacks in GPU_GLES 2017-01-24 18:12:20 +01:00
Henrik Rydgard
ae37df0a8c Further centralization of EstimatePerVertexCost, now moved to GPUCommon 2017-01-23 21:11:39 +01:00
Henrik Rydgard
daf02f1de6 Centralize the matrix load functions, no need to duplicate them for each backend. 2017-01-23 21:11:39 +01:00
Henrik Rydgard
3c221a7ebd Extract the dirty flag from the shader managers so code that dirties uniform flags can be shared. 2017-01-23 21:11:39 +01:00
Henrik Rydgard
bd4436c6eb Centralize EstimatePerVertexCost and Execute_BlockTransferStart 2017-01-23 17:22:17 +01:00
Henrik Rydgard
ab9c1d4dc0 Centralize the spline/bezier/bbox execute functions into GPUCommon 2017-01-21 20:43:05 +01:00
Henrik Rydgard
dc5c0c0d2d Centralize ProcessEvent 2016-12-21 20:02:05 +01:00
Henrik Rydgard
7634ff7f09 Centralize a few more functions, fix DX9 2016-12-21 18:51:19 +01:00
Henrik Rydgard
98ebf9ed6f Centralize PerformStencil* and Invalidate* functions 2016-12-21 18:33:08 +01:00
Henrik Rydgard
866d4a645f Centralize "PerformMemory*" functions 2016-12-21 18:26:06 +01:00
Henrik Rydgard
e15cba0e1b Centralize "Resized()" 2016-12-21 18:13:58 +01:00
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