Commit Graph
58 Commits
Author SHA1 Message Date
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
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 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 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
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 3e4d768e7a softgpu: Pack vertexdata a bit better.
This reduces the BinItem size by 15%.
2022-01-19 23:17:09 -08:00
Unknown W. Brackets 12a4c63fc7 softgpu: Precompute state for vertex transform.
Doesn't help a ton, but with lots of verts can improve a percent or two.
2022-01-16 21:31:52 -08:00
Henrik RydgårdandGitHub bdc69f5171 Merge pull request #15317 from unknownbrackets/softgpu-lighting
softgpu: Precompute lighting parameters
2022-01-17 01:06:35 +01:00
Unknown W. Brackets 2797e035df softgpu: Precompute lighting parameters.
In many cases, games use lighting just for diffuse or something, this
helps skip what's not needed too.  Good improvement in a scene from a
Naruto game.
2022-01-16 11:27:53 -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 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 6896a7a64e softgpu: Use cached state for screen offset. 2022-01-15 18:20:25 -08:00
Unknown W. Brackets 02c5559393 softgpu: Remove z from DrawingCoords.
It's not really used much of anywhere, anyway.
2022-01-15 15:38:56 -08:00
Unknown W. Brackets f091225572 softgpu: Stop storing model pos.
We don't even use this anywhere else.  Also skip needless Lerp on clip.
2022-01-14 20:36:09 -08:00
Unknown W. Brackets d6a8cb2a0e softgpu: Stop storing normal/worldnormal/worldpos.
This is only needed for lighting, which is applied right away.

This improves perf just simply from less data being copied.
2022-01-14 20:32:18 -08:00
Unknown W. Brackets 5bb6245b1f softgpu: Fix leaked range flag on cull.
Fixes some backgrounds in Final Fantasy 4, probably others.
2021-11-14 08:43:52 -08:00
Unknown W. Brackets ac60e2ecd4 GPU: Track HW tess at start of frame too.
This also makes it so we don't force the setting off when you change
backends, and just ignore it if unsupported.
2020-04-04 11:52:32 -07:00
Unknown W. Brackets 8a7ec4fc19 GPU: Fix curve breakage due to cull flipping. 2018-12-16 13:00:36 -08:00
Henrik Rydgård 8f9e0b7fcc SoftGPU: Make sure transformunit.buf is properly aligned. Helps part of #9718 2017-05-24 10:20:10 +02:00
Unknown W. Brackets 8187927b9d SoftGPU: Use vertexjit for submitted primitives.
This uses the standard cache other rendering uses.

In Legend of Heroes 3, for example, this provides a 10% speed improvement.
2017-05-20 20:22:35 -07:00
Unknown W. Brackets 01076dd959 SoftGPU: Don't wrap negative positions.
Haven't fully verified this, but without this, Gods Eater Burst's bloom
doesn't work, since -1,-1 maps to 1023,1023 so everything is clipped.
2017-05-13 17:28:38 -07:00
Unknown W. Brackets 1666586869 SoftGPU: Implement CONTINUE prim type.
Matches tests (except 3D lines, which aren't implemented yet.)
2017-04-29 20:36:36 -07:00
Unknown W. Brackets 1e78642a7b SoftGPU: Remove old spline handling code. 2017-04-15 21:10:19 -07:00
Unknown W. Brackets dfed20701a SoftGPU: Correct negative coord handling.
Fixes #5159 - we need this signed to handle negative values properly.
2017-04-15 19:52:17 -07:00
Henrik Rydgard 842817c91d Add fog support to software rasterizer (as if it wasn't slow enough already) 2015-06-11 16:01:17 +02:00
Henrik Rydgard 7e2f37abc1 Update native with profiler fix. Profile the SW rast a little. 2015-06-11 12:44:45 +02:00
Unknown W. Brackets c6c48aef42 softgpu: Align spline patches, keep buffer.
Fixes misalignment warning on 32-bit.
2014-06-15 09:00:49 -07:00
Henrik Rydgård e5e17fbc6e More include cleanup. Hoping for very slightly faster compile times.. 2013-12-30 10:49:05 +01:00
Unknown W. Brackets 473fb866e6 softgpu: Implement vertex preview.
And move ConvertMatrix4x3To4x4() into a common place since there were
differing implementations, which was only confusing.
2013-12-29 13:45:10 -08:00
Henrik Rydgård 68b08ffb9f SoftGPU: Quick and dirty lines and points implementation
No line/point texturing support yet.
2013-12-09 12:43:49 +01:00
Unknown W. Brackets d227b13f36 softgpu: Advance vertex/index address on prim.
Fixes some broken graphics in a lot of places.
2013-11-20 21:59:45 -08:00
Unknown W. Brackets c141e94fe9 Use gstate.* accessors in a few more places. 2013-08-24 11:34:35 -07:00
Henrik Rydgard 9f3848b49c swrast warning fixes 2013-08-17 12:37:47 +02:00
Tony Wasserka 74eafcab1a softgpu: Process rasterization in screen space, rather than drawing space. 2013-08-16 23:49:15 +02:00
Tony Wasserka 11a94e1d14 softgpu: Implement spline surface drawing (without patch subdivision). 2013-08-16 23:49:13 +02:00
Tony Wasserka d2f30961af softgpu: Make perspective correct uv mapping code more readable and implement projection mapping. 2013-08-16 23:49:12 +02:00
Tony Wasserka 26d80c16fe softgpu/TransformPipeline: Clean up VertexData::Lerp by using Math3D effectively. 2013-08-16 23:49:04 +02:00
Tony Wasserka b0d3848dc7 softgpu: Don't draw pixels which lie on the right side of a triangle. 2013-08-16 23:49:04 +02:00
Tony Wasserka 00b7fbd19e softgpu: Implement depth testing. 2013-08-16 23:49:01 +02:00
Tony Wasserka 72a71702a5 softgpu: Storing view coordinates in VertexData is not necessary anymore. 2013-08-16 23:49:01 +02:00
Tony Wasserka 41e2005ad0 softgpu: Fix various bugs.
Using model transformed normals for light calculations now.
Disabling textures if texture mapping isn't enabled now.
Forced target alpha to be written as 0xFF to workaround broken buffer management.
2013-08-16 23:48:59 +02:00
Tony Wasserka 6c1b4ba32b softgpu: Implement specular lighting. 2013-08-16 23:48:59 +02:00
Tony Wasserka b42b30e795 softgpu: Store color values as integers instead of as floating points. 2013-08-16 23:48:58 +02:00
Tony Wasserka 7fdce30199 softgpu: Implement diffuse lighting. 2013-08-16 23:48:58 +02:00
Tony Wasserka 288de895db softgpu: Support indexed rendering. 2013-08-16 23:48:58 +02:00