Commit Graph
3990 Commits
Author SHA1 Message Date
Henrik Rydgård a285d047ea Merge pull request #5873 from unknownbrackets/texcache
Fix texture cache invalidation...
2014-04-14 09:16:30 +02:00
Unknown W. Brackets 9982d04f9d Optimize the case of a direct byte copy.
Small improvement (like 3.5%) in God of War.
2014-04-13 21:31:30 -07: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
raven02 a29255b647 Fix wrong stretch in Wildarm XF (non-buffered mode) 2014-04-14 11:40:04 +08:00
Unknown W. Brackets ca6e4635aa Fix texture cache invalidation. 2014-04-13 16:25:09 -07:00
Unknown W. Brackets dc0eea0522 Propagate texcache hash fails through cluts.
In games that use palette swapping (hi, FF2), if we detect a change in
a texture, another texture with the same address but new clut might not be
rehashed.

This just marks all other textures as dangerous when a hashfail occurs.

Fixes FF2 from recent optimizations.  It's slower, but still much faster
than before.
2014-04-13 16:20:58 -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 2f72da8087 Don't dirty the texture on texmapenable.
Tales of Phantasia X flips on and off texturing during battle transitions.
This causes tons of needless rehashes.
2014-04-13 13:19:35 -07:00
Unknown W. Brackets b6dc7eba8b Simplify texture status checks a bit. 2014-04-13 13:19:35 -07:00
Unknown W. Brackets f2ff8544c7 Don't check diff in ExecuteOpInternal().
Since it's not called if !diff, there's no need.  Small performance
improvement.
2014-04-13 10:25:14 -07:00
Unknown W. Brackets e780a645cb Use the FLAG_EXECUTEONCHANGE flag.
Improves fps by 1-3% in some games, seems to be a win after all.
2014-04-13 10:23:21 -07:00
Unknown W. Brackets 0d59fc0d2e Oops, forgot to reset the frame when unchanged.
Fixes #5861.
2014-04-13 08:15:48 -07:00
Henrik Rydgård 9bcb2f3a0e Merge pull request #5859 from raven02/patch-1
Implement in-shader ABSDIFF blending mode
2014-04-13 10:18:59 +02:00
Henrik Rydgård cb3db6ada4 Merge pull request #5854 from unknownbrackets/fbo-sizing
Try to improve FBO sizing
2014-04-13 10:16:23 +02:00
raven02 a9d7be1eab Should be id0 2014-04-13 16:13:59 +08:00
raven02 f1254c79ed Turn off regular alpha blending 2014-04-13 16:03:50 +08:00
raven02 e358a6dcbe Handle ABSDIFF blending mode using GL_EXT_shader_framebuffer_fetch 2014-04-13 16:01:55 +08: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
raven02 568b14f890 Regress fix https://github.com/hrydgard/ppsspp/issues/5769 2014-04-13 13:58:34 +08: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
Henrik Rydgård 05b23c7bd9 Merge pull request #5802 from raven02/patch-1
Texture lod bias should be signed
2014-04-11 20:58:55 +02:00
raven02 a6523dd507 Texture lod bias should be signed 2014-04-12 02:33:52 +08:00
Unknown W. Brackets d91ad87daa Small perf improvements in DecodeVertsStep(). 2014-04-05 12:32:10 -07:00
Unknown W. Brackets bb2fb12edd Inline SetupVertexDecoder() in SubmitPrim().
Everything SubmitPrim() calls is expensive...
2014-04-05 01:25:04 -07:00
Unknown W. Brackets f05f8c7b12 Fix alpha channel in 565 morph on x86.
Shuffling is annoying, just do it on the other side.  Fixes #5784.
2014-04-02 10:10:42 -07:00
Henrik Rydgård 89cf9230a1 Indentation fix 2014-04-02 10:28:03 +02:00
Henrik Rydgard d83a5da6bd Fix glTextureStorage2D issue by scaling w/h. Fixes #5625 2014-04-02 00:15:41 +02: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 466a5418d2 Cut time in EstimatePerVertexCost().
From profling, this cuts 4% time while lighting is enabled, and 14% while
disabled (on ARM.)  But maybe should just inline this...
2014-03-30 00:42:26 -07:00
Unknown W. Brackets a4327702f1 Reduce some includes under GPU/. 2014-03-29 16:51:38 -07:00
Henrik Rydgård 4c437218e4 Merge pull request #5766 from unknownbrackets/gpu-minor
Update some flags in GLES_GPU
2014-03-29 17:25:19 -04:00
Unknown W. Brackets 27550a2336 Update some flags in GLES_GPU.
It's useful to know if we need to have a correct PC value or downcount.
2014-03-29 14:10:35 -07:00
Unknown W. Brackets 0950e7b86d Optimize ComputeVertexShaderID() a bit.
This is only like 1%.  Along the way found and fixed an overlap of bits.
2014-03-29 10:35:09 -07:00
Unknown W. Brackets 1209bc7ba4 Optimize ComputeFragmentShaderID() a bit.
I've seen it decently high on some profiles (1-2%).  This cuts it down by
12.5% when used in a tight loop.  The temporary was 8%, the ifs were the
other 4.5%.
2014-03-29 10:21:04 -07:00
Unknown W. Brackets 2b7d2fdc4b Optimize > and != 0 alpha tests.
There's no need to do rounding in this case.  These are very common.

Also, if the test was !=, convert it to >, which may work better on
PowerVR.
2014-03-29 10:16:06 -07:00
Henrik Rydgard f99925261d Merge branch 'raven02-patch-42'
Conflicts:
	GPU/GLES/FragmentShaderGenerator.cpp
2014-03-29 17:26:33 +01:00
raven02 664efe6812 Return false when alpha blending disabled 2014-03-29 22:04:59 +08:00
raven02 2944856c42 FS : Add missing gstate.isTextureMapEnabled() 2014-03-29 21:03:28 +08:00
Henrik Rydgard 37e9fc59b3 2x alpha: Safer change than the last attempt. Still fixes P2. I think this can be simplified, anyway. 2014-03-29 12:10:44 +01:00
Henrik Rydgard 27767fa85c Revert "Rethink 2x src alpha->color doubling. Fixes #3379."
This reverts commit 47efded29f.
2014-03-29 12:01:47 +01:00
Henrik Rydgard 47efded29f Rethink 2x src alpha->color doubling. Fixes #3379. 2014-03-29 11:40:17 +01:00
Henrik Rydgard 94c1e56d9b Merge branch 'gpu-minor' of github.com:unknownbrackets/ppsspp into unknownbrackets-gpu-minor
Conflicts:
	GPU/GLES/VertexDecoder.cpp
2014-03-29 10:15:57 +01:00
Henrik Rydgard 74f593362b Non-jit vertex decoder, morph: Clamp colors to 0-255. 2014-03-29 10:07:51 +01:00
Unknown W. Brackets 4b1737b0cd vertexjit: Oops, don't use NEON when not supported. 2014-03-29 02:05:10 -07:00
Unknown W. Brackets 18f6407705 Clamp morph colors in non-vertexjit.
Not sure if any platforms use this...
2014-03-29 01:53:28 -07:00
Unknown W. Brackets 3adab534c7 vertexjit: Fix dumb mistakes in NEON color morphs. 2014-03-29 01:00:02 -07:00
Unknown W. Brackets 162bd98877 vertexjit: Fix Jit_WriteMorphColor() on ARM.
It was totally wrong.
2014-03-29 00:24:34 -07:00