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
Henrik Rydgård
128e2fa14e
Merge pull request #15318 from unknownbrackets/softgpu-opt
...
softgpu: Heuristic to avoid over-draining
2022-01-17 07:43:34 +01:00
Unknown W. Brackets
206d586c1f
softgpu: Fix block transfer flush detection.
...
Fixes video graphics in Gods Eater Burst.
2022-01-16 21:40:19 -08:00
Unknown W. Brackets
423ec76258
softgpu: Correct texsize flush annotation.
2022-01-16 21:09:43 -08:00
Unknown W. Brackets
d95475e021
softgpu: Expose flush reasons/times in debug stats.
2022-01-16 11:27:42 -08:00
Unknown W. Brackets
7e5f03eed1
softgpu: Reduce flushing for smaller textures.
2022-01-16 08:23:52 -08:00
Unknown W. Brackets
86749a3fe0
softgpu: Flush block xfer only on overlap too.
2022-01-16 08:23:17 -08:00
Unknown W. Brackets
2de7993dc5
softgpu: Decorate some stats for flushes.
2022-01-16 08:23:15 -08:00
Unknown W. Brackets
cc155ec460
softgpu: Avoid texture/CLUT flush unless overlap.
...
Only need to flush here if there's some overlap in the target.
2022-01-16 08:22:13 -08:00
Unknown W. Brackets
d6fa301ab1
softgpu: Track CLUTs as states for binning.
...
This way we can have multiple CLUTs in process at once, which helps.
2022-01-16 08:14:09 -08:00
Unknown W. Brackets
18f2a45a6a
softgpu: Allow binning across prim calls.
2022-01-16 00:49:49 -08:00
Unknown W. Brackets
e82fd3bd33
GPU: Avoid spline crashes on bad data.
...
If we get 0 prims, we can generate confusing index bounds and go out of
bounds. Similarly, if we get a crazy number of control points and fail to
allocate, we can crash.
2022-01-01 16:40:59 -08:00
Unknown W. Brackets
2ef7dd6b03
softgpu: Correct tagging of vertexjit.
2021-11-25 19:21:56 -08:00
Unknown W. Brackets
09dc38080a
softgpu: Move draw pixel code to separate file.
...
This separates things better anyway. No major perf impact.
2021-11-21 08:23:32 -08:00
Unknown W. Brackets
3304814fd6
GPU: Minor cleanup duplicate header/conditions.
2021-05-08 09:12:22 -07:00
Unknown W. Brackets
de46b0998a
GPU: Correctly initialize HW tessellation support.
...
Oops, shouldn't call a virtual in a constructor.
2021-05-08 09:10:23 -07:00
Unknown W. Brackets
8a8328c431
Common: Move ColorConv to a more appropriate place.
2021-05-01 11:20:05 -07:00
Unknown W. Brackets
ee749804fc
Debugger: Note GPU block transfer src as well.
2021-04-03 18:11:44 -07:00
Unknown W. Brackets
f7740edc6d
Debugger: Add more metadata for memory usage.
2021-02-15 15:01:21 -08:00
Henrik Rydgård
3f01cbb98c
Initialize/Deinitialize the shader translation system once globally.
...
Fixes #13839 .
2021-01-04 23:51:34 +01:00
Unknown W. Brackets
ed65bc2327
SoftGPU: Allow rendering with no backend at all.
2021-01-02 09:25:41 -08:00
Unknown W. Brackets
6a2b3f8f78
SoftGPU: Update PPGe draw context.
...
Oops, this was missing.
2021-01-02 09:23:25 -08:00
Henrik Rydgård
32c9728c0c
Some cleanups in GL feature and shader language detection.
...
Gets rid of many wrong or bad checks for IsCoreContext.
2020-12-14 19:46:11 +01:00
Henrik Rydgård
766dbc5a9f
Move ShaderTranslation.cpp/h to Common/GPU.
2020-11-09 11:18:43 +01:00
Henrik Rydgård
03e8eac6ef
Merge the two ShaderLanguage enums.
2020-11-04 09:40:11 +01:00
Henrik Rydgård
b7d674411e
Test parsing of generated OpenGL shaders too (by using glslang).
2020-10-31 18:32:43 +01:00
Henrik Rydgård
0e3a84b4a8
Move most GPU things to Common.
...
It works after the move, on Windows and Android at least.
Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00