Commit Graph

262 Commits

Author SHA1 Message Date
Henrik Rydgård
ecb84987ef Remove allocation from the heaviest MemBlockInfo path (BlockTransfer). Required some refactoring. 2022-09-01 11:59:35 +02:00
Henrik Rydgård
5f30c88e38 Merge pull request #15873 from unknownbrackets/softgpu-xfer-hazard
softgpu: Flush on transfer to pending tex read
2022-08-21 10:04:27 +02:00
Henrik Rydgård
5ad1301ee8 Merge pull request #15874 from unknownbrackets/softgpu-morph
softgpu: Correct morph weight updates
2022-08-21 10:03:47 +02:00
Unknown W. Brackets
e14ca87900 softgpu: Correct morph weight updates.
Broke LittleBigPlanet character's face, for example.
2022-08-21 00:27:31 -07:00
Unknown W. Brackets
88e8f95293 softgpu: Flush on transfer to pending tex read.
Potentially could use these for self-render, but so far we should be
detecting that so leaving it alone.
2022-08-20 23:22:21 -07:00
Unknown W. Brackets
3d52b445f1 softgpu: Restrict CLUT to proper size.
We had 15 KB more space than needed before.
2022-08-20 17:36:15 -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
e6403d7157 Split GetPointer into two versions, to help with const correctness 2022-07-24 13:26:19 +02:00
Unknown W. Brackets
b60b1e84b2 softgpu: Correct stencil debugging.
Fixes crashes in GE debugger when viewing stencil.
2022-05-08 14:26:25 -07:00
Unknown W. Brackets
f2bba34f84 softgpu: Combine memcpy into single. 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
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
6737d69f0a softgpu: Cleanup some now unused state. 2022-02-20 09:19:48 -08: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
80e054b797 Debugger: Avoid write tag lookup on small alloc. 2022-02-06 09:28: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
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
Henrik Rydgård
fbc965fb59 Merge pull request #15343 from unknownbrackets/gpu-region
GPU: Log and report when region1 is non-zero
2022-01-24 09:18:17 +01:00
Unknown W. Brackets
8efb99801e GPU: Log and report when region1 is non-zero. 2022-01-23 19:38:51 -08:00
Unknown W. Brackets
9ea5367a8c softgpu: Add dirty flags for rasterization state. 2022-01-23 08:08:41 -08:00
Unknown W. Brackets
a27da25cd6 softgpu: Use dirty flags for render overlap checks. 2022-01-23 08:08:40 -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
c0c3f7284a softgpu: Avoid flush texturing from stride.
This generally detects overlap more accurately using a dirty rectangles
approach.  Also detects render to self much more accurately, including
with depth.
2022-01-20 18:39:01 -08:00
Unknown W. Brackets
dec0ba7b79 softgpu: Flush framebuf only on change.
Sometimes games are reasserting the same framebuf, which was causing
unnecessary flushing.
2022-01-20 17:02:23 -08:00