Commit Graph
148 Commits
Author SHA1 Message Date
Unknown W. Brackets 901a7b804e Implement mipmap clut sharing/not sharing.
It was kinda already there, probably from JPCSP.  Not well tested,
but this is what JPCSP does and it makes sense.
2013-05-12 09:04:50 -07:00
Unknown W. Brackets 7e23299c36 Immediately load the clut on LOADCLUT. 2013-05-12 01:56:26 -07:00
Unknown W. Brackets 4c43da9c23 Only apply the clut offset when using the clut.
This may fix games that use the clut offset having wrong colors.
2013-05-12 01:56:25 -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 342ae6c322 Reuse the fullhash when it triggers a reload.
Instead of hashing it again a few microseconds later...
2013-05-12 01:56:24 -07:00
Unknown W. Brackets 724495cbb3 Mix add and xor in the texcache for better results. 2013-05-12 01:56:23 -07:00
Unknown W. Brackets 4b91c7e707 Implement DXT3 alpha. 2013-05-10 00:49:13 -07:00
Unknown W. Brackets 47c404b925 Clean up some comments. 2013-05-09 01:19:55 -07:00
Unknown W. Brackets 4a30221c95 Ignore texfunc RGBA when texture is full alpha.
This allows us to skip some work in the fragment shader.
2013-05-08 23:14:20 -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 34da6f983a Fix reporting typo logging wrong things. 2013-05-08 00:35:17 -07:00
Unknown W. Brackets 76c812a428 Allow larger texture buffer widths.
Fixes #1631.
2013-05-06 23:54:41 -07:00
Henrik Rydgård d8f9790abc Some Mac build fixes from vit9696 and some more. Update submodules. 2013-05-07 00:08:57 +02: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 995ab510e9 Optimize alpha-only CLUTs, common for fonts.
This optimizes the case where fonts are drawn using animation (common in
RPGs, for example), and textures have to be decoded over and over.

Could probably be faster with SIMD.
2013-05-05 22:34:35 -07:00
Unknown W. Brackets d86253cef2 Buildfix for Linux. 2013-05-05 19:58:59 -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 5b970d76e3 Use SSE2 in the texture hashing function.
Speeds it up significantly, but only when it's called a lot.
2013-05-04 21:39:12 -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 608f469b54 Minor cleanup to tex hash and clut check. 2013-05-04 19:16:52 -07:00
Henrik Rydgård 655e7dbfbb Merge pull request #1640 from PeterTh/master
Texture scaling improvements
2013-05-03 01:37:39 -07:00
Unknown W. Brackets df65bb40ac Avoid copying a tex if the PSP format is perfect. 2013-05-03 01:02:00 -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
Peter Thoman d8df8a6796 Merge branch 'master' of https://github.com/hrydgard/ppsspp
Conflicts:
	Core/Config.cpp
	Core/Config.h
2013-05-03 00:24:03 +02:00
Henrik Rydgard 6d66577f17 Don't write to transformedvertex.color1[4], it doesn't exist. 2013-05-02 20:18:46 +02:00
Peter Thoman d70641d3f2 Manual merge 2013-05-02 14:25:18 +02: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
Henrik Rydgard a125da7af6 Don't scale textures in "kernel" memory (like the 2048x2048 PPGe texture). 2013-05-02 10:18:26 +02:00
Peter Thoman 1f7a3776b3 Only scale textures which were never invalidated 2013-05-01 20:31:57 +02:00
Peter ThomanandPeter Thoman 5e918a644f Moved texture scaling to separate file 2013-05-01 14:12:09 +02:00
Peter ThomanandPeter 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 f6287cb33d Resize the tex buffers to the larger of w/bufw.
Since it's rearranging, it needs the larger, and it might be in place too.
2013-04-28 13:17:01 -07:00
Unknown W. Brackets 89ad3fb41a Swap a couple Unchecked loops for Memcpy calls.
Should be the same or faster, seems clearer anyway...
2013-04-28 11:33:14 -07: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 d0733562f1 Optimize clut reading a tiny bit, use one func. 2013-04-28 11:25:59 -07:00
Unknown W. Brackets 4fe0f59bd7 Fix some missing texture buffer resizes.
I think this is all of them...
2013-04-28 11:25:59 -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
Unknown W. Brackets 0cd65102af Cache cluts by hash not address.
This makes it immensely faster in Final Fantasy Tactics, and fixes the
numerous graphical issues.
2013-04-28 02:38:59 -07:00
Unknown W. Brackets 394a8eaf9e Small optimization to typical 4-bit textures.
These aren't used that often, but this makes them a bit faster.

It also looks cleaner, imho.
2013-04-28 01:53:24 -07:00
Henrik Rydgard c5c3189436 Fix some framebuffer-related crash bugs. Ignore cache instruction 'FILL'. 2013-04-27 20:06:31 +02:00
Unknown W. Brackets 9fa4725f67 Mask clut indexes for > 8-bit clut indexes.
Fixes #1532.
2013-04-27 01:19:09 -07: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 6a7722283c Hash textures using cityhash rather than adding.
It should be more accurate, and for some games is faster.
For most it seems not hugely different.
2013-04-24 01:52:37 -07:00
Unknown W. Brackets 5d978fc626 Fix second texture cache key, duh. 2013-04-24 01:52:37 -07:00
Unknown W. Brackets fd34a2e74d More aggressively decimate the second texcache. 2013-04-24 01:52:37 -07:00
Unknown W. Brackets 5bdf91ea43 Use a secondary texture cache for hash failures.
Animation is pretty common in 2D games, keep it cached.
2013-04-24 01:52:36 -07:00
Unknown W. Brackets 223bb6795a Don't rehash a non-matching texture. 2013-04-24 01:52:36 -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