Commit graph

465 commits

Author SHA1 Message Date
Unknown W. Brackets
ab67c49ae9 Make sure we don't hash outside max bytes.
If we've never even loaded that much, play it safe.
2015-04-26 00:43:36 -07:00
Unknown W. Brackets
c8fc9b0bf3 Cleanup some incorrect handling of clut offset. 2015-04-26 00:31:00 -07:00
Henrik Rydgård
a4a10588ed Merge pull request #7697 from unknownbrackets/texcache
Include texture size in the cache key
2015-04-20 00:08:44 +02:00
Unknown W. Brackets
b726a414d7 Log a reason when invalidating textures.
Makes debugging easier.
2015-04-18 12:42:13 -07:00
Unknown W. Brackets
58563324bd Include texture size in cache key.
This makes Tales of Destiny 2's towns significantly faster.  It may
however cause us to keep textures around for longer - but we still account
for them in our metrics and invalidation.
2015-04-18 12:42:13 -07:00
Unknown W. Brackets
ce9f404bef Unswizzle when reading from the swizzled mirror. 2015-04-18 12:39:04 -07:00
Unknown W. Brackets
1e8f2c2630 Allow clut load outside valid mem, fill with zero.
And only for the parts outside memory.
2015-04-12 22:38:17 -07:00
Henrik Rydgard
31961eace9 Color conv attempt 2. Start consolidating simple color conversion functions in a single header+cpp. 2015-04-08 22:52:46 +02:00
Unknown W. Brackets
10626e356d Avoid a potential divide by zero. 2015-04-08 11:57:59 -07:00
Henrik Rydgård
cf7115aa17 Merge pull request #7599 from unknownbrackets/texscaling
Avoid constant reload of frequently changed textures
2015-03-18 18:11:30 +01:00
Unknown W. Brackets
d00f6adf11 Avoid querying attrib locations in depal runtime. 2015-03-15 14:44:13 -07:00
Unknown W. Brackets
7ee9112425 Avoid constant reload of frequently changed tex.
If we detect that it's frequently changing, this will cause it to spiral
into an infinite loop of staying frequently changing and reloading to try
to scale.
2015-03-15 09:10:09 -07:00
Henrik Rydgård
9db4c5f34d Merge pull request #7573 from unknownbrackets/gpu-minor
Small optimizations to software transform
2015-03-09 09:59:45 +01:00
Unknown W. Brackets
534b06d3ff Correct clearing of texture cache on oom. 2015-03-08 18:38:28 -07:00
Unknown W. Brackets
c7984dd93e Use texture stage 3 for the palette, always.
It's better to keep a stage dedicated to each thing.  This also makes it
easier to potentially process depal in the shader, if we do that.
2015-03-08 13:13:04 -07:00
Unknown W. Brackets
abace1aa76 For render-to-tex, full alpha on 565 use only.
It's not how it was drawn, but how it is used... in case it changes
formats, which apparently Split/Second does.  Fixes #7492.
2015-02-21 18:08:50 -08:00
Unknown W. Brackets
0d9e0b16dd Fix textures leaking on game exit. 2015-01-24 20:36:01 -08:00
Henrik Rydgard
cae58cafee Revert "Merge pull request #7361 from hrydgard/color-conv-centralize"
This reverts commit f1b57dabf5, reversing
changes made to 41001637ce.
2015-01-22 19:53:32 +01:00
Henrik Rydgard
07933cad42 Revert "Minor optimizations, add a failsafe"
This reverts commit 48e4d1edae.
2015-01-22 19:52:58 +01:00
Henrik Rydgard
9c64351578 Revert "Fix issues with scaling ARGB1555 textures in OpenGL, introduced by the recent merge"
This reverts commit 08eaa6e1f7.
2015-01-22 19:52:49 +01:00
Henrik Rydgard
08eaa6e1f7 Fix issues with scaling ARGB1555 textures in OpenGL, introduced by the recent merge 2015-01-20 22:48:39 +01:00
Henrik Rydgard
48e4d1edae Minor optimizations, add a failsafe 2015-01-20 20:08:12 +01:00
Henrik Rydgard
7faddd6100 Consolidate the two TextureScaler copies into one.
Also lets us clean up ColorConv slightly.
2015-01-20 17:32:55 +01:00
Henrik Rydgard
4d1c1e41f3 Optimize and consolidate color conversion a bit 2015-01-20 17:32:55 +01:00
Henrik Rydgard
2623a48b4a Centralize color conversion functions in Common/ColorConv. 2015-01-20 17:32:54 +01:00
Unknown W. Brackets
d1b3dcffd8 Fix another potential divide by zero. 2015-01-19 08:45:19 -08:00
Unknown W. Brackets
e3b7ddb258 Clarify enum usage. 2015-01-18 13:26:26 -08:00
Unknown W. Brackets
795088001c Avoid passing a GPUstate by value.
Only used by Qt GE debugger thing anyway.
2015-01-17 18:21:04 -08:00
Unknown W. Brackets
40ea889b6a Cache the VBO/index buffer to avoid redundancy.
Well, mostly just redundant unbinds.
2015-01-11 16:56:29 -08:00
Unknown W. Brackets
d097999fad Avoid killing textures unless we have several mb. 2014-12-21 17:00:55 -08:00
Henrik Rydgard
b4b7cd0722 GLES: Merge the two ShaderID classes as they are identical.
I don't expect the number of bits required to grow or shrink massively for either type of shader in this backend.
2014-12-14 19:24:11 +01:00
Henrik Rydgard
8974cd675e Workaround silly PowerVR driver bug, prevent mipmapping on framebuffer textures
Not sure if these actually help anything in practice though. At least gets rid of debug log spam from the driver..
2014-12-14 01:24:01 +01:00
Lioncash
dc436aebe8 GPU: Get rid of unused variable warnings 2014-12-12 09:29:41 -05:00
Unknown W. Brackets
2b16b5b79b Use XXH64 on 64-bit systems.
I'm not able to reproduce any real performance difference, but I know
there are some games which do more hashing and it may help there.
2014-10-26 17:49:24 -07:00
Henrik Rydgard
d17aa4738a Some more GetPointer cleanup 2014-10-19 23:19:51 +02:00
Henrik Rydgard
e22fed8b9f Use unordered_map where it makes sense. Very tiny speed boost?
Also some microoptimizations.
2014-10-19 21:12:25 +02:00
Unknown W. Brackets
4e50eed85b d3d9: Specify tex stage for binding framebuf color. 2014-09-21 12:11:17 -07:00
Unknown W. Brackets
9af40cb14f d3d: Update the texture cache to mostly match.
Now we can reduce the differences down.
2014-09-09 00:53:01 -07:00
Unknown W. Brackets
b45711ba94 d3d: Centralize parts of the texture cache.
Should merge these.
2014-09-08 20:55:56 -07:00
Unknown W. Brackets
ac97f1ed96 Avoid a very unlikely fbo leak. 2014-09-08 07:41:23 -07:00
Unknown W. Brackets
7e248376f8 Track the last drawn width/height/format.
This way we can apply render-to-self effects more correctly.
2014-09-08 07:40:43 -07:00
Henrik Rydgard
1d7642fa48 Remove most mentions of the "_XBOX" define 2014-08-24 14:21:35 +02:00
Henrik Rydgård
f8a4236d58 Merge pull request #6679 from unknownbrackets/gpu-blend
Handle doubled alpha blending using premultiplication
2014-08-22 10:06:24 +02:00
Unknown W. Brackets
1e057a76b5 Convert all CLUT entries ever loaded.
Some games reuse previously loaded bytes, like World Neverland.  We
displayed bad colors in these cases when we don't convert all the entries.

