Commit graph

32 commits

Author SHA1 Message Date
Henrik Rydgård
ea552bc573 Add a new GPU stat (DrawPixels), kinda heavy since creates textures. GoW does 20-ish per frame. 2023-05-30 10:15:34 +02:00
Henrik Rydgård
ad8827ae70 Cleanup, address feedback 2023-05-26 10:28:10 +02:00
Henrik Rydgård
80e47b7bd3 Only dirty the uniform UVSCALEOFFSET when really needed
Broken out from #17479

With OpenGL, greatly reduces the amount of glUniform4fv calls in many games (and
similar in the other backends).
2023-05-25 15:00:57 +02:00
Henrik Rydgård
7178c0cd42 Restore fragmentshader ID flags double and texalpha. Add a ubershader mode that uses dynamic state. 2023-05-25 10:19:01 +02:00
Henrik Rydgård
0babac5c5f Manually revert "Remove LM flag from vshader too" (#16718)
Reverts #16718

Though maybe we can keep this one? Let's see.
2023-05-09 18:44:18 +02:00
Henrik Rydgård
f42c682d34 Revert "Merge pull request #16628 from hrydgard/remove-fog-fshader-flag"
This reverts commit 10dee90c83, reversing
changes made to 34c11c8acf.
2023-05-08 22:01:38 +02:00
Henrik Rydgård
ff72203a06 Remove now-redundant check, add a TODO 2023-05-05 23:46:19 +02:00
Henrik Rydgård
640c4fe9e1 GPU: Remove JumpFast/CallFast. They only avoid a very quick check and not worth the unsafety. 2023-05-05 23:44:19 +02:00
Henrik Rydgård
4e41233bb7 Replacement: Save textures even if already replaced, if the png is missing.
Fixes #17182

Not exactly sure what behavior we really want, but I think this one is
OK, and at least more similar to the old one. Now we save
already-replaced textures if the named replacement texture is missing, and there
isn't already a hash-named one in new or the "root".
2023-03-27 15:43:18 +02:00
Henrik Rydgård
b13c5c2d1b Add compat setting to force using maximum depth resolution
Fixes #17014

Even if our depth-testing-equal heuristic believes that the game needs
lower depth resolution.

This removes some depth-fighting artifacts (that are present on the real
PSP, but nice to avoid) in Outrun, Split/Second and Cars: Race-o-Rama -
essentially reverting these to the behavior we had before the heuristic.

(The heuristic is good though - it means less compat.ini hacks going in
the other direction).

In the case of Outrun, this relies on two passes that pass exactly the
same vertex coordinates twice resulting in the exact same final
geometry. This is actually guaranteed by the spec if the vertex math is
exactly the same and "invariant" is set on the position output, though
I guess you never know.. Haven't seen any issues at least.

Also sneak in disabling some validation messages from using extra Vulkan
validation layers other than the default.
2023-03-26 00:27:58 +01:00
Henrik Rydgård
06b83115a5 Replacer: Avoid tracking video textures 2023-03-10 12:20:55 +01:00
Henrik Rydgård
7a7117f2f7 Cache framebuffer copies (for self-texturing) until the next TexFlush instruction.
Fixes #17030 , or at least improves on it - for optimal performance that
big framebuffer used for bloom should be split like in Killzone, but it's not trivial.

The regression in 1.14 is fixed with this, at least.

I tried it with a few other games with no issues - it seems games are
using TexFlush when needed. But let's see if it really is safe to rely
on that...

There might also be other places we should call DiscardFramebufferCopy
in.
2023-03-01 22:42:22 +01:00
Henrik Rydgård
b3ce31c61e Address feedback 2023-02-26 19:54:30 +01:00
Henrik Rydgård
72bed6f2b5 Some DeviceLost/DeviceRestore cleanup 2023-02-26 11:05:52 +01:00
Henrik Rydgård
231f4efbbb Move some more stuff to GPUCommonHW 2023-02-26 10:33:11 +01:00
Henrik Rydgård
4c45f8a4b0 Pass in draw directly in GPUCommon::DeviceRestore, instead of awkwardly fetching it 2023-02-25 23:04:27 +01:00
Henrik Rydgård
c3ceb9bf70 Move assorted debug functions and similar to GPUCommonHW 2023-02-25 19:23:07 +01:00
Henrik Rydgård
807d40e095 Move the matrix loading exec functions too 2023-02-25 19:23:07 +01:00
Henrik Rydgård
8520e1dec5 Move SetDisplayFramebuffer to GPUCommonHW 2023-02-25 19:23:07 +01:00
Henrik Rydgård
71ed265c57 Move sawExactEqualDepth to GPUCommonHW 2023-02-25 19:23:07 +01:00
Henrik Rydgård
bcd38bc9e8 Move some more commands to GPUCommonHW. Get rid of ugly cast. 2023-02-25 19:23:07 +01:00
Henrik Rydgård
d22a22569a Move the drawing commands to GPUCommonHW 2023-02-25 19:23:07 +01:00
Henrik Rydgård
8fb75e0c12 Unify most of the DebugGetShader* functions 2023-02-25 16:42:09 +01:00
Henrik Rydgård
7bcc21b0e3 Move msaaLevel_ to GPUCommonHW 2023-02-25 16:27:00 +01:00
Henrik Rydgård
8b54a14bf2 Move the big command table to where it belongs, GPUCommonHW 2023-02-25 16:20:34 +01:00
Henrik Rydgård
9d6c3c329e Move CheckGPUFeatures() to GPUCommonHW 2023-02-25 16:13:54 +01:00
Henrik Rydgård
8ba665e258 More unification work 2023-02-25 16:12:24 +01:00
Henrik Rydgård
c74f5b2189 Prepare for unifying more stuff 2023-02-25 16:01:32 +01:00
Henrik Rydgård
e136ad795a Some slight unification 2023-02-25 15:15:34 +01:00
Henrik Rydgård
9e8f1d3cb3 Make the DoState stuff less ugly 2023-02-25 14:42:15 +01:00
Henrik Rydgård
285ffbaa52 Unify CopyDisplayToOutput 2023-02-25 14:42:15 +01:00
Henrik Rydgård
18999c3687 Create the GPUCommonHW class. 2023-02-25 14:42:10 +01:00