Commit graph

380 commits

Author SHA1 Message Date
Unknown W. Brackets
78c83e122d Force 481x273 to 480x272, it's seen in a few games. 2014-06-01 23:47:37 -07:00
Unknown W. Brackets
c2ccfd5629 Stop stretching things to the FBO size.
Instead, draw in the top corner.  This way, even if framebuffers get
smaller things stay consistent.
2014-06-01 21:20:04 -07:00
Unknown W. Brackets
cfb21707b6 Take the tallest estimate, scissor may be short.
Even if it's wider but short, it should not reduce the height of the
buffer.
2014-06-01 18:45:25 -07:00
Unknown W. Brackets
d64d2afcb3 Don't allow a zero framebuf stride in estimation. 2014-06-01 18:45:03 -07:00
Unknown W. Brackets
a351a42041 Cleanup some old comments/code. 2014-06-01 14:00:58 -07:00
Unknown W. Brackets
d03397f056 Blit framebuf contents when resizing.
This avoids a blink when sizing up.
2014-06-01 13:53:34 -07:00
Unknown W. Brackets
32439bc006 Recreate framebuffers when they get bigger.
To avoid cases where they remain too small, and to make sure size always
matches up sanely.
2014-06-01 13:53:27 -07:00
Unknown W. Brackets
73234941e1 Consider stride more when determining fb size. 2014-06-01 13:50:37 -07:00
Henrik Rydgård
0c7c736522 Merge pull request #6205 from unknownbrackets/replace-funcs
Initial replacement for Star Ocean's stencil upload
2014-06-01 12:22:11 +02:00
Henrik Rydgård
3c521c3f88 Merge pull request #6209 from unknownbrackets/gpu-blocktransfer
Also check for x offsets within block transfers
2014-06-01 12:10:07 +02:00
Unknown W. Brackets
bc618fdb6c Also check for x offsets within block transfers.
Grand Knights History does these too, not just y offsets.  Why does it
bother when block transfer let's you specify the coordinates so exactly?
2014-06-01 02:33:44 -07:00
Unknown W. Brackets
68e5be9381 Doesn't look like these need to use depth/stencil.
May save a bit of VRAM/RAM.
2014-06-01 01:03:44 -07:00
Unknown W. Brackets
3e8442c371 Decimate temporary FBOs after not being used. 2014-06-01 01:03:43 -07:00
Unknown W. Brackets
0846673dc3 Track temporary-use FBOs all in FramebufferManager.
This way it's easier to manage their lifecycle.
2014-06-01 01:03:43 -07:00
Unknown W. Brackets
e109a547ae Disable vertex arrays not in use. 2014-05-31 22:07:41 -07:00
Unknown W. Brackets
b308aaad03 Update disabled IsReallyAClear() code.
Not sure if there's still something wrong about depth.
2014-05-31 22:07:40 -07:00
Unknown W. Brackets
089ee41d9c Implement a very basic stencil upload.
This is not fast or efficient, but works.
2014-05-31 21:48:09 -07:00
Unknown W. Brackets
e477a765e1 Scale bits better in MakePixelTexture(). 2014-05-31 21:48:08 -07:00
Unknown W. Brackets
192945fc71 Allow a memcpy upload in non-buffered rendering. 2014-05-30 09:44:14 -07:00
Unknown W. Brackets
da25de6970 Support block transfer uploads in non-buffered. 2014-05-30 09:25:36 -07:00
Unknown W. Brackets
aecd5bf250 Support render-to-self on GLES2. 2014-05-30 08:53:22 -07:00
Unknown W. Brackets
bf5946203d Fix a couple typos, oops.
Framebuffer one probably broke Grand Knights History some, depal one
probably broke some clut stuff.
2014-05-28 00:19:51 -07:00
Henrik Rydgard
44d9af9222 Hopefully fix the Manhunt red/green swap 2014-05-27 22:22:56 +02:00
Unknown W. Brackets
5f99f663ef Avoid duplicating an FBO when depaletizing it. 2014-05-27 22:12:23 +02:00
Henrik Rydgard
d0e65054a4 A bit closer to working. Shadow visible 2014-05-27 22:09:22 +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
ba2cf4f1d9 Make sure to rebind a texture after changing it. 2014-05-27 02:04:02 -07:00
Unknown W. Brackets
3e24786eab Disable the scissor test around blits.
Because it applies.
2014-05-27 02:00:28 -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
64f6012dba Support memsets of framebuffers as uploads.
Technically should clear stencil too... maybe it'd be better to handle
separately.
2014-05-27 01:17:09 -07:00
Unknown W. Brackets
95003cb77d Oops, reversed the check. 2014-05-27 00:57:40 -07:00
Unknown W. Brackets
2dbf680278 Play it a bit safer on rendering mode changes.
This way funny things should be less likely.
2014-05-26 23:28:54 -07:00
Unknown W. Brackets
4095831772 Allow changing "read framebuffers" at runtime.
Fixes #6149.
2014-05-26 23:26:29 -07:00
sum2012
03f9c3fe27 Add a missing Dangan Ronpa 1 hack
Dangan-Ronpa 1 PSP The Best Ver
2014-05-27 06:38:56 +08:00
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
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
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
8228bee6bf Download only the necessary subareas.
Performance improvement in Tactics Ogre.
2014-05-25 19:50:40 -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