Commit graph

62 commits

Author SHA1 Message Date
Unknown W. Brackets
f263d207b3 GPU: Match GE saved context better.
Just in case some game stores it somewhere, but also makes it simpler to
write tests against hardware.
2017-12-26 16:20:11 -08:00
Unknown W. Brackets
9fbcc01afa TexCache: Remove simple 0/1 alpha check.
No practical optimizations have come of this, so it's a waste of time.
Slows down Vulkan too.
2017-11-12 16:17:46 -08:00
Henrik Rydgård
22e65ba80d Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 2017-08-31 01:14:51 +02:00
Henrik Rydgård
2b8e81f01e NEON-optimize bone matrix loads 2017-08-15 14:35:21 +02:00
Henrik Rydgard
e4cb44c243 Merge the texture flags into the dirty flags 2017-01-24 18:12:20 +01:00
Henrik Rydgard
c289a2c7bf Split TextureChanged into two bools, so we can later convert to dirtyflags 2017-01-24 18:12:20 +01:00
Henrik Rydgard
7d60ec73be Move framebufChanged into the dirty flag field 2017-01-24 18:12:20 +01:00
Henrik Rydgard
d9acd27126 Rename GLES files to match the convention the other backends use. 2017-01-23 17:08:58 +01:00
Henrik Rydgard
004c8b0fca Make debug stats more compact. 2016-03-31 09:47:25 +02:00
Henrik Rydgard
e11d0a7e1c Minor GPU interface cleanup 2016-01-06 23:49:02 +01:00
Unknown W. Brackets
529abd7db4 Correct clamped depth range from [0, 65535].
This changes a few things:
 * All backends clamp the depth range and keep it positive.
 * The depth rounding uniform is now properly dirtied.
 * Projection is updated to translate and scale appropriately.
 * Depth rounding is halved on OpenGL to account for [-1, 1] range.

Fixes Phantasy Star Portable 2 without the need for a game-specific hack.
2016-01-03 12:29:43 -08:00
Henrik Rydgard
f4248cb550 Remove a whole lot of flipping special cases 2015-11-02 20:07:30 +01: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
Henrik Rydgard
01a1438dce Improve depth buffering in D3D by computing a depth-flipped proj matrix but only when needed. 2014-09-08 23:10:23 +02:00
Unknown W. Brackets
1f51fe7843 d3d: Avoid rewriting textures, just swizzle.
Luckily A is in the same place and the same width, so we can do this for
all but framebuffers easily.

Technically we could do it in OpenGL as well.

