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
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 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
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