Commit Graph

70 Commits

Author SHA1 Message Date
Henrik Rydgard
d83a5da6bd Fix glTextureStorage2D issue by scaling w/h. Fixes #5625 2014-04-02 00:15:41 +02:00
Unknown W. Brackets
b626daca59 Correct CheckAlpha() for un-rearranged textures.
Fixes #4403.  It was just not seeing the alpha when a texture had a large
bufw and a small w, and transparent only near the bottom - as in FF1's case.
2014-01-26 19:39:34 -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
Unknown W. Brackets
09f1c795e5 Pass around texture pointers, not addresses.
This makes it possible to override it easier, rather than needing it in
PSP RAM.
2014-01-20 07:52:09 -08:00
Unknown W. Brackets
9680a7ccc7 Allow texture scaling on changed textures.
But only if they don't change very frequently.  Should fix #1934.
2014-01-19 20:54:48 -08:00
Henrik Rydgard
5de7bb2e2d Use GL_EXT_unpack_subimage to speed up non-pow-2 texture loads when available 2013-11-01 19:38:52 +01:00
Henrik Rydgård
df29da0b13 GLES3: Use glTexStorage2D for (possibly) more efficient texture uploading 2013-10-08 15:00:48 +02:00
Unknown W. Brackets
81e71dd8d7 Add a way to get to the current texture as well. 2013-09-27 22:46:08 -07:00
Unknown W. Brackets
8ca31f7652 Round texture bufw down to nearest 16 byte mult. 2013-09-15 20:06:41 -07:00
Unknown W. Brackets
b1ca06dff0 Keep track of fbs so there's no lag texturing.
Before, there would always be at least one bind with the incorrect memory
before using the framebuffer as a source.
2013-09-01 11:45:42 -07:00
Unknown W. Brackets
49902ed4dc Factor out texture from framebuffer. 2013-09-01 11:40:35 -07:00
Unknown W. Brackets
ab1c20f509 Detach textures and fbs using a range check.
This is more compatible with the attach logic, and might also be faster.
Although, framebuffer destroys should not be that common.
2013-08-02 22:45:34 -07:00
Henrik Rydgard
61d419b2ec Don't scan for something to decimate every frame. Actually costs perf. 2013-08-01 00:13:58 +02:00
Unknown W. Brackets
5f5048ca04 Save the bufw for textures as well, to match fbs. 2013-07-30 00:02:32 -07:00
The Dax
21f0bf2079 Put TextureFiltering enumerator name back. It was deleted by accident. 2013-07-29 15:34:51 -04:00
The Dax
5ef3a558ff Remove more magic numbers and remove enumerator names. 2013-07-29 15:34:51 -04:00
The Dax
b2dfdf6401 Perform some Windows UI cleanups. Dozens of unused IDs were leftover from Dolphin, and I doubt they'll ever be used again. Also remove several magic numbers, instead using enumerators to clarify code. 2013-07-29 15:34:50 -04:00
raven02
2ed82df646 Use UPPER case for enum 2013-07-23 19:28:01 +08:00
Unknown W. Brackets
4cfa074546 Use GE state accessors in the texcache. 2013-07-21 19:45:05 -07:00
raven02
4d53022121 Use emnu{} to simplify different of texture filtering 2013-07-19 22:36:00 +08:00
Unknown W. Brackets
00540ea44c Hash/convert more when a CLUT base is used.
This seems a bit strange, but the games that use these bases seem to read
outside the loaded CLUT to a previously loaded CLUT.

May cause a performance issue on games that use a base but don't do this.
2013-06-16 08:04:21 -07:00
Henrik Rydgard
f8b9655f20 Use glTexSubImage to replace textures instead of deleting them and allocating new ones whenever possible. May help runaway VRAM consumption with some Radeon drivers. 2013-06-11 20:21:19 +02:00
Unknown W. Brackets
f042894c3e Don't bypass the secondary cache on minihash fail. 2013-05-26 13:44:47 -07:00
Unknown W. Brackets
5dabdd3651 Make sure to update the CLUT if format changes.
Otherwise we throw away the loaded clut, which is no good.
2013-05-26 13:26:07 -07:00
Unknown W. Brackets
c53386244d Don't hash the clut when it's not even used.
Many games load the clut even when it wasn't changed, and we don't flush
between when this happens.  There shouldn't be any need to rehash the clut
either.

