Commit graph

455 commits

Author SHA1 Message Date
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
raven02
8664fbac11 Make the EstimateDrawingSize() simpler 2014-05-14 20:13:20 +08:00
Unknown W. Brackets
b4ceedfc43 Correctly flip textures in DrawActiveTexture().
We want to flip the origin of UV (top to bottom), not the pixels within
the specified range.
2014-05-10 09:35:02 -07:00
raven02
11b9d8d29a Build fix 2014-05-10 12:26:53 +08:00
raven02
4263f00092 Add GL_NV_framebuffer_blit support for BindFramebufferColor() 2014-05-10 11:41:24 +08:00
raven02
c54664ba89 Validate the size framebuffer size with the szie from sceDmac 2014-05-09 23:32:26 +08:00
Henrik Rydgård
19ea7b5331 Merge pull request #6047 from raven02/patch-47
Comment out the remaining one LogReadPixelsError()
2014-05-08 16:12:56 +02:00
Henrik Rydgard
b8c39d4e42 ReadFramebuffer: Support sub rectangle 2014-05-08 16:09:55 +02:00
Henrik Rydgard
3c2819afea Make DrawActiveTexture more flexible (u/v origin too). 2014-05-08 15:28:25 +02:00
Henrik Rydgard
3b3c794a37 More framebuffer code cleanup 2014-05-08 15:16:33 +02: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
raven02
ec06b6532a Comment out the remaining one LogReadPixelsError() 2014-05-08 20:30:40 +08:00
Henrik Rydgard
fcf2498b11 Minor stuff from #6403 2014-05-08 10:46:19 +02:00
Henrik Rydgard
305e1652cb Turn off glGetError in Framebuffer.cpp. Can be easily turned back on if needed. 2014-05-08 10:43:46 +02:00
Henrik Rydgard
2e56e0f122 Fix check for glBlitFramebufferNV 2014-05-08 10:40:36 +02:00
Henrik Rydgard
2b58f2657c Merge branch 'patch-40' of github.com:raven02/ppsspp into raven02-patch-40 2014-05-08 10:00:00 +02:00
raven02
f98cf76b97 Use GL_NV_framebuffer_blit to handle depth copy 2014-05-05 12:19:31 +08:00
Unknown W. Brackets
ff25b9d20e Oops, the vertexdecoder should read vertex alpha.
Copy/paste mistake... ugh.
2014-05-04 09:05:45 -07:00
Unknown W. Brackets
e8d5866e5a Use SSE some in framebuffers to memory.
Since people are using it (even though it seems dangerous), might as well
make it faster.  6% better in Tales of Phantasia X.
2014-05-04 01:03:48 -07:00
Unknown W. Brackets
4475c99426 Fix GL errors / flicker in framebuf->mem.
Happens in Tales of Phantasia X, reported by Kingcom.
2014-05-03 20:20:40 -07:00
raven02
3d12a00fe1 Get rid of glstate.viewport.restore() for Mali/Adreno Soc 2014-04-23 22:47:59 +08:00
Unknown W. Brackets
f4458edc76 Avoid unbinding the current fbo on block transfer.
Improves God of War performance by 25% (at least in the demo.)
2014-04-13 21:11:17 -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
0d59fc0d2e Oops, forgot to reset the frame when unchanged.
Fixes #5861.
2014-04-13 08:15:48 -07:00
Unknown W. Brackets
f462721394 Rather than only enlarging, watch for persistence.
If the game keeps using something at a new size, we know it's time to make
some adjustments.
2014-04-12 23:12:35 -07:00
Unknown W. Brackets
1a53be45cc When uploading video pixels, detect w/h by size.
Sometimes the framebuffer size is incorrect, but kinda works... but this
is a problem for the video.  Using the size gets us better.

In Wild Arms XF, the framebuffer is 512x512, but that's not right.  It's
clear it should be 480x272.
2014-04-12 22:02:47 -07:00
Unknown W. Brackets
1f76adb7a3 If a larger framebuffer is needed, upgrade it once.
This should prevent issues where it gets larger and smaller like in the
past.
2014-04-12 20:46:38 -07:00
Unknown W. Brackets
7c70d8b04e Oops, remove some duplicate code.
Moved this to the inlined SetRenderFrameBuffer().
2014-04-01 02:09:21 -07:00
Unknown W. Brackets
e7639f666c Ensure stuff run on every prim are inlined.
These both get a ton of calls and show up on profiles.
2014-03-30 00:42:26 -07:00
Unknown W. Brackets
be9194b887 Try harder to show a useful post shader error.
It's worth seeing the error quickly, but mostly will need to look at the
log.
2014-02-16 01:25:33 -08:00
Henrik Rydgard
8b6b491820 Remove obsolete outputWidth/outputHeight 2014-02-10 12:44:35 +01:00
Unknown W. Brackets
d2108a962e Switch from USING_GLES2 to MOBILE_DEVICE.
Still using USING_GLES2 for, well, GLES2.  But for things that are really
about mobile, we need a new define.  Devices are coming that don't use
GLES2.
2014-02-08 16:37:58 -08:00
DanyalZia
afc36d557e Properly show OSD information of resolution 2014-01-27 11:46:09 +05:00
DanyalZia
61a15c1465 Fix a bug where changing resolution wouldn't make a difference on a fly 2014-01-26 19:02:21 +05:00
Unknown W. Brackets
b034b992df Only copy dirty depth buffers between FBOs.
We can remove this if/when we track them separately.  This may break a
game that depends on the depth carrying over between several FBOs, but
that's not extremely likely.

This improves performance in Gods Eater Burst.
2014-01-24 01:44:24 -08:00
Unknown W. Brackets
9cfb8648c0 Keep a map of temporary buffers for self renders. 2014-01-20 07:54:40 -08:00
Unknown W. Brackets
c6dc6b46e5 Clear the duplicate FBO on shutdown. 2014-01-20 07:54:39 -08:00
Unknown W. Brackets
b48de952fd Duplicate framebuffers textured onto themselves.
This fixes #2917.

I verified that, at least for my card, blitting is much faster than
glReadPixels (by quite a margin.)
2014-01-20 07:54:39 -08:00
raven02
a132b54c01 Put depth copy as BindFramebufferDepth() 2014-01-20 22:02:20 +08:00
Unknown W. Brackets
b0a1340a80 Report block transfers we don't support.
Ones involving framebuffers.
2014-01-20 01:47:20 -08:00
Henrik Rydgard
c55578367f Add option "Small Display", useful for large tablets to avoid overlapping touch controls with the screen.
Will later replace with a multiselect of different sizes, or something more advanced
like multitouch drag & zoom of the screen to get it exactly where you want it.
2014-01-16 00:22:39 +01:00
Unknown W. Brackets
79864a5ee0 Fix some initialization order warnings. 2014-01-10 22:21:24 -08:00
Henrik Rydgard
ad951bc0d4 Symbian buildfix 2014-01-06 19:21:27 +01:00
Henrik Rydgard
43a93f086d Enable depth buffer copies on GLES3 devices without breaking any desktop 2014-01-06 18:03:57 +01:00
Henrik Rydgard
aaf219d063 Only copy the depth buffer if the framebuffer size matches. 2014-01-05 13:00:57 +01:00
Unknown W. Brackets
2a56c76f55 Fix crash in non-buffered rendering. 2014-01-04 17:29:00 -08:00