Unknown W. Brackets
757f10d47a
Oops, equation not func.
2014-08-24 10:24:29 -07:00
Unknown W. Brackets
90746fb5b2
Support INVERT with stencil alpha replacement.
2014-08-24 10:24:28 -07:00
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