Commit Graph
962 Commits
Author SHA1 Message Date
Unknown W. Brackets f2bba34f84 softgpu: Combine memcpy into single. 2022-03-20 12:05:31 -07:00
Unknown W. Brackets 7389a36fad softgpu: Avoid unnecessary clearMode checks.
Already baked into the flag.
2022-03-20 12:05:31 -07:00
Unknown W. Brackets 374ccafa73 softgpu: Plug bad leak of bin queue data. 2022-03-13 13:34:37 -07:00
Unknown W. Brackets a3f682fc5a softgpu: Reduce memory usage on 32-bit. 2022-03-13 13:34:14 -07:00
Unknown W. Brackets e68b16af69 softgpu: Enure aligned bin queues.
On 32-bit, we still want these aligned to 16 bytes.
2022-03-13 13:33:19 -07:00
Unknown W. Brackets da4b9e82f3 softgpu: Fix build with basic logging. 2022-03-05 00:08:09 -08:00
Henrik RydgårdandGitHub 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
Henrik RydgårdandGitHub 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
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 80e054b797 Debugger: Avoid write tag lookup on small alloc. 2022-02-06 09:28:48 -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årdandGitHub 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
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 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
Unknown W. Brackets 3387ab1711 samplerjit: Fix reg corruption in DXT funcs.
We'd cache something in a reg, but it'd no longer be there.
2022-01-29 20:29:08 -08:00
Unknown W. Brackets d200ef40de samplerjit: Compile sampler funcs together.
We can't have the cache clear between nearest/linear, because then we'll
call a bunch of int3's.
2022-01-29 20:28:20 -08:00
Unknown W. Brackets 0d93200faf softjit: Add tests for compile success. 2022-01-29 18:47:36 -08:00
Unknown W. Brackets 3dde3efa9f softjit: Fix stencil bug running out of regs.
To apply the stencil test mask, we need another gen reg.
2022-01-29 18:31:40 -08:00
Unknown W. Brackets ce775af76d softgpu: Skip new CLUT if identical.
Games often reupload CLUT data that is already there, this skips some
copying later in the bin manager.
2022-01-29 12:55:34 -08:00
Unknown W. Brackets 5976cad797 samplerjit: Reduce register waste.
A few registers were allocated longer than needed, which made requiring
stack more likely.
2022-01-29 09:47:06 -08:00
Unknown W. Brackets eb70a90347 samplerjit: Avoid frac uv transfer to gen regs.
It should just stay in vec, this is more convenient anyway.
2022-01-28 23:50:54 -08:00
Henrik RydgårdandGitHub 54053b6b8b Merge pull request #15347 from unknownbrackets/samplerjit-opt
Improve samplerjit code a bit with mipmaps
2022-01-26 09:19:06 +01:00
Unknown W. Brackets e82b54e4b6 softgpu: Cull no-pos and through s8 pos verts.
Seems like these just don't draw anything, ever.
2022-01-25 19:29:11 -08:00
Unknown W. Brackets 61e30e8f8b softgpu: Fix cull in throughmode.
Was only an issue for triangles used to draw rectangles, but caused our
test to fail.

Also move a test that was failing due to an outdated prx to passing.
2022-01-25 19:07:33 -08:00