Technically, this means we're hashing less than used in these cases, but if
we hash more we will get lots of false cache misses.

Fixes #6752.
2014-08-19 22:31:09 -07:00
Unknown W. Brackets
44620c92ed Premultiply for doubled alpha blending if possible.
This makes the effect more accurate where the values were being clamped
before.  Some obscure methods of blending may be slower.
2014-08-18 23:20:45 -07:00
Unknown W. Brackets
f553b632be Avoid a texture offset if framebuf attach fails.
But, I'm not sure in what case this could happen.
2014-07-09 08:22:57 -07:00
The Dax
97b467683a Don't crash when framebuffer is a nullptr. 2014-07-09 06:11:41 -04:00
Unknown W. Brackets
4a8d52ab1a Add a config option for the slow framebuf effects.
Like cluts, blitting, etc.  At higher render resolutions these are
expensive, and on some mobile devices they may be too much.

Of course, they're only used when needed so this is a speedhack.
2014-07-08 23:57:27 -07:00
Unknown W. Brackets
b829be1bfe Require 25% of texture to overlap framebuffer.
Because it's probably wrong if only a small amount overlaps.
2014-06-26 00:48:48 -07:00
Unknown W. Brackets
4c62a17f72 Allow exact render-to-tex format mismatches more.
If the right format was used recently, it's still okay.  Also check the
x/y offset to try to find the best match.
2014-06-22 21:02:43 -07:00