2402 Commits

Author SHA1 Message Date
Unknown W. Brackets
1a8369e51c Apply a very specific hack for Danganronpa.
This should allow playing at non-1x resolutions, and without slowing down
the entire game just for one small framebuffer.

Generally, hacks are a bad thing.  But even with memcpy and block transfer
stuff, we'll never be able to solve this game without some sort of hack.
Detecting memory reads will complicate cross-platform compat or slow
things down.
2014-05-26 11:40:46 -07:00
Henrik Rydgård
4873c5c44a Merge pull request #6143 from unknownbrackets/gpu-minor
Don't block duplicate enqueues when intr pending
2014-05-26 10:56:59 +02:00
Unknown W. Brackets
ee8a180c41 Set the viewport on upload so 2x, etc. work. 2014-05-26 01:21:30 -07:00
Unknown W. Brackets
6243d0e8de Account for bpp mismatch in xfer upload. 2014-05-26 00:52:06 -07:00
Unknown W. Brackets
a29d2e418e When multiple framebuffers match, use nearest. 2014-05-25 22:57:07 -07:00
Unknown W. Brackets
4f03f693b6 Mark texture as needing reset after upload. 2014-05-25 22:35:14 -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
365012ec58 Fix block transfer upload.
Wasn't working properly, rendered to the wrong target.

No longer need the UpdateFromMemory() thing, now.
2014-05-25 21:48:44 -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
8228bee6bf Download only the necessary subareas.
Performance improvement in Tactics Ogre.
2014-05-25 19:50:40 -07:00
Unknown W. Brackets
230c7fb8a8 Don't block duplicate enqueues when intr pending.
Fixes #6138.
2014-05-25 18:52:31 -07:00
Unknown W. Brackets
c42d04829f Detect if the game uses block transfer slivers.
In that case, it's better to read it once, than multiple times.
Improves performance and graphics in Grand Knights History.
2014-05-25 18:18:26 -07:00
Unknown W. Brackets
c3efa05c9e Correct end framebuf range check. 2014-05-25 17:51:12 -07:00
Unknown W. Brackets
24ebc0d987 Flip framebuffer y correctly.
And here I just corrected another commit doing this wrong a few weeks ago.
Shame.
2014-05-25 17:46:42 -07:00
Unknown W. Brackets
89b3ead30d If multiple framebuffers match, offset correctly. 2014-05-25 17:45:45 -07:00
Unknown W. Brackets
2e1afcf08d When there are multiple copies, don't redownload.
This should improve performance when there are lots of little transfers.
2014-05-25 17:24:09 -07:00
Unknown W. Brackets
cbb3fe0086 Refactor framebuffer size calculation. 2014-05-25 17:12:58 -07:00
Unknown W. Brackets
cec8195e97 Cleanup reporting of block/memcpy transfers. 2014-05-25 17:10:06 -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
Unknown W. Brackets
0e620b2fe9 Fix buffer overflow in MakePixelTexture(). 2014-05-25 16:28:28 -07:00
Unknown W. Brackets
30222f987d Flip framebuffers when downloading their pixels.
It seems like this is where it was being done...
2014-05-25 16:28:28 -07:00
Unknown W. Brackets
d26addc7b4 Match the #ifdef for glBlitFramebufferNV.
It's defined in gl_state with these requirements.
2014-05-25 15:15:21 -07:00
Unknown W. Brackets
62cd61611e Support block transfers offset into a framebuffer. 2014-05-25 15:13:19 -07:00
Unknown W. Brackets
cacbfab4b5 Allow glBlitFramebuffer on desktop, avoid NV.
Only use NV if !GLES3.  There's no reason otherwise.
2014-05-25 15:11:24 -07:00
Henrik Rydgard
8543de91d7 Don't skip the copy if block transfer is turned off 2014-05-25 10:50:28 +02:00
Henrik Rydgard
90f2d06697 Add setting to enable/disable GPU block transfer 2014-05-25 10:18:14 +02:00
Henrik Rydgard
33d15a6972 Try to implement block transfer upload to fbo. Doesn't seem to work right though... 2014-05-25 10:02:51 +02:00
Henrik Rydgard
eaba341db0 Split DrawPixels up, preparing to make it more flexible 2014-05-25 10:02:50 +02:00
Henrik Rydgard
c21fdef02d Typo fix 2014-05-25 10:02:49 +02:00
Henrik Rydgard
0208ca8e90 Add some reporting for framebuffer sceDmacMemcpys. 2014-05-25 10:02:49 +02:00
Henrik Rydgard
6c2ab3215f Try to fix R/B color swap problem 2014-05-25 10:01:40 +02:00
Henrik Rydgard
fdf17cb558 Move setting currentRenderVfb_ to NULL to when it's really needed. 2014-05-25 10:01:39 +02:00
raven02
50fc54c92a Fix wrong #endif 2014-05-25 10:01:39 +02:00
raven02
a516abef02 Add comments 2014-05-25 10:01:38 +02:00
raven02
68548856fd Use glBlitFramebuffer when available to blit framebuffer 2014-05-25 10:01:38 +02:00
raven02
cf7229e05e Null out currentRenderVfb_
This fixes the missing stuffs in Tactic Orge
2014-05-25 10:01:37 +02:00
Henrik Rydgård
ebd3d214ae Typo fix 2014-05-25 10:01:36 +02:00
raven02
218b446f9c Add updateVRAM_; 2014-05-25 10:01:36 +02:00
raven02
05be56a433 Keep it sync = true also rename updateVRAM_ 2014-05-25 10:01:35 +02:00
raven02
62c99843ad Do NotifyBlockTransfer() in buffered rendering mode only 2014-05-25 10:01:34 +02:00
Henrik Rydgard
945b6125f9 Restrict the last change to buffered mode only 2014-05-25 10:01:34 +02:00
Henrik Rydgard
994629089e Implement GPU block copies between buffers and from buffer to RAM.
(first one not very well tested, second one improves Burnout Legends sun a lot)
2014-05-25 10:01:33 +02:00
Henrik Rydgård
8273c1b956 Merge pull request #6056 from raven02/patch-51
Validate the framebuffer size with the size from sceDmac
2014-05-25 10:01:10 +02:00
Unknown W. Brackets
233213e38b Avoid a crash in the GE debugger. 2014-05-23 08:48:29 -07:00
Henrik Rydgård
ad177b3333 Merge pull request #6090 from unknownbrackets/texfiltering
Don't force nearest for colortest against black
2014-05-16 09:06:37 +02:00
Unknown W. Brackets
ec0ae44200 Don't force nearest for colortest against black.
Should fix #4217 and be relatively safe.  Probably it's a common colortest
ref color that's safe?
2014-05-15 23:52:16 -07:00