Commit graph

638 commits

Author SHA1 Message Date
Henrik Rydgård
99404f0a15 Fix BlueToAlpha together with reinterpret. Add back fake reinterpret for now. 2022-08-24 14:40:37 +02:00
Henrik Rydgård
5d50d02227
Merge pull request #15894 from unknownbrackets/debugger
GE Debugger: Record only one flip if display framebuf not changed, step on vsync
2022-08-24 06:27:31 +02:00
Unknown W. Brackets
27d00199c8 GE Debugger: Fix bad read on step at start of VRAM. 2022-08-23 19:50:19 -07:00
Unknown W. Brackets
a901fa4315 GE Debugger: Add separate step based on vsync.
I think there were some games where this would step in the middle of a
frame, but not seeing it commonly now.  So make it the default, but allow
both methods in the menu.

Fixes #15893.
2022-08-23 19:48:34 -07:00
Unknown W. Brackets
c581a83896 GPU: Centralize SetDisplayFramebuffer(). 2022-08-23 19:29:06 -07:00
Unknown W. Brackets
86085335ca GE Debugger: Record 1 flip if no display calls.
Before we were waiting 4 flips before ending recording.
2022-08-23 19:20:14 -07:00
Henrik Rydgård
51686f4936 Copy color from overlapping framebuffers on bind, under certain conditions.
Leads to much faster performance in Juiced 2.

This will later be expanded to handle more things in a more elegant way,
like the framebuffer overlap in God of War for the shadows and
color reinterpretation in a generic way.

