Commit graph

178 commits

Author SHA1 Message Date
Unknown W. Brackets
1433b98c46 Clean up the framebuffer force downloads. 2014-05-31 10:03:03 -07:00
Henrik Rydgard
634add3a46 Depalettize works at other resolutions than 1x. For some strange reason though if you change resolution in game it breaks. 2014-05-27 22:09:26 +02:00
Henrik Rydgard
8fba7fa98e Initial work on depalettization. 2014-05-27 22:07:24 +02:00
Henrik Rydgård
8d84c912eb Merge pull request #6070 from unknownbrackets/gpu-blend
Apply unsupported blending modes in the shader
2014-05-27 17:45:33 +02:00
Unknown W. Brackets
8dcc09c9e1 Use a separate func for gpu memset(). 2014-05-27 07:50:01 -07:00
Unknown W. Brackets
4b978ed6f9 Apply unsupported blending modes in the shader.
This handles unsupported fixed color combinations, alpha doubling, etc.
Where possible, tries to avoid it - it means using a blit (without the
framebuffer fetch extension), which can slow things down a lot with tons
of drawcalls.
2014-05-27 01:45:17 -07:00
Unknown W. Brackets
e4dc702d68 Schedule the FBO blit during multithreading.
This was it's properly ordered with draws, and it runs on the right GL
context.
2014-05-25 22:08:15 -07:00
Unknown W. Brackets
9894b38a1d Support memcpy uploads to fbos.
Makes Vempire look right (has never worked before in any rendering mode.)
2014-05-25 22:01:08 -07:00
Unknown W. Brackets
9195019872 Allow memcpy gpu downloads.
Fixes FF4 battle transition effect, Trails in the Sky menu, etc.
2014-05-25 21:49:16 -07:00
Unknown W. Brackets
8275f613ce UpdateMemory() now returns whether to skip the cpy.
This way it can do it itself as necessary in the right order.
2014-05-25 21:48:41 -07:00
Unknown W. Brackets
976968c707 Track more kinds of memcpy operations on fbos. 2014-05-25 17:08:55 -07:00
Unknown W. Brackets
fd4ba0093c Skip some code if things are outside framebuffers.
Small optimization.
2014-05-25 17:08:55 -07:00
Unknown W. Brackets
4dbb4328ae Download before, upload after. Fix save pictures.
Otherwise, it only works if it does it every frame, and then it's a frame
behind.  Also fixes Tales of Phantasia X's fades and etc.
2014-05-25 17:08:55 -07:00
Henrik Rydgard
5a60ccc9f0 BlockTransfer: Move framebuffer handling into Framebuffer.cpp 2014-05-08 15:16:10 +02:00
Henrik Rydgard
8ef377c427 Some preparations towards framebuffer management improvements 2014-05-08 15:16:10 +02:00
Henrik Rydgård
403f685701 Warn fix 2014-05-06 09:26:52 +02:00
Unknown W. Brackets
4cc4cfed4c Note that VADDR/IADDR are not updated on PRIM.
Even though they do increase the addresses, they don't affect the CMD
registers.

Also, make sure not to use a crazy bytesRead for a zero-sized prim.
2014-05-04 18:24:49 -07:00
raven02
e61a151942 Add Vertex texture/color GE commands 2014-04-26 23:53:17 +08:00
Unknown W. Brackets
424d93e9a9 Separate out the fog color/coef executes. 2014-04-21 22:56:54 -07:00
Unknown W. Brackets
38b92e48ec Fix uniform dirtying on colortest mask. 2014-04-21 22:54:17 -07:00
Unknown W. Brackets
1bbd3d04af Move the light params to separate funcs. 2014-04-21 22:47:44 -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
raven02
abc5c86339 Split out texture level 2014-04-19 06:45:17 +08:00
Henrik Rydgard
247b171eb0 Temporarily (?) revert ffdba45b4b because of massive perf drop in GT, working around #5900
Not sure what to do about the Chinese Tactics Ogre though...
2014-04-18 15:02:45 +02:00
Unknown W. Brackets
1e61fd7a02 Split out the clutformat cmd as well. 2014-04-17 22:57:02 -07:00
Unknown W. Brackets
90365943ff Split out the bounding box and stencil test cmds. 2014-04-17 22:54:23 -07:00
Unknown W. Brackets
b953ff8f33 Split out viewport type commands. 2014-04-17 22:49:09 -07:00
Unknown W. Brackets
5ed851204c Split out a few more common cmds. 2014-04-17 22:41:37 -07:00
Unknown W. Brackets
5ba924225e Move out texformat as well. 2014-04-17 08:29:44 -07:00
Unknown W. Brackets
7d34c20418 Split out the texscale/offset cmds. 2014-04-17 08:26:38 -07:00
Unknown W. Brackets
e8f42f069e Split out some texture and testing cmds. 2014-04-17 08:18:43 -07:00
Unknown W. Brackets
fbe28dbeef Move spline and bezier as well to separate funcs. 2014-04-17 08:09:44 -07:00
Unknown W. Brackets
286416af9f Don't even execute FF, it does nothing.
And it happens quite a lot in GoW, interestingly...
2014-04-17 08:05:32 -07:00
Unknown W. Brackets
12716afce2 Move out block transfer too, common in GoW. 2014-04-17 08:05:16 -07:00
Unknown W. Brackets
130c11c518 Move matrix loads to separate op cmds. 2014-04-17 08:00:01 -07:00
raven02
ffdba45b4b Flush GE_CMD_TEXLEVEL 2014-04-17 19:48:22 +08:00
Unknown W. Brackets
49738a4d9f Keep flags and func together.
Seems not to make a big difference, though.
2014-04-17 01:36:24 -07:00
Unknown W. Brackets
c90f3a3e80 Split out more of the top GE cmd funcs. 2014-04-17 01:18:53 -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
9851400681 Move a few GE cmds to separate funcs.
2% improvement in God Eater 2.
2014-04-17 01:18:52 -07:00
Unknown W. Brackets
e06c135be4 Allow individual cmd funcs to be called.
Rather than a single one, ExecuteOpInternal().  This allows less "huge
switch" code organization, and will (once separated) also improve speed.
2014-04-17 01:18:51 -07:00
Unknown W. Brackets
9982d04f9d Optimize the case of a direct byte copy.
Small improvement (like 3.5%) in God of War.
2014-04-13 21:31:30 -07:00
Unknown W. Brackets
6cfc61665d Switch to a bitmask instead. 2014-04-13 14:45:55 -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
Unknown W. Brackets
2f72da8087 Don't dirty the texture on texmapenable.
Tales of Phantasia X flips on and off texturing during battle transitions.
This causes tons of needless rehashes.
2014-04-13 13:19:35 -07:00
Unknown W. Brackets
f2ff8544c7 Don't check diff in ExecuteOpInternal().
Since it's not called if !diff, there's no need.  Small performance
improvement.
2014-04-13 10:25:14 -07:00
Unknown W. Brackets
e780a645cb Use the FLAG_EXECUTEONCHANGE flag.
Improves fps by 1-3% in some games, seems to be a win after all.
2014-04-13 10:23:21 -07:00
raven02
a6523dd507 Texture lod bias should be signed 2014-04-12 02:33:52 +08:00
Unknown W. Brackets
27550a2336 Update some flags in GLES_GPU.
It's useful to know if we need to have a correct PC value or downcount.
2014-03-29 14:10:35 -07:00
The Dax
1ca3d39a50 Disable the adaptive vsync checks by commenting them out. No need to have a disabled check run every frame. 2014-03-24 20:15:41 -04:00