Commit graph

137 commits

Author SHA1 Message Date
Henrik Rydgård
064f2b6d01 Add some ONCE-reporting of multiple candidate situations 2020-08-31 09:42:15 +02:00
Henrik Rydgård
4252036d89 Apply the scoring model when creating/updating framebuffers too.
Reuses the same mechanism.

This is the second part of the Test Drive fix.
2020-08-30 16:21:56 +02:00
Henrik Rydgård
a70ea98475 Switch framebuffer matching to a scoring model. 2020-08-30 16:21:56 +02:00
Henrik Rydgård
e9ff037e91 Extract AttachFramebufferToEntry function 2020-08-30 16:21:56 +02:00
Henrik Rydgård
41fe6f9e12 Delete an unused buffer, saving 0.5MB of RAM. 2020-08-28 10:38:00 +02:00
Henrik Rydgård
13552550bc
Merge pull request #13330 from unknownbrackets/gpu-clear
TexCache: Force recreate texture on detach
2020-08-24 07:24:04 +02:00
Unknown W. Brackets
f44717c4f5 TexCache: Force recreate texture on detach.
We could have multiple detaches, and we delete the texture on attach, so
we really must make sure we recreate.

Fixes #13320.
2020-08-23 21:29:53 -07:00
Henrik Rydgård
055588c1a1 Framebuffer manager refactor step 1: Split ApplyFramebuffer into Match and Apply steps.
This should have no change in behavior, but prepares the ground for the
next steps. Want this merged separately.
2020-08-24 00:01:02 +02:00
Henrik Rydgård
35c5308c30 Framebuffer matching: Don't try to match depth buffers with color if the swizzle bits don't indicate it.
Fixes God of War issue reported in a comment of #13317.
2020-08-23 22:11:18 +02:00
Henrik Rydgård
48ba304a4a Minor logging improvements 2020-08-10 20:17:01 +02:00
Henrik Rydgård
0aa2ceb372 Address feedback 2020-08-10 09:16:28 +02:00
Henrik Rydgård
ba0d04a142 Vulkan: Implement depth texturing through depal. 2020-08-09 20:31:04 +02:00
Henrik Rydgård
c24dad2ac4 Logging improvement 2020-08-06 14:33:29 +02:00
Henrik Rydgård
8e1caadb48 Remove some unnecessary reporting. 2020-08-06 10:20:27 +02:00
Henrik Rydgård
09e300e646 Be a little more aggressive discarding non matching framebuffers when texturing. Enable create framebuffer from copy, fixing #12345 2020-08-04 14:51:37 +02:00
Henrik Rydgård
58ef0c8e80 Texture from framebuffer: Logging improvements 2020-08-04 14:45:14 +02:00
Henrik Rydgård
d57edfbdac Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency 2020-08-03 23:17:22 +02:00
Henrik Rydgård
c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Unknown W. Brackets
7024a2877d GPU: Take A off RGB565 conversion funcs. 2020-05-13 18:17:58 -07:00
Unknown W. Brackets
884a64b932 GPU: Cleanup skip buffer texture draws.
These will be used when a game does multiple transfers from RAM to the
screen, rather than one big one.  Wasn't clearing some state, though.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
16e47f6333 GPU: Calc framebuf offset with right params.
It has nothing to do with the target or source framebuf, oops.
2020-05-07 23:22:51 -07:00
Unknown W. Brackets
48980d8786 GLES: Simplify the framebuf offset detection.
It's clearly not been understood well as changes were made, so let's dump
a bunch of comments on it.
2020-05-07 23:12:14 -07:00
Unknown W. Brackets
ad98609819 GPU: Use consistent buffered rendering state.
The setting can be changed in Qt and Windows between frames, so let's
track the current setting in most places.  This is everywhere fbman is
easily accessible.
2020-04-04 10:51:47 -07:00
Unknown W. Brackets
c7a27ed9af GPU: Fix memory corruption with bufw > w.
Seen for example in Mecho Wars.
2020-03-19 20:56:02 -07:00
Henrik Rydgård
9c4649d3ac Assorted cleanup 2019-09-27 23:25:30 +02:00
Henrik Rydgård
2f26297062 Clean up some more ifdefs 2019-05-10 23:25:57 +02:00
driver1998
5072584781 Fix neon headers for MSVC ARM64
MSVC uses arm64_neon.h for ARM64, arm_neon.h is ARM32 only.
2019-05-04 22:45:15 +08:00
Henrik Rydgård
15f2e48887 Only mask away Z mirrors if inside VRAM 2018-11-12 08:19:19 +01:00
Henrik Rydgård
d8f4a70396 Remove constraint that virtual framebuffers have to represent VRAM.
Prerequisite for #11531, virtual readbacks.
2018-11-12 08:19:14 +01:00
Unknown W. Brackets
a4c0640f01 GE Debugger: Factor out host calls some.
Moving more of this to cross platform for the web debugger.
2018-09-01 08:32:03 -07:00
Unknown W. Brackets
00daa00ae5 TexCache: Keep maxSeenV on clut variants in sync.
This ensures that we detect changes properly even when they are outside
the max V used with one CLUT.