Small (1-2%) performance improvement in FF2.
2014-08-28 01:20:21 -07:00
Henrik Rydgard
1d7642fa48 Remove most mentions of the "_XBOX" define 2014-08-24 14:21:35 +02:00
Unknown W. Brackets
030b562eb9 Support render-to-offset within a framebuffer.
Fixes #6324.
2014-06-14 17:08:41 -07:00
Unknown W. Brackets
1d9f7b04fc Implement in-shader blending on gles2 / gl2.
I'm sure it'll be slow, though...
2014-06-13 23:42:59 -07:00
Unknown W. Brackets
acab898be0 Keep track of x/y offset for render-to-tex.
Fixes intro in Valkyrie Profile now that we're wrapping correctly.
2014-06-08 14:27:05 -07:00
Unknown W. Brackets
cc841bbe4c Apply tex wrap/clamp in shader for render-to-tex.
Fixes graphical artifacts in Wild Arms XF (which depends on how you get
there, because it's based on the size of the framebuffer.)
2014-06-07 13:13:58 -07:00
Unknown W. Brackets
f660c04983 Optimize double alpha blending for 1/0 textures.
If the blend is 2*a / 1-a, and the alpha is either 1 or 0, we can still
use color doubling instead.  Fixes #3379 (Persona 2.)
2014-05-11 14:17:19 -07:00
Unknown W. Brackets
748ce6a753 Fix typo breaking older savestates. 2014-04-21 22:40:50 -07:00
Henrik Rydgard
16f4622ac7 Remove cached light variables to reduce work when parsing DLs.
Also removes some duplication between GL and the inactive D3D code.
2014-04-21 12:51:19 +02:00
Unknown W. Brackets
58038c05fc Simplify gstate_c savestate code a bit.
So it's not as awkward to modify.
2014-04-13 15:16:51 -07:00
Unknown W. Brackets
4c1c694d4b Use flags to avoid hashing textures when unchanged.
If only parameters change (like wrapping or clut, etc.) we don't need to
rehash the data - we know it hasn't changed.

Should reduce the distance between lazy texture hashing on and off.
2014-04-13 14:22:39 -07:00
Ced2911
2ab34b5704 [gpu] Endian fix 2014-01-26 14:29:30 -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
Henrik Rydgard
8c562a615f Bone matrix loading speedup. Bit of a hack but seems reliable enough. 2013-11-14 14:02:31 +01:00
Henrik Rydgard
7e67476b00 Simple unoptimized software skinning.
Does not take advantage of the possible reduction in state changes yet.
2013-11-13 18:10:57 +01:00
Sacha
aad70d8912 Symbian: Support software GPU. It seems to compile properly now. May allow Nokia 500 to run PPSSPP (albeit very slowly). 2013-11-12 16:20:52 +10:00
Unknown W. Brackets
3787471791 Add some initial methods to GPUDebugInterface. 2013-09-22 10:22:33 -07:00
Unknown W. Brackets
4078dcd917 Support save/restore of context on list run/finish. 2013-09-20 09:51:44 -07:00
Unknown W. Brackets
bb2e51160b Don't default lighting on / matrices filled.
Seems like everything starts out at 0.
2013-09-20 00:34:18 -07:00
Unknown W. Brackets
7906de26f7 Try to match especially the size of ge contexts.
But also some of the actual data, most of it matches like this.
2013-09-20 00:33:32 -07:00
Ced2911
5c4ed26442 Make the dx9 renderer working in headless mode 2013-09-16 09:42:30 +02:00
Unknown W. Brackets
5617f07462 Fix dx9 so it builds on Windows (DOES NOT WORK.) 2013-09-15 23:22:10 -07:00
Unknown W. Brackets
f55b6a0dbc Put the DirectX9 stuff into a namespace.
This makes it almost build on Windows, but not quite.  Some required files
excluded from build, still.
2013-09-15 08:56:12 -07:00
Ced2911
d2d48fe262 fix 2013-09-12 10:56:20 +02:00
Ced2911
72cb7739b6 update gpu
Conflicts:
	GPU/GPUState.cpp
2013-09-12 09:43:57 +02:00
Unknown W. Brackets
bbf714c361 Provide for GPU init failure, kill a warning. 2013-09-07 22:30:30 -07:00
Henrik Rydgard
d9cd0d1fe9 Been meaning to rename DisplayListInterpreter->GLES_GPU forever 2013-08-20 22:34:47 +02:00
Sacha
8908ec22a8 Small changes. Symbian buildfix. 2013-08-18 18:17:23 +10:00
Sacha
e7cf9361ff Symbian can't compile Software GPU (internal compiler error). Probably can't run it well either. So, disabled. 2013-08-18 18:07:15 +10:00
Tony Wasserka
19c6fedb79 Copy NullGpu to SoftGpu. 2013-08-16 23:48:52 +02:00
Unknown W. Brackets
e7c7c5b3db Add a setting to launch a separate CPU thread. 2013-08-09 22:41:30 -07:00
Unknown W. Brackets
f7a39d1b12 Move ReapplyGfxState() to GPUCommon.
This way it can be overridden, and simplifies some other things.
2013-08-04 15:15:50 -07:00
Unknown W. Brackets
64c42ffaf2 Fix some warnings generated by clang. 2013-02-24 10:23:31 -08:00
Henrik Rydgard
0769a1d3e8 I think I finally understood how origin-relative GE jumps are supposed to work. 2013-02-02 13:38:34 +01:00
Henrik Rydgard
366583d34f Align some vertex arrays to page size. It's said to possibly be beneficial. 2013-01-29 00:48:13 +01:00
Florent Castelli
6eec4f5d7f Move display list management to common GPU class 2012-12-29 03:11:35 +01:00