Technically, the clut could have actually changed, but this would
generally require them to clear the dcache or something in a way the GE
probably doesn't support.
2013-05-26 12:41:36 -07:00
Unknown W. Brackets
373561b90e Don't store clutformat in the texcache entry. 2013-05-20 01:00:14 -07:00
Unknown W. Brackets
3efe7ae24d Cache based on the full clutformat.
Not just 2 bits of it.  Oops.  Simpler this way.
2013-05-20 00:53:39 -07:00
Unknown W. Brackets
5619c84432 Defer palette conversion after clut load.
Because the format can easily be specified afterward.
2013-05-12 10:57:41 -07:00
Unknown W. Brackets
5223ee3d1b Move the font clut opt check to clut load.
And remove the report for mipmap sharing, seems to work...
2013-05-12 09:26:17 -07:00
Unknown W. Brackets
7e23299c36 Immediately load the clut on LOADCLUT. 2013-05-12 01:56:26 -07:00
Unknown W. Brackets
5a81bfd1fb Don't invalidate textures based on the clutaddr.
The cluthash should be sufficient, and this is less to pass around.
2013-05-12 01:56:25 -07:00
Unknown W. Brackets
7dd0d242e2 Load the clut only using LOADCLUT, not every tex.
This is a small optimization, and should match PSP behavior better.
It also allows us to hash the clut and convert colors less often.
2013-05-12 01:56:24 -07:00
Unknown W. Brackets
cb217189c5 Keep track of whether a texture has alpha.
This way we know what sorts of blending we even have to do.  Commonly,
textures don't have any real alpha.

Not yet used for anything.
2013-05-08 23:14:19 -07:00
Unknown W. Brackets
3c0ed69fd2 Improve GPU invalidation interface, check fonts.
When a font is rendered, tell the GPU about it, but don't rehash.

This not only improves perf (less hashing) but makes font changes more
immediate (no deferred hashing.)  But only if they use sceFont.
2013-05-05 22:52:01 -07:00
Unknown W. Brackets
bd692ddf66 Check for low GPU memory and try to disable cache.
This may help with phones and even desktops without much VRAM/RAM.
Normally OpenGL will copy between them, though, so it should not happen
often, especially not on desktops.
2013-05-05 00:00:22 -07:00
Unknown W. Brackets
02c88b9517 Add a secondary texture cache again.
This time, only used when invalidations happen several times, but not
too often, and still hashes the entire texture.
2013-05-04 20:33:31 -07:00
Unknown W. Brackets
57c7b21640 Convert colors before applying clut, not after.
No reason to build it wrong and fix it afterward.
2013-05-03 00:12:42 -07:00
Henrik Rydgard
42a4a1e4ba Brightness fix for scaled RGB565 and RGB5551 textures. Fix broken color conversion in DecodeTexture (which is not normally used). 2013-05-02 10:59:45 +02:00
Peter Thoman
1f7a3776b3 Only scale textures which were never invalidated 2013-05-01 20:31:57 +02:00
Peter Thoman
5e918a644f Moved texture scaling to separate file 2013-05-01 14:12:09 +02:00
Peter Thoman
2212e7f609 Fixed threading issue pointed out by unknownbrackets and made texture scaling changes apply immediately 2013-04-30 17:58:05 +02:00
Peter Thoman
c7c4ec7c3b Added xBR texture scaling to TextureCache 2013-04-30 03:49:12 +02:00
Unknown W. Brackets
880af79caa Get rid of the duplicate texture decode func.
Just need one, really.
2013-04-28 11:26:00 -07:00
Unknown W. Brackets
13aeb9e67f Get rid of the cluthash in the texcache.
It's part of the key now, and better anyway.
2013-04-28 02:40:57 -07:00
Henrik Rydgard
6f4ad05582 Remove some unused code, add some stubs to vfpu jit, some cleanup 2013-04-27 19:35:42 +02:00
Unknown W. Brackets
7405b050be Revert secondary texture cache.
This reverts commits 5d978fc626,
6a7722283c,
fd34a2e74d,
5bdf91ea43,
223bb6795a, and
e2a9813d82.
2013-04-25 07:48:54 -07:00
Unknown W. Brackets
e2a9813d82 Basic mechanics for a secondary texcache, cleanup.
No need to set these values upon resuse.
2013-04-24 01:52:35 -07:00
Henrik Rydgard
42e4dc897e Add most Japanese kanji, the brute force way.
Hope everything supports 2048x2048 textures.
2013-04-18 14:59:00 +02:00
Unknown W. Brackets
74dbd2b44c Use AllocateMemoryPages() for the texcache buffers. 2013-04-09 01:59:47 -07:00
Unknown W. Brackets
de79941ef4 Allow the tex buffers to grow if necessary.
Only does the 16 bit one for now.

Tactics Ogre uses a texture that is 1024x1024.  Ouch.
2013-04-09 01:59:33 -07:00