Commit Graph

6945 Commits

Author SHA1 Message Date
Henrik Rydgård
eb765a80f8
Merge pull request #15411 from unknownbrackets/softgpu-range
softgpu: Apply region x2/y2 as a scissor
2022-02-20 21:42:00 +01:00
Unknown W. Brackets
1d0936ea79 Debugger: Improve drawing range in softgpu.
We don't always want all of region, particularly if scissor is a regular
screen size.  This improves debugging in GoW.
2022-02-20 12:21:48 -08:00
Unknown W. Brackets
e3aabdc86c softgpu: Use region as a second scissor.
It's effectively a scissor in the common case of REGION1 being zero.
2022-02-20 12:01:35 -08:00
Unknown W. Brackets
ff5edb2bbc softgpu: Correct accounting for pixel center.
Filtering is still not perfect but this makes different orientations
better.
2022-02-20 10:50:59 -08:00
Unknown W. Brackets
df1a91ee25 samplerjit: Correct nearest negative texture clamp.
Was not clamping to zero when negative.
2022-02-20 10:25:00 -08:00
Unknown W. Brackets
e1eb4ba94a softgpu: Directly implement rectangle drawing. 2022-02-20 09:58:01 -08:00
Unknown W. Brackets
cc6491342e softgpu: Prepare dedicated rectangle path.
We're still sometimes using the slow rect-as-triangles path, let's do
something faster.  As a first step, just handle binning.
2022-02-20 09:38:51 -08:00
Unknown W. Brackets
6737d69f0a softgpu: Cleanup some now unused state. 2022-02-20 09:19:48 -08:00
Unknown W. Brackets
a88c9a0680 softgpu: Remove incorrect offsetting for X/Y. 2022-02-20 09:13:20 -08:00
Unknown W. Brackets
1bc3acf2ed softgpu: Use a const for subpixel screenpos factor. 2022-02-19 21:03:49 -08:00
Unknown W. Brackets
a66377fdf1 softgpu: Remove offset from screenpos.
This simplifies tighter calculations, and reduces the common magnitudes
we'll be dealing with.
2022-02-19 20:38:44 -08:00
Unknown W. Brackets
ad18833a4f samplerjit: Fix non-SSE4 bugs in jit. 2022-02-15 20:13:38 -08:00
Unknown W. Brackets
71e855a822 GE Debugger: Track last gstate on stepping. 2022-02-13 10:22:59 -08:00
Henrik Rydgård
df1a15938d
Merge pull request #15399 from unknownbrackets/softgpu-vertices
Convert more verts to rects, fix strip/fan skew on clip
2022-02-13 15:28:16 +01:00
Henrik Rydgård
83318c55b3
Merge pull request #15400 from unknownbrackets/softgpu-frameskip
softgpu: Track dirty vs really dirty per buffer
2022-02-13 15:26:21 +01:00
Unknown W. Brackets
7cef06c191 softgpu: Track dirty vs really dirty per buffer.
When games draw and display with a frame lag, it becomes important that we
indicate really dirty for the correct buffer.  Since some triple buffer,
this attempts to track at the buffer level using 1024 byte granularity.
2022-02-12 15:27:18 -08:00
Unknown W. Brackets
3d4c1548b6 softgpu: Allow tri -> rect in transform. 2022-02-12 12:03:55 -08:00
Unknown W. Brackets
259b10d42a softgpu: Turn more tri strips into rects.
This catches a common case in Valkyrie Profile.
Rotation is resolved by just always using tl/br.
2022-02-12 11:33:42 -08:00
Unknown W. Brackets
2381f355c2 softgpu: Combine tris to rects with ignored z too. 2022-02-12 11:33:36 -08:00
Unknown W. Brackets
85cb4101dc softgpu: Cleanup todos on perspective correctness.
Only the texture appears to be perspective corrected.  Color is simply
linear.
2022-02-12 10:55:53 -08:00
Unknown W. Brackets
8e7bc80e4b softgpu: Avoid modifying source vertex data.
This was dangerous for strips and fans, which reuse the verts for
subsequent primitives.
2022-02-12 10:39:25 -08:00
Unknown W. Brackets
0e4daa05b9 GE Debugger: Avoid crash on Step Draw with flush.
If we're already stepping, we shouldn't try to re-enter stepping.
2022-02-10 21:44:41 -08:00
Unknown W. Brackets
f17f6465ac GE Debugger: Optimize slab lookup.
If the slab is the last one, we can grab it right away.
2022-02-07 23:55:10 -08:00
Unknown W. Brackets
da4206b078 GE Debugger: Skip overhead without breakpoints.
In the common case that there's no breakpoints, we can skip most of the
checks and a call.
2022-02-07 23:54:18 -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
8418287a87 Vulkan: Avoid crash on double DeviceLost.
This caused Android to crash when switching to OpenGL, because the
destructor would try to deinit again.  There weren't any objects, but
draw_ was no longer valid.
2022-02-06 23:34:44 -08: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
Henrik Rydgård
1d4e90dc23
Merge pull request #15376 from unknownbrackets/debugger-playback
Improve GE debugger playback, changes, and breakpoint display
2022-02-06 17:13:59 +01: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
1d37f24e17 GE Debugger: Reduce playback command noise.
No need to reassert these values each prim.
2022-02-05 19:27:20 -08:00
Unknown W. Brackets
99d7703d33 samplerjit: Precalculate DXT1/3/5 offsets.
This improves WALL-E by 8% overall.
2022-02-05 13:04:17 -08:00
Unknown W. Brackets
c91b51c8e1 samplerjit: Reduce DXT5 decode code size a bit. 2022-02-03 20:42:34 -08:00
Henrik Rydgård
f58d4dfcfe
Merge pull request #15372 from unknownbrackets/bmi2
Optimize jits with a bit of BMI2
2022-02-01 09:43:35 +01:00
Unknown W. Brackets
c2dd59084d samplerjit: Optimize DXT calc using BMI2. 2022-02-01 00:18:56 -08:00
Unknown W. Brackets
3e4afe2a0c samplerjit: Avoid RCX gymanstics with BMI2. 2022-01-31 22:33:09 -08:00
Unknown W. Brackets
4cadcea6da samplerjit: Decode colors with BMI2.
This only happens with nearest, though, so very small benefit.
2022-01-31 22:05:34 -08:00
Unknown W. Brackets
367525f875 softjit: Use PEXT to downsample colors.
This gives between 1-2% in many games.
2022-01-31 21:40:54 -08:00
Unknown W. Brackets
10bf375712 softjit: Use BMI2 to speed up dst color loads.
This is about 1% overall gain in some games.
2022-01-31 21:27:51 -08:00
Unknown W. Brackets
ad43380ef6 softjit: Use BMI to simplify some masking. 2022-01-31 19:50:48 -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
2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08: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
Unknown W. Brackets
48b597a1b9 Display: Move core counters/stats to HW file.
This separates things better, so not everything is pulling in HLE.
2022-01-30 11:53:48 -08:00
Unknown W. Brackets
1b2cf52bfe samplerjit: Fix non-shared CLUT on Linux.
Oops, good that CI will catch this now - I've broken this more than once.
2022-01-29 22:20:46 -08:00
Unknown W. Brackets
a40d32d581 samplerjit: Validate compile in a unit test. 2022-01-29 20:31:18 -08:00
Unknown W. Brackets
26a8d498d7 samplerjit: Correct level lookup in nearest. 2022-01-29 20:29:43 -08:00