Fixes #15728
2022-08-22 16:06:55 +02:00
Henrik Rydgård
29ea3ffe0c Restore the clearing optimization, avoiding unnecessary depth copies 2022-08-20 09:46:15 +02:00
Henrik Rydgård
12db0e52d4 Fix deferred-depth for bezier/spline. Move updating of last_frame_depth_render to GPUCommon. 2022-08-20 08:29:33 +02:00
Henrik Rydgård
a0ac2dffc7 Defer depth copies until depth buffer is actually used.
Fixes
2022-08-20 08:29:33 +02:00
Henrik Rydgård
9f2447c0b4 Assorted minor cleanup 2022-08-16 10:55:44 +02:00
Unknown W. Brackets
710abcc288 GPU: Write stencil fail to alpha is RGB masked.
See #15813 (Hunter x Hunter) which does this for shadows.
2022-08-09 18:45:49 -07:00
Unknown W. Brackets
20c2ec1392 GPU: Skip alpha stencil upload when safe.
Otherwise, let's not do things that give different behavior at 1x or are
inconsistent.
2022-08-06 21:12:59 -07:00
Henrik Rydgård
41e327a66b Cleanup and testfixes 2022-08-03 13:34:59 +02:00
Henrik Rydgård
c158414858 Give the mip bias its own uniform flag. 2022-07-31 10:43:48 +02:00
Henrik Rydgård
0caaa74be9 Possible flicker fix for Macross 2022-07-31 10:43:48 +02:00
Henrik Rydgård
f061eadc04 Initial implementation of 3D texturing through equal-size mips (see #6357)
Vulkan-only currently, though all the other backends except ES 2.0
without GL_OES_texture_3d can support it with some work.
2022-07-31 10:43:47 +02:00
Unknown W. Brackets
1233d1d376 Reporting: Disable when debugger methods used.
This won't catch all means of hacking memory, but will catch some.
Trying to reduce noise in reporting from debugging.
2022-07-30 18:21:32 -07:00
Henrik Rydgård
89845eae7a Add GPU stat for number of depth copies per frame
Will be useful for evaluating #15700
2022-07-24 17:12:43 +02:00
Henrik Rydgård
e6403d7157 Split GetPointer into two versions, to help with const correctness 2022-07-24 13:26:19 +02:00
Unknown W. Brackets
c15c4a6967 UI: Add analog speed limit mapping.
Only shows up as a setting if mapped, to avoid cluttering settings.
2022-07-04 19:14:05 -07:00
Unknown W. Brackets
a60d27a4f3 GPU: Fix skip buffer effects rendering.
Broken by blue-to-alpha changes.  Without calling SetRenderFramebuffer, we
were never reconsidering the initial SKIPDRAW_NON_DISPLAYED_FB flag and
all drawing was getting skipped.
2022-05-22 12:24:03 -07:00
Henrik Rydgård
62808b89ef Fix discrepancy in how the LMODE flag is calculated between VS and FS 2022-05-03 00:06:42 +02:00
Henrik Rydgård
5868cf0f1c Convert the blueToAlpha bool to a usageFlag. KEEP instead of CLEAR for depth during reinterpret. 2022-04-30 18:17:29 +02:00
Henrik Rydgård
f5e519ed4b Oops, gotta update the cached framebuffer format in the other drawing paths too 2022-04-30 18:17:17 +02:00
Henrik Rydgård
462972f7ea Add option to redirect blue to alpha if 565 mode is rendered and mask is 0x0FFFFF.
This is used by several games to render to the alpha channel of RGBA4444
images, which cannot normally be done directly on the PSP.

Can be used as a far more efficient replacement for
ReinterpretFramebuffers/ShaderColorBitmask
2022-04-30 18:17:16 +02:00
Henrik Rydgård
7be86264d0 Move framebufFormat to gstate_c, so we can override it 2022-04-30 18:16:09 +02:00
Henrik Rydgård
1bbaba4103 Fix some NEON code that had bad compile-time checks (and some didn't compile) 2022-04-15 00:54:44 +02:00
Henrik Rydgård
a68ddd0a8d Merge separate NEON functions into the normal functions.
We no longer support non-NEON ARM.

It's nice also to have the NEON and SSE implementations "close" to each
other, easier to port optimizations back and forth etc.
2022-04-12 23:43:21 +02:00
Henrik Rydgård
d50da7dc55 Don't track small wide-stride block transfers 2022-03-08 19:46:00 +01:00
Unknown W. Brackets
539e2bbbf8 Debugger: Track unchanged VRAM to avoid copy.
See #15251, the framedump here reused a VRAM texture for many draws, and
this caused it to recopy the texture over and over again.  Use a flag to
skip if possible.
2022-02-20 13:51:40 -08:00
Henrik Rydgård
50350e13ac
Merge pull request #15378 from unknownbrackets/gedebugger-skip
GE Debugger: Add filter to skip prim calls
2022-02-07 08:52:57 +01:00
Unknown W. Brackets
c66619f7c9 GE Debugger: Add filter to skip prim calls.
This allows you to cut prims from the scene as desired.
2022-02-06 21:25:33 -08:00
Unknown W. Brackets
80e054b797 Debugger: Avoid write tag lookup on small alloc. 2022-02-06 09:28:48 -08:00
Unknown W. Brackets
459bb83c23 GE Debugger: Allow modify/breakpoint on matrix. 2022-02-06 00:16:35 -08:00
Unknown W. Brackets
4a8d320479 GE Debugger: Flush downcount when changing lists.
In case you step ahead or similar.
2022-02-05 19:27:25 -08:00
Unknown W. Brackets
be8c74cabe softgpu: Avoid flush on END.
We only, but always, flush when exiting list interp in FinishDeferred.
It's not necessary at END, and hurts for simple signals that don't stop
list processing.
2022-01-31 19:32:46 -08:00
Henrik Rydgård
2a82d392e3 Remove double flush in GE_CMD_END 2022-02-01 00:05:32 +01:00
Henrik Rydgård
6d31562ea7 GPUCommon: Remove misleading flag FLUSHBEFORE.
Fixes the new problem in #13967

Though of course doesn't fix the vertical lines.
2022-01-31 23:57:56 +01:00
Unknown W. Brackets
129a603832 Display: Account for stepping time in graphs.
Frame times should count that as sleep too.
2022-01-30 11:53:48 -08:00
Henrik Rydgård
1c18c172a1
Merge pull request #15339 from unknownbrackets/softgpu-flags
Use dirty flags for softgpu state updates
2022-01-24 09:17:37 +01:00
Unknown W. Brackets
511c822312 GPU: Allow relative jumps and calls.
These are tested in gpu/signals/jumps, so they ought to work.
Doesn't seem like games generally use them, though.
2022-01-23 23:03:30 -08:00
Unknown W. Brackets
76f9103e97 softgpu: Add a table and initial dirty flags.
Not actually using the dirty flags to skip state, but have moved to
Execute_* functions and everything else like other graphics backends.
2022-01-23 08:08:40 -08:00
Unknown W. Brackets
eb95b99523 GE Debugger: Add option to auto flush.
This makes it easier to see what's happening in each draw.
2022-01-22 13:12:59 -08:00
Unknown W. Brackets
0ad4502dd2 GPU: Fix bone matrix CALL opt corruption.
If the matrix number is high and we have extra CALLs, we can't load it
into the memory after the bone matrixes.
2022-01-01 16:40:01 -08:00
Unknown W. Brackets
7edfdd2cdd GPU: Rename pos/uv w for clarity. 2021-10-30 21:04:00 -07:00
Unknown W. Brackets
b4715e4d88 GPU: Correct w on immediate prim. 2021-10-30 21:01:07 -07:00
Henrik Rydgård
5dab9994b6 Bezier/Spline: Fix logical error (must flush buffered data before we modify submitType).
Should fix #14774
2021-09-07 23:52:06 +02:00
Henrik Rydgård
928bc88b01 Rename Unthrottle to Fast-forward globally 2021-08-18 09:28:13 +02:00
Unknown W. Brackets
8a8328c431 Common: Move ColorConv to a more appropriate place. 2021-05-01 11:20:05 -07:00