Unknown W. Brackets
0018638458
Support INCR/DECR with stencil value replacement.
2014-08-24 10:24:28 -07:00
Henrik Rydgard
1d7642fa48
Remove most mentions of the "_XBOX" define
2014-08-24 14:21:35 +02:00
Henrik Rydgard
6011255e6f
D3D: Don't display buffered rendering upside down. Support screen scaling filter setting
2014-08-24 14:04:55 +02:00
Ced2911
d4adc3abb8
[dx9] don't do alpha test in pixel shader, use state mapping
...
hrydgard: Cleaned up a bit, disabled by default
Conflicts:
GPU/Directx9/TextureCacheDX9.cpp
2014-08-24 09:52:34 +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
7f61da2e5a
Add a hack for Silent Hill games.
...
Either way has different problems, but it sounds like this will work
better for Silent Hill. Probably still rendering wrong, unfortunately.
2014-08-18 23:20:49 -07:00
Unknown W. Brackets
a43c3771a3
More correctly blend when hitting the frame cap.
...
If we hit too many blits per frame, fall back correctly in the shader.
2014-08-18 23:20:48 -07:00
Unknown W. Brackets
422db25277
Optimize fixed color blending that isn't blending.
...
Gods Eater Burst uses this, for example.
2014-08-18 23:20:48 -07:00
Unknown W. Brackets
b79e4d22b8
Improve a possible obscure blend mode.
...
Seems like this would be likely to get overlap problems.
2014-08-18 23:20:47 -07:00
Unknown W. Brackets
0904085eb5
Avoid using fbo copies for the common 2a + 1-2a.
...
We won't even get it right that often since the copy doesn't deal with
overlap properly.
2014-08-18 23:20:47 -07:00
Unknown W. Brackets
5d1b1ab547
Dirty the fixed color when premultiplying.
2014-08-18 23:20:46 -07:00
Unknown W. Brackets
a41333c012
Avoid premultiplying easy fixed colors.
2014-08-18 23:20:46 -07:00
Unknown W. Brackets
24a0dd12ef
Avoid recalculating replaceBlend so many times.
2014-08-18 23:20:45 -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
Henrik Rydgård
d234ab03c6
Merge pull request #6696 from LunaMoo/master
...
Add Buffer Scalling Filter option
2014-08-19 07:55:45 +02:00
Unknown W. Brackets
dc09875eca
Refactor s8/s16 to float conversion.
...
It's pretty much all done the same way. Note that normals have always
been a little inconsistent between 127/128 and 32767/32768. But it's
probably not causing a major impact...
2014-08-18 00:47:50 -07:00
Unknown W. Brackets
385df1c54e
Force positions to scale by 128/32768 as psp does.
...
This makes everything use floats for positions. On some hardware/drivers,
this may be faster. On some it may be slower. We'll need testing to see
the performance impact.
Fixes Final Fantasy 4's pos misalignments, and probably others (like
Tekken 5 I suspect.)
2014-08-17 14:31:49 -07:00
Unknown W. Brackets
147eb92c95
Fix USE_BONE_ARRAY (currently disabled.)
2014-08-17 10:56:30 -07:00
Luna
62a1023615
Add "Screen Scaling Filter" option
2014-08-08 20:51:15 +02:00
The Dax
ee9eb00656
One last buildfix (please correct if GL_FUNC_ADD is wrong, I just wanted buildbot to work again). https://github.com/hrydgard/ppsspp/pull/6679 should replace this soon.
2014-08-05 00:34:36 -04:00
Unknown W. Brackets
cde9746dab
Buildfix.
2014-08-04 21:09:58 -07:00
Unknown W. Brackets
3008b4f8a8
Also do it here, although may be removed soon.
2014-08-04 19:33:58 -07:00
Unknown W. Brackets
8d6a5fd694
Use correct stencil values with non-add blending.
...
Otherwise, we get the min/max/etc. value instead.
2014-08-04 19:16:10 -07:00
Unknown W. Brackets
0279aa154c
Use glStencilMask() to partially simulate amask.
...
Alpha won't be correct, though.
2014-08-03 21:48:18 -07:00
Unknown W. Brackets
3bf88a3c9a
Disable tests and etc. when destroying framebufs.
...
Fixes #6678 . May fix problems loading savestates as well.
2014-08-03 18:45:36 -07:00
Unknown W. Brackets
9844c6e8cc
Create the stencil texture after the temp fbo.
...
Otherwise, we'll bind the temp fbo as a texture while creating it.
Somehow my NVIDIA driver was making this work anyway?
Fixes #6611 .
2014-07-22 22:36:38 -07:00
Henrik Rydgard
c8ac26e502
Apparently a 1 pixel margin works around Assassin's Creed buffer overlap misdetection
...
(while still keeping BOF working).
Should take care of #6599 .
2014-07-21 20:00:25 +02:00
Unknown W. Brackets
bf01fd2185
Try to avoid false reporting of depthbuf reuse.
2014-07-13 11:59:45 -07:00
Unknown W. Brackets
d80d5beb71
Stop reporting blits when render mode is swapped.
2014-07-09 23:40:29 -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
81e6f93be4
Check for access to offset framebuffers better.
...
Even if the height of the framebuffer doesn't exactly match the offset.
Fixes #2759 again.
2014-07-06 11:52:00 -07:00
Unknown W. Brackets
be76846679
When applying the Danganronpa hack, force 5551.
...
This prevents dithering from happening during the blit, and since
dithering is off during drawing, allows the colors to be correct on some
devices which always dither during blits.
2014-07-05 00:49:30 -07:00
Unknown W. Brackets
8ab33795b3
Delete temporary/blitting FBOs on device lost.
...
Fixes issues when the device goes to sleep with Danganronpa, block
transfers, etc.
2014-07-04 23:27:12 -07:00
Unknown W. Brackets
4cb8c414b0
Use the CPU for download on non-NVIDIA cards.
...
Fixes #6494 .
2014-07-04 18:04:32 -07:00
Unknown W. Brackets
3a2d1ac28e
Correct async packing alignment.
...
Only matters if a framebuffer width is not a multiple of 4, which might
not happen anyway.
2014-07-04 14:10:56 -07:00
Unknown W. Brackets
6a4269b1d0
Disable dithering (which affects pixel download.)
...
Fixes #6494 .
2014-07-04 14:10:20 -07:00
Unknown W. Brackets
be0340bb34
Fix crash when FBO_ARB is not available.
...
Experienced this on a Mac / SDL with a Radeon X1600.
2014-07-04 01:54:03 -07:00
Unknown W. Brackets
edd760fe39
Oops, forgot a cast.
2014-07-03 01:30:08 -07:00
Henrik Rydgård
ed9866b212
Merge pull request #6490 from unknownbrackets/framebuffer-clut
...
Fix depal shaders on GLES3 devices
2014-07-03 09:53:53 +02:00
Henrik Rydgård
4972f63dfa
Merge pull request #6491 from unknownbrackets/gpu-minor
...
Try to fix color test masking on GLES3 devices
2014-07-03 09:52:45 +02:00
Unknown W. Brackets
739c215d35
Stop reporting memcpy fbo upload/download.
2014-07-03 00:48:46 -07:00
Unknown W. Brackets
61ea20875c
Fix shader blending on ARM GLES3 devices.
...
We currently ban them from GLES3, and this was interacting with that
incorrectly. Should we still ban them, though?
2014-07-03 00:15:15 -07:00
Unknown W. Brackets
e364de42cb
Ensure #extension is before non-# tokens.
...
As required by Tegra devices from reporting.
2014-07-02 23:21:52 -07:00
Unknown W. Brackets
c379169efc
Try to fix colormasking on GLES3 devices.
...
Not tested, though, since I don't have one... from reporting.
2014-07-02 23:15:02 -07:00
Unknown W. Brackets
5ddb848d09
Fix depal shaders on GLES3 devices.
...
This path should have only > GL 3.3 or GLES3 so texture() is okay.
2014-07-02 22:35:47 -07:00
Unknown W. Brackets
602daf5f8a
Add some missing algorithm includes.
2014-07-01 00:26:22 -07:00
Unknown W. Brackets
5db79dcf11
Fix some missing semicolons on log statements.
2014-06-29 19:09:37 -07:00
Unknown W. Brackets
32a11dc28d
Minor optimization for prescale/not, fix switch.
2014-06-29 15:47:00 -07:00
Unknown W. Brackets
596abeca06
Use the same vertex decoders for splines.
...
Had the vert type bits at the top.
2014-06-29 15:46:59 -07:00
Unknown W. Brackets
95f4341838
Allow changing prescale uv at runtime.
2014-06-28 21:51:25 -07:00
Unknown W. Brackets
1c3b60a8ee
Allow changing software skinning at runtime.
2014-06-28 21:46:43 -07:00
Unknown W. Brackets
d2d7d6e34b
Destroy all FBOs/textures upon sceKernelLoadExec().
...
It can confuse our heuristics about size, attachment, memcpy, etc.
2014-06-28 12:29:09 -07:00
Unknown W. Brackets
63bcb65d96
Height can be equal, just not greater.
...
Oops.
2014-06-28 03:41:44 -07:00
Unknown W. Brackets
7d0aeb067a
Make sure the conv buffer matches the used height.
...
May matter if bufferHeight > height.
2014-06-28 02:40:40 -07:00
Unknown W. Brackets
217d8d24ea
Validate height better when downloading fbs.
2014-06-28 02:33:28 -07:00
Henrik Rydgård
9351fe44ea
Merge pull request #6444 from unknownbrackets/jit-minor
...
Use more correct rounding in armjit, update x86jit and minor
2014-06-28 11:20:11 +02:00
Unknown W. Brackets
e57ed7d2f4
Small optimizations to stencil scanning.
2014-06-28 02:00:14 -07:00
Unknown W. Brackets
a33589b3e9
Optimize away bits in the stencil upload.
...
Should be faster than sending to the GPU this way, if we can help it.
Should improve delays on FBO creation at high render resolutions.
2014-06-28 01:39:18 -07:00
Unknown W. Brackets
464b453748
Use a temp FBO at 1x to upload stencil.
...
This improves performance at > 1x resolutions.
2014-06-28 01:19:07 -07:00
Unknown W. Brackets
89ffbd027e
vertexjit: Specify round to zero in ARM rounding.
...
Only affects color morphs. NEON always rounds to zero so let's be
consistent.
2014-06-28 00:38:57 -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
Henrik Rydgard
d040b980dd
Experiment: Disable clear optimization on PVR (see #6290 )
2014-06-24 23:32:40 +02:00
Unknown W. Brackets
ca2d9286e0
Notify the texcache when fb format changes.
...
Fixes #2094 again.
2014-06-24 00:14:56 -07:00
Henrik Rydgard
cc269488b2
Protect against bad spline patch data better.
...
Also fix a struct name collision.
2014-06-24 01:14:32 +02:00
Henrik Rydgård
e27e285624
Merge pull request #6396 from hrydgard/ridge-racer-hack
...
Ridge Racer hack: Flush after every prim if fb addr == tex addr.
2014-06-23 17:52:25 +02:00
Henrik Rydgård
14c0c019db
Merge pull request #6407 from unknownbrackets/replace-funcs
...
Fix function replacement hooks on arm
2014-06-23 17:50:32 +02:00
Unknown W. Brackets
8a7b440933
Don't need this flag, it read from memory.
2014-06-23 08:21:20 -07:00
Unknown W. Brackets
ad060b992d
Clear buffers right after creating them.
...
Seems like some drivers have trouble otherwise.
2014-06-23 00:17:35 -07:00
Unknown W. Brackets
6d104edb5d
Make sure not to leak any enabled vertex arrays.
...
When returning to EmuScreen, we need to reset any enabled vertex arrays or
we could crash in EmuScreen. Also, when starting a frame / dirting the
shader, make sure also to toggle the vertex arrays.
2014-06-22 21:42:29 -07:00
Unknown W. Brackets
b8ad665b53
Clear vertex attrib arrays before output to screen.
...
Doesn't seem to help the mis-enabled arrays, though.
2014-06-22 21:03:33 -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
Henrik Rydgard
8b60fe0239
Ridge Racer hack: Flush after every prim if fb addr == tex addr.
...
Fixes the bloom errors. @unknownbrackets discovered this method.
Not sure if I want to merge this.. It does add yet another check
to a critical path.
2014-06-22 20:37:50 +02:00
Unknown W. Brackets
73d77d3e8a
Warning fix.
2014-06-21 18:04:00 -07:00
Unknown W. Brackets
e0b4aa68d0
Typos.
2014-06-21 12:04:27 -07:00
Henrik Rydgård
5f57e7ebaf
Merge pull request #6383 from unknownbrackets/gpu-minor
...
Check for closest render-to-tex, ignore high bits of fb addr
2014-06-21 21:03:17 +02:00
Unknown W. Brackets
0418c8071a
Support more shift/masks in fb cluts on GLES2.
2014-06-21 11:10:57 -07:00
Unknown W. Brackets
e9224e9eaa
Actually set the offset framebuffer.
...
Oops.
2014-06-21 09:04:39 -07:00
Unknown W. Brackets
1cea361c65
Remove now-unnecessary MaskedEqual() compares.
...
Clearer this way I think.
2014-06-21 08:30:45 -07:00
Unknown W. Brackets
4319d5eb28
Take the closest offset framebuffer.
...
There could be multiple, or even an exact match too. Make sure to take
the closest one.
2014-06-21 08:23:10 -07:00
Unknown W. Brackets
0c31e551e7
Clear buffers before using them.
...
Fixes a reported crash on an AMD card.
2014-06-19 23:09:15 -07:00
Unknown W. Brackets
ef390c5c40
Double check upload/download are VRAM addresses.
2014-06-19 23:09:15 -07:00
Unknown W. Brackets
5f4a0d8174
Fix a few minor warnings.
2014-06-19 00:47:58 -07:00
Unknown W. Brackets
19f35bbac1
Clear stencil to 0, not 1.
...
Memory is generally initially zeros, after all. Fixes #5205 (or at least
improves it?) and fixes #6226 .
2014-06-18 00:09:01 -07:00
Unknown W. Brackets
b5eb072e64
Clear depth buffers to zero, not 1.0f.
...
Memory is generally initially zeros.
2014-06-17 23:56:33 -07:00
Unknown W. Brackets
a9da3618ba
Upload the color/stencil buffers on FBO creation.
...
Fixes pausing or loading a savestate in Star Ocean (previously your
character became invisible until the screen panned.)
2014-06-17 23:55:09 -07:00
Unknown W. Brackets
171a865b37
Support reversing normals in software transform.
2014-06-17 23:29:33 -07:00
Unknown W. Brackets
d4c416a437
Use the pre-world normal in software proj mapping.
...
Fixes #6081 .
2014-06-17 23:27:19 -07:00
Unknown W. Brackets
2d63a74aeb
Allow DrawPixels (uploads) to handle alpha.
...
Doesn't update stencil, but at least it updates alpha.
This was fixed to 1.0 before because we had blending enabled by accident
during DrawPixels().
2014-06-17 23:10:38 -07:00
Unknown W. Brackets
359f72078d
Disable vsync when exiting the game.
...
Not sure why, but with some drivers not doing this makes the process burn
cpu usage when back in the menu. Fixes #6351 .
2014-06-17 01:06:25 -07:00
Henrik Rydgård
565bb98db1
Merge pull request #6350 from unknownbrackets/gpu-blend
...
Avoid blitting for a bunch of gpu blending modes
2014-06-17 09:54:57 +02:00
Unknown W. Brackets
6e751f8092
Use shader blend for min/max when unsupported.
2014-06-17 00:20:06 -07:00
Unknown W. Brackets
640c58a892
Reorganize alphablend state mapping logic.
2014-06-17 00:20:05 -07:00
Unknown W. Brackets
17f5acd8b0
Support more src alpha doubling modes.
...
These prevent the need for more blits.
2014-06-17 00:20:05 -07:00
Unknown W. Brackets
143ad92afd
Convert blending to doubling in more cases.
...
We're not doubling the alpha, so all these cases are safe regardless of
the alpha value.
2014-06-17 00:20:04 -07:00
Unknown W. Brackets
256436b594
Support fixed/fixed blending without a blit.
2014-06-17 00:20:04 -07:00
Sacha
7bbdabdfa2
glBindFragDataLocation is not needed. Thanks HdkR.
2014-06-17 15:52:46 +10:00
Sacha
9961ef1ba7
Qt: Buildfix USING_GLES2 and not MOBILE_DEVICE
2014-06-17 15:30:03 +10:00
Unknown W. Brackets
d1357e5bc8
Fix another mistake in color test masking.
2014-06-16 02:12:08 -07:00
Unknown W. Brackets
a28354f072
Fix dumb typo.
2014-06-16 01:42:19 -07:00
Unknown W. Brackets
9b67594a1d
Linux buildfix.
2014-06-16 01:04:53 -07:00
Henrik Rydgård
f061cb4c0f
Merge pull request #6341 from unknownbrackets/gpu-minor
...
Support alpha and color test masks on desktop/gles3
2014-06-16 10:02:20 +02:00
Unknown W. Brackets
982f0416a2
Pre-mask alphatest value as a small optimization.
...
Might cause small behavior difference on gles2 (without bitwise ops.)
2014-06-16 00:35:30 -07:00
Unknown W. Brackets
2038bc5527
Support alpha / color test masks on desktop/gles3.
...
Won't work on GLES 2, though...
2014-06-16 00:33:48 -07:00
Unknown W. Brackets
3fea3e1293
Respect "nearest" filtering setting for fbs.
2014-06-15 19:42:24 -07:00
Unknown W. Brackets
107df3b838
Reuse existing buffer matching for MotoGP hack.
2014-06-15 19:34:57 -07:00
Unknown W. Brackets
a54cefc138
Only download width bytes, not stride bytes.
...
Fixes #6330 , MotoGP not rendering properly with simulate block transfers.
2014-06-15 19:33:32 -07:00
Henrik Rydgård
43bddd8067
Merge pull request #6336 from unknownbrackets/texcache
...
Separate framebuffer sampling params from tex
2014-06-16 00:52:20 +02:00
Unknown W. Brackets
e762689ea8
Update vsync on resize, and before first FBO.
...
May take care of #4440 .
2014-06-15 15:19:49 -07:00
Unknown W. Brackets
fdd759909b
Auto-disable shader blending after 48 per frame.
...
Should prevent possible massive slowdowns from log reporting.
2014-06-15 13:48:06 -07:00
Unknown W. Brackets
40f13d51e7
Separate framebuffer sampling params from tex.
...
This way we don't need to reset params on the texture or worry about
things like that. We always force on the framebuffer anyway, so this is
simpler.
Also don't enable mipmaps when using a framebuffer, since they don't make
sense currently.
2014-06-15 13:34:58 -07:00
Unknown W. Brackets
f6649794df
Respect max texture level in GE debugger preview.
2014-06-15 10:31:16 -07:00
Unknown W. Brackets
eaf3288304
Add debug interface for non-L0 texture preview.
2014-06-15 09:30:37 -07:00
Henrik Rydgård
9503603f5f
Merge pull request #6326 from unknownbrackets/gpu-minor
...
Support render-to-offset within a framebuffer
2014-06-15 09:13:03 +02:00
Unknown W. Brackets
030b562eb9
Support render-to-offset within a framebuffer.
...
Fixes #6324 .
2014-06-14 17:08:41 -07:00
Henrik Rydgard
ab61255018
Allow only a small number of "InvalidateAll" operations per frame on the texture cache.
...
Reduces stutter in FF:Type0 tutorial end scene a bit more.
2014-06-15 00:40:08 +02:00
Unknown W. Brackets
651d8a4a7d
Support inter-buffer memcpy transfer.
...
Seeing some games using it like 3rd Birthday uses block transfers, to copy
a frame to the other buffer.
2014-06-14 13:22:00 -07:00
Unknown W. Brackets
d06a0520ae
Consistently mark vfb dirty after drawing to it.
2014-06-14 13:19:27 -07:00
Henrik Rydgård
59bef47035
Merge pull request #6321 from unknownbrackets/texscaling
...
Reduce some texture scaling limits to rely on texels instead
2014-06-14 20:08:39 +02:00
Unknown W. Brackets
6ebdf2be29
Skip memcpy fb download when already downloaded.
...
Fixes Final Fantasy Tactics lag, discussion in #6308 .
2014-06-14 11:04:17 -07:00
Unknown W. Brackets
b1396d51b2
Log more info about skipped subarea renders.
2014-06-14 11:04:17 -07:00
Unknown W. Brackets
ec7942fc8a
Report decoding a texture from a VRAM mirror.
...
Might mainly be depth textures?
2014-06-14 11:04:16 -07:00
Unknown W. Brackets
0b9db176e9
Centralize render-to-tex logic, support mirrors.
...
Now everything is decided in AttachFramebuffer().
2014-06-14 11:04:16 -07:00
Unknown W. Brackets
822f936b05
Validate stride when using clut, more reporting.
2014-06-14 11:04:15 -07:00
Unknown W. Brackets
d8eaeab663
Reduce change frequency limit for texscaling.
...
Since we have the texels limit now, this should allow more textures to be
scaled safely. Also, it may detect alpha optimizations in more textures,
since we currently skip them for frequently changed textures.
2014-06-14 10:49:13 -07:00
Unknown W. Brackets
0620c6edc7
Forgive freq. changed tex if they mend their ways.
2014-06-14 10:43:22 -07:00
Unknown W. Brackets
99c8319f15
Don't count unscaled frequently changing texels.
...
May cause more things to be scaled per frame (especially if first textures
on a frame are frequently changing.)
2014-06-14 10:40:23 -07:00
Henrik Rydgård
5f6c083a3e
Merge pull request #6315 from unknownbrackets/framebuf-estimate
...
Avoid shrinking buffer w/h in throughmode
2014-06-14 11:06:37 +02:00
Unknown W. Brackets
119edd34e6
Avoid shrinking buffer w/h in throughmode.
...
Since they could overdraw and we already scissor.
2014-06-14 01:56:34 -07:00
Henrik Rydgård
036cde7768
Merge pull request #6313 from unknownbrackets/gpu-minor
...
Implement in-shader blending on gles2 / gl2
2014-06-14 09:21:30 +02:00
Henrik Rydgård
5fa331bb56
Merge pull request #6310 from hrydgard/deferred-scaling
...
Limit the amount of texture scaling done per frame to reduce stutters
2014-06-14 08:59:40 +02:00
Unknown W. Brackets
444128dcdd
Support NEVER alpha/color tests.
2014-06-13 23:44:40 -07:00
Unknown W. Brackets
1d9f7b04fc
Implement in-shader blending on gles2 / gl2.
...
I'm sure it'll be slow, though...
2014-06-13 23:42:59 -07:00
Unknown W. Brackets
673e92927a
Avoid an infinite loop on small heights.
2014-06-13 23:37:08 -07:00
Henrik Rydgard
4e81eadc88
Minor cleanup in texcache
2014-06-14 00:18:37 +02:00
Henrik Rydgård
2f86e3e021
Clear STATUS_TO_SCALE at a better place
2014-06-13 23:01:40 +02:00
Henrik Rydgård
ea9f8d8bf3
Comment out the deferred scaling logs.
2014-06-13 22:11:25 +02:00
Henrik Rydgård
c0c058937f
Limit the amount of texture scaling done per frame, to reduce stutters
...
Scaling causes really bad stutters in some games on some hardware.
This should also reduce the impact of pathological cases like the first
boss of FF Type-0 to be more bearable.
2014-06-13 22:07:26 +02:00
Unknown W. Brackets
f84650b6be
Report possible textures at subareas > 32.
...
For the ones outside the hack 0x04110000 range.
2014-06-13 09:19:51 -07:00
Unknown W. Brackets
ac6cbf3524
Take the nearest fbo for a y-offset memcpy().
2014-06-13 08:45:26 -07:00
Unknown W. Brackets
392897d447
Allow oversized gpu memcpys.
...
Seems to happen in Mana Khemia, where it uses h=384, but it looks
legitimate.
2014-06-13 08:42:58 -07:00
Unknown W. Brackets
00651ceea1
Support gpu memcpy/memset line-by-line.
...
Fixes some glitches in Final Fantasy Tactics, which uses memset line by
line (at width, not stride.)
Should still be relatively safe, unless a buffer is detected as too tall.
The memcpy() will still happen anyway.
2014-06-13 08:36:02 -07:00
Unknown W. Brackets
dad1bf41f7
Avoid making FBO copies in the debugger.
...
When it binds the texture preview. Not needed.
2014-06-13 08:35:12 -07:00
Henrik Rydgård
3da962f585
Merge pull request #6300 from unknownbrackets/gpu-blocktransfer
...
Try to handle more block transfer / tex render cases
2014-06-12 20:34:26 +02:00
Unknown W. Brackets
025b92593a
Just don't use render-to-text format mismatches.
...
This already excludes CLUTs.
2014-06-12 07:46:56 -07:00
Unknown W. Brackets
1a25456e52
Detach a format mismatch that's not rendering.
...
Assume we'd be better off reading ram.
2014-06-12 00:48:21 -07:00
Unknown W. Brackets
89206a8a09
Allow render-to-tex with > 16 y offset.
...
Trying to keep it cautious in case our sizes are wrong.
2014-06-12 00:41:42 -07:00
Henrik Rydgård
89bbc90678
Merge pull request #6299 from unknownbrackets/gpu-blocktransfer
...
Track framebuffer memory dirty more carefully
2014-06-12 09:01:38 +02:00
Henrik Rydgård
65153b55fa
Never detach shaders as some drivers may have broken semantics. May help #6294
...
(you're supposed to be able to detach them after link)
2014-06-12 08:58:14 +02:00
Unknown W. Brackets
9b12a4893d
Track framebuffer memory dirty more carefully.
...
Fixes #6296 , Grand Knights History slowdown during battle transition. May
also more correctly identify block transfer downloads.
2014-06-11 22:21:08 -07:00
Unknown W. Brackets
b9f805c71f
Fix graphical artifact in Jeanne d'Arc world map.
...
We need to use the last set render framebuffer, not the current one at
copy to output.
2014-06-11 00:54:54 -07:00
Unknown W. Brackets
efc2de41ae
Ignore depth buffers with stride = 0.
...
They're clearly not being used.
2014-06-11 00:40:47 -07:00
Unknown W. Brackets
c49ba888b5
Flush draws before doing any block transfers.
...
Otherwise, we might flush on top, or we might download the wrong thing.
2014-06-11 00:28:28 -07:00
Unknown W. Brackets
dd4b191003
Correct Gods Eater Burst tex download size.
...
Probably takes care of #6289 , although it doesn't crash for me.
2014-06-10 22:59:08 -07:00
Henrik Rydgard
3e97713d16
Revert "Remove option" (disable alpha test)
...
Fixes issue #6286 .
This reverts commit d2ce635bbf
.
2014-06-10 23:13:42 +02:00
Henrik Rydgard
34b5a1c2f3
Disable precision qualifiers on desktop GL
2014-06-10 22:44:53 +02:00
Unknown W. Brackets
adee76cd62
Add a matching PerformMemoryUpload().
...
Just so we have both Download and Upload to use later.
2014-06-10 00:45:03 -07:00
Unknown W. Brackets
5bd1d9d009
Avoid corrupting mem if our framebuf size is wrong.
...
Let the size specify the framebuffer height, which we are most likely to
have gotten wrong.
2014-06-10 00:15:05 -07:00
Unknown W. Brackets
d5aae5a705
Match block transfer address even when uncached.
...
Rhythm8 for example uses an uncached address for the dest framebuffer.
2014-06-09 23:28:54 -07:00
Unknown W. Brackets
ef12694c4b
Don't update render tex x/y offset unless matched.
...
Sometimes we have false matches, they should be skipped. Fixes some bloom
that is off in some games.
2014-06-09 22:45:14 -07:00
Sacha
9d9d135176
Symbian buildfix, x11 linker order
2014-06-10 15:33:30 +10:00
Sacha
87c7b31e77
Qt: Mac arch detection workaround on Qt4. Fix a conflict.
2014-06-10 15:11:25 +10:00
Henrik Rydgard
e01f8232bd
Try the quickfix proposed for 6272 at 1080p, works nicely.
...
Might want to do something more ambitions, too, allowing minor crops
on more resolutions...
2014-06-09 21:22:12 +02:00
Henrik Rydgard
339c4d7dc3
Fix a bunch of typos breaking various utility shaders on GLES
...
Fixes white shadows in FF-Type 0 on Tegra, as mentioned in #6268
2014-06-09 19:15:45 +02:00
Sacha
e57ae29e4a
Symbian: Switch to GCC 4.7.3. Blackberry: Switch to GCC 4.8.2
2014-06-09 23:49:30 +10:00
Henrik Rydgård
8bef7c64b1
Merge pull request #6262 from unknownbrackets/framebuf-estimate
...
Assume 512 tall framebuffers are wrong too
2014-06-09 13:02:57 +02:00
Unknown W. Brackets
f801123849
Correct some depal format reporting.
2014-06-08 23:28:55 -07:00
Unknown W. Brackets
1bd44fd4e2
Typo.
2014-06-08 23:21:16 -07:00
Unknown W. Brackets
63e0d47de6
Report unsupported RGB and a/stencil masks.
2014-06-08 22:45:59 -07:00
Unknown W. Brackets
3884550c7b
Remove a few TODOs that aren't relevant anymore.
2014-06-08 22:35:48 -07:00
Unknown W. Brackets
375bc34c4b
Skip direct blocktransfer draw in buffered.
...
It isn't needed anymore, and causes glitches in Tales of Phantasia X.
2014-06-08 17:30:51 -07:00
Unknown W. Brackets
125a440e71
Try scissor/region height if viewport is == 512.
...
Fixes Tales of Phantasia X menu in towns, where it uses a 480 tall
framebuffer but specifies a 512 tall viewport.
2014-06-08 17:30:51 -07:00
Unknown W. Brackets
5fd0adcb6a
Fix framebuf blit on resize.
2014-06-08 17:30:50 -07:00
Unknown W. Brackets
fdf15cf05f
Fix intra-buffer blit at non-1x resolutions.
...
Oops.
2014-06-08 16:26:47 -07:00
Henrik Rydgård
019757a2b8
Merge pull request #6260 from unknownbrackets/gpu-blocktransfer
...
Fix block transfer download with bpp mismatch
2014-06-09 00:15:25 +02:00
Unknown W. Brackets
3a0cce575c
Fix block transfer download with bpp mismatch.
...
Pretty sure this will take care of #6258 .
2014-06-08 15:05:10 -07:00
Henrik Rydgård
89667a870b
Merge pull request #6259 from unknownbrackets/fbtex-offset
...
Apply byte offset when using rendered textures
2014-06-08 23:34:22 +02:00
Unknown W. Brackets
b163ab9203
Use an extra shader id bit to skip offsetting.
...
Since the vast majority of the time it will be 0.
2014-06-08 14:28:18 -07:00
Unknown W. Brackets
865941a66d
Ignore needShaderTexClamp when not texmapping.
2014-06-08 14:27:57 -07:00
Unknown W. Brackets
acab898be0
Keep track of x/y offset for render-to-tex.
...
Fixes intro in Valkyrie Profile now that we're wrapping correctly.
2014-06-08 14:27:05 -07:00
Henrik Rydgard
9c799b773d
Don't use glTexStorage2D, see issue #6075
...
Probably didn't help much anyway.
2014-06-08 18:36:18 +02:00
Henrik Rydgård
fe58f8daa9
Merge pull request #6254 from unknownbrackets/framebuf-clamp
...
Correct framebuf clamping, tex projection from framebuf
2014-06-08 11:22:38 +02:00
Henrik Rydgård
be02ea7769
Merge pull request #6255 from unknownbrackets/gpu-blocktransfer
...
Enable "simulate block transfer" by default
2014-06-08 11:15:22 +02:00
Henrik Rydgard
4b9823c0ea
Let's see if there are any remaining fog INF/NAN issues out there
2014-06-08 11:06:34 +02:00
Unknown W. Brackets
4effd15fcb
Support Grand Knight History's line-by-line xfer.
...
This is a bit hacky, but what it's doing at least makes sense enough to
heuristically detect. Still trying to avoid misdetecting God of War.
2014-06-07 23:59:34 -07:00
Unknown W. Brackets
3f8ef6dacd
Ensure stride in bytes matches FBO up/download.
...
Even if we should do the copy, we'll currntly use the wrong x/y/w/h.
This fixes incorrect uploads in God of War, which hurt performance a lot.
Unfortunately, in this game there's zero information to tell us the right
size of some small temp framebuffers it uses, so we overestimate their
sizes and the block transfer appears to fall into range.
2014-06-07 22:40:41 -07:00
Unknown W. Brackets
ed39bb7a9c
When projecting textures, flip V in frag shader.
...
Slower, but this way we actually project correctly.
2014-06-07 19:32:19 -07:00
Unknown W. Brackets
da438b7c68
Fix clamping to the correct texel.
...
This fixes things when edges bleed in from a larger framebuffer. We need
to clamp to the internal texels of the range.
2014-06-07 19:30:46 -07:00
Unknown W. Brackets
7226aad903
Don't allow the buf name cache to get too full.
2014-06-07 16:28:24 -07:00
Unknown W. Brackets
5f521bcfb0
Reuse buffer objects when possible.
...
glBufferData() recreates anyway.
2014-06-07 16:20:12 -07:00
Unknown W. Brackets
4971206e92
Allocate vertexcache buffer names in chunks.
...
Partially implements #6045 .
2014-06-07 16:15:37 -07:00
Unknown W. Brackets
0896c3412d
Allocate textures names in blocks.
...
May improve performance slightly when loading or recycling textures.
Probably uploading the texture is bigger anyway.
2014-06-07 16:13:53 -07:00
Unknown W. Brackets
33b4cc2bcc
Apply clamp and wrap to tex projection as well.
...
Not sure if this is the correct method or not, since it doesn't really
work properly right now.
2014-06-07 14:19:53 -07:00
Unknown W. Brackets
cc841bbe4c
Apply tex wrap/clamp in shader for render-to-tex.
...
Fixes graphical artifacts in Wild Arms XF (which depends on how you get
there, because it's based on the size of the framebuffer.)
2014-06-07 13:13:58 -07:00
Unknown W. Brackets
a53f165c06
Oops, update render size when resizing down too.
...
Hopefully #6247 .
2014-06-07 06:26:03 -07:00
Unknown W. Brackets
d8e98786f7
Oops, fix logging on FBO creation.
2014-06-07 01:35:39 -07:00
Unknown W. Brackets
cda98334f8
Fix some crashes when switching rendering mode.
2014-06-07 00:52:58 -07:00
Henrik Rydgård
2696710dbd
Merge pull request #6245 from unknownbrackets/gpu-minor
...
Support displaying from an offset in a framebuf
2014-06-07 09:25:29 +02:00
Unknown W. Brackets
2a2935003d
Oops, fix stencil upload at non-1x resolutions.
2014-06-07 00:18:49 -07:00
Unknown W. Brackets
0bbeab28ec
Verify fbo exists when copying depth.
...
Should fix #5343 based on stack trace.
2014-06-06 22:35:34 -07:00
Unknown W. Brackets
7a299fb1f2
Avoid displaying a wrong-format framebuf.
2014-06-06 21:11:58 -07:00
Unknown W. Brackets
8ec87040df
Detect staggered/interleaved rendering.
...
Not sure why you'd do this, maybe to simultaneously render? Should help
the Silent Hill games which seem to do this.
2014-06-06 21:08:14 -07:00
Unknown W. Brackets
8d1b3ae7aa
Fix a vertexdec crash from the ge debugger.
2014-06-06 21:06:29 -07:00
Unknown W. Brackets
171629ba48
Separate fbo resize logic from creation.
2014-06-06 20:54:16 -07:00
Henrik Rydgård
96787a95d7
Merge pull request #6239 from unknownbrackets/bof3-workaround
...
Try to workaround Breath of Fire 3's render-to-tex
2014-06-06 20:42:13 +02:00
Unknown W. Brackets
48d0b8fb0b
Fix a crash in non-buffered rendering.
2014-06-06 10:28:18 -07:00
Unknown W. Brackets
3d8f078b6c
Try to workaround Breath of Fire 3's render-to-tex.
...
It renders to two areas but textures with a high V to reach the second
texture. We've been wrapping the V around but this may show the right
buffer.
2014-06-06 00:28:12 -07:00
Henrik Rydgard
a64fe6324a
Remove report I don't think we need anymore
2014-06-05 21:18:08 +02:00
Unknown W. Brackets
5ab416981c
Ignore vfb->format for older display buffers.
...
Fixes video in Tales of Phantasia X.
2014-06-05 00:29:32 -07:00
Unknown W. Brackets
115b959ef7
Stop clearing the buffer after blitting to it.
...
This only appeared to work because destroying an fbo unbinds the active
one.
2014-06-05 00:29:04 -07:00
Unknown W. Brackets
42eb4c978a
Support block transfer bpp mismatch on gles2.
...
When we don't have GLES2.
2014-06-05 00:14:31 -07:00
Unknown W. Brackets
eda5d785fa
Don't rebind if there's nothing to rebind.
2014-06-04 00:58:44 -07:00
Unknown W. Brackets
d111a8d3ff
Remove video size hack when uploading fb data.
...
Seems like this was only helping because we were stretching some
framebuffers before, it only causes problems now.
2014-06-04 00:21:52 -07:00
Unknown W. Brackets
e67c2e7328
No need to report this anymore, hopefully.
2014-06-03 22:54:36 -07:00
Unknown W. Brackets
7839f39c13
Allow block xfer upload when using read fb to mem.
2014-06-03 22:52:32 -07:00
Unknown W. Brackets
8b46faed50
Implement intra-buffer block transfer.
2014-06-03 22:51:16 -07:00
Unknown W. Brackets
fcb70a00b3
Fix incorrect scale in fbo download.
...
This caused some videos and scenes to show at the wrong resolution.
2014-06-03 22:29:42 -07:00
Unknown W. Brackets
b9652c2112
Ignore sizes with unreasonable heights.
...
God of War sets region to 1024x1024, but doesn't draw in that whole space.
2014-06-03 07:52:05 -07:00
Henrik Rydgård
e6d3a9c1b6
Merge pull request #6211 from unknownbrackets/framebuf-estimate
...
Another attempt at framebuffer size estimate changes
2014-06-03 10:50:21 +02:00
Unknown W. Brackets
238bdce2b8
Detect if framebuffer clut uses alpha.
...
It's not a perfect check but it may allow skipping alphatests sometimes.
2014-06-03 01:06:02 -07:00
Unknown W. Brackets
bf788e278d
Change CheckAlpha() to apply to any pixel data.
...
For example, cluts. But not yet, just changing it here.
2014-06-03 00:59:34 -07:00
Unknown W. Brackets
a18eceac71
Don't skip alpha in 565/clut framebuffers textures.
2014-06-03 00:45:15 -07:00
Unknown W. Brackets
b069462bea
Relax display buffer / GetVfbAt() requirements.
...
Castlevania actually uses a display buffer of 420, it seems. Since we no
longer allow multiple FBOs at the same address, this should be safe.
2014-06-02 22:51:37 -07:00
Unknown W. Brackets
304d372f48
When clamping height to 512, try region/scissor.
2014-06-02 21:46:22 -07:00
Unknown W. Brackets
78c83e122d
Force 481x273 to 480x272, it's seen in a few games.
2014-06-01 23:47:37 -07:00
Unknown W. Brackets
3021640897
Correct widths in stencil upload too.
2014-06-01 21:24:33 -07:00
Unknown W. Brackets
c2ccfd5629
Stop stretching things to the FBO size.
...
Instead, draw in the top corner. This way, even if framebuffers get
smaller things stay consistent.
2014-06-01 21:20:04 -07:00
Sacha
319c0efcb2
Remove MAY_HAVE_GLES3
2014-06-02 12:08:49 +10:00
Unknown W. Brackets
cfb21707b6
Take the tallest estimate, scissor may be short.
...
Even if it's wider but short, it should not reduce the height of the
buffer.
2014-06-01 18:45:25 -07:00
Unknown W. Brackets
d64d2afcb3
Don't allow a zero framebuf stride in estimation.
2014-06-01 18:45:03 -07:00
Unknown W. Brackets
a351a42041
Cleanup some old comments/code.
2014-06-01 14:00:58 -07:00
Unknown W. Brackets
d03397f056
Blit framebuf contents when resizing.
...
This avoids a blink when sizing up.
2014-06-01 13:53:34 -07:00
Unknown W. Brackets
32439bc006
Recreate framebuffers when they get bigger.
...
To avoid cases where they remain too small, and to make sure size always
matches up sanely.
2014-06-01 13:53:27 -07:00
Unknown W. Brackets
73234941e1
Consider stride more when determining fb size.
2014-06-01 13:50:37 -07:00
Unknown W. Brackets
003f20c694
Allow scissor, but not depthtest during glClear().
...
Improves #6210 .
2014-06-01 10:34:57 -07:00
Unknown W. Brackets
111b624000
Oops, this will give the right alpha of course.
...
Although it may not be exactly the same for 4444/5551.
2014-06-01 10:26:41 -07:00
Unknown W. Brackets
c79d0a2e3c
Correct alpha in stencil upload, avoid blending.
...
Docs say blending is slower than masking, makes sense.
2014-06-01 08:47:53 -07:00
Henrik Rydgård
0c7c736522
Merge pull request #6205 from unknownbrackets/replace-funcs
...
Initial replacement for Star Ocean's stencil upload
2014-06-01 12:22:11 +02:00
Henrik Rydgård
3c521c3f88
Merge pull request #6209 from unknownbrackets/gpu-blocktransfer
...
Also check for x offsets within block transfers
2014-06-01 12:10:07 +02:00
Unknown W. Brackets
bc618fdb6c
Also check for x offsets within block transfers.
...
Grand Knights History does these too, not just y offsets. Why does it
bother when block transfer let's you specify the coordinates so exactly?
2014-06-01 02:33:44 -07:00
Unknown W. Brackets
68e5be9381
Doesn't look like these need to use depth/stencil.
...
May save a bit of VRAM/RAM.
2014-06-01 01:03:44 -07:00
Unknown W. Brackets
3e8442c371
Decimate temporary FBOs after not being used.
2014-06-01 01:03:43 -07:00
Unknown W. Brackets
0846673dc3
Track temporary-use FBOs all in FramebufferManager.
...
This way it's easier to manage their lifecycle.
2014-06-01 01:03:43 -07:00
Unknown W. Brackets
4195eac04f
Get rid of depalFBOs when overwriting textures.
...
Just in case they are not always used as framebuffers. We set to 0 later
anyway.
2014-06-01 01:03:04 -07:00
Unknown W. Brackets
4461c7e3c4
Oops, remove an old wrong comment.
2014-05-31 22:07:43 -07:00
Unknown W. Brackets
097ab53952
Enable the glClear() optimization.
...
It seems to help and so far have not noticed any problems.
2014-05-31 22:07:42 -07:00
Unknown W. Brackets
580143e5e2
Disable vertex arrays before depal as well.
2014-05-31 22:07:42 -07:00
Unknown W. Brackets
e109a547ae
Disable vertex arrays not in use.
2014-05-31 22:07:41 -07:00