Fixes #9355, enemy fade out in FF2.
2018-08-29 22:07:27 -07:00
Unknown W. Brackets
3f48e446b6 GPU: Fix texture handling on framebuf detach.
We were never creating/recreating the texture, so we ended up with null.
Caused all sorts of problems.
2018-08-25 09:57:37 -07:00
Unknown W. Brackets
fd183715ec Vulkan: Decimate when there are many slabs.
This helps avoid one little texture holding onto a whole slab.

Won't change behavior when they are full, since then the cacheSizeEstimate
should be fairly high.
2018-04-06 21:42:32 -07:00
Henrik Rydgård
c41273d333 When binding a framebuffer to a texcache entry, delete its texture. Should help #10823 2018-03-29 13:29:09 +02:00
Henrik Rydgård
f967e206b8 Remove the last remains of the idea that textures can be efficiently updated instead of recreated. Accidentally fixes #10697 somehow.
Also this is good for terminology, no more confusion with the texture
replacement facility :)
2018-03-25 10:50:37 +02:00
Unknown W. Brackets
e97046da4e TexCache: Decimate aggressively with many variants.
It should be safe to decimate after fewer frames with a threshold like
this.
2018-02-18 12:29:14 -08:00
Unknown W. Brackets
d61fd5f6a6 TexCache: Decimate CLUT variants more often.
When creating a new texture, we determine if it has CLUT variants and
decimate more often.
2018-02-18 12:29:01 -08:00
Henrik Rydgård
46e1fbb788 Initial texture work. Bugfix indexed drawing 2018-01-27 15:10:17 +01:00
Henrik Rydgård
bd6818198a More GLRenderManager 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
267b9a6598 Profiler: Separately track texture hashing.
Since it's slow and was lumped into updatestate.
2017-12-30 10:14:35 -08:00
Unknown W. Brackets
025a806ab4 GPU: Remove FBO auto-download hack.
See #6261.  This should be replaced now with block transfer detection,
which is faster and doesn't cause crashes.

Games that previously required this setting should use block transfer
instead.  If that doesn't work, it's a bug.
2017-12-25 11:17:59 -08:00
Henrik Rydgård
5c1dad9909 Remove more obsolete ifdefs 2017-12-19 17:59:00 +01:00
Henrik Rydgård
299cb007c2 Add a comment, revert a reporting change. 2017-12-10 02:05:25 +01:00
Henrik Rydgård
b75c8b72c6 Fix another little inconsistency (two uniforms were merged for bad reasons) 2017-12-07 21:39:09 +01:00
Henrik Rydgård
9468b3d073 Add a missing break that would explain the odd AUTO mipmap test results on D3D11 and Vulkan... 2017-11-21 15:18:31 +01:00
Henrik Rydgård
7ab6956828 The UNKNOWN(3) mip selection mode seems to act like CONST. Keep that working. 2017-11-20 12:39:01 +01:00
Henrik Rydgård
971995fa3d Move aniso to the sampler cache key. 2017-11-15 19:07:41 +01:00
Henrik Rydgård
909fb6b3a4 Cleanups 2017-11-15 16:31:17 +01:00
Henrik Rydgård
313223364c Buildfix, update comments slightly 2017-11-15 14:21:17 +01:00
Henrik Rydgård
65275c29b7 Share UpdateSamplingParams between D3D11 and Vulkan. Support lod bias in Vulkan. 2017-11-15 14:21:17 +01:00