Commit Graph
9567 Commits
Author SHA1 Message Date
Henrik Rydgård 1b1e585a35 More integration, use VMA in VulkanTexture 2021-11-22 18:54:09 +01:00
Henrik RydgårdandGitHub 712b87ae57 Merge pull request #12108 from hrydgard/vulkan-async-pipeline-creation
Vulkan async pipeline creation
2021-11-21 22:33:43 +01:00
Henrik Rydgård 81fba1f4a4 Minor refactor 2021-11-21 22:08:53 +01:00
Henrik Rydgård f1cd1d535b Add a hidden setting to turn off the shader cache, for shader compile performance work 2021-11-21 21:25:56 +01:00
Unknown W. Brackets 876c8cd368 softgpu: Fix PixelFuncID size.
Oops, can't use unions in bitfields.  Also improve typesafety.
2021-11-21 09:40:13 -08:00
Henrik Rydgård dda425b068 Vulkan: Add a single background thread for pipeline creation
Add proper waits for compile-done

Don't rely on non-standard struct initialization of classes

Attempt to drain the pipeline compile queue before destroying the PipelineManager.

Vulkan: Bump the cache version for testing
2021-11-21 18:36:00 +01:00
Henrik Rydgård 62f4875e24 VulkanRenderManager: Add deferred pipeline creation (to get it off the CPU thread) 2021-11-21 18:36:00 +01:00
Unknown W. Brackets 28bc91bd79 softgpu: Add func to tersely name pixel funcs. 2021-11-21 08:23:32 -08:00
Unknown W. Brackets f8bc6e5b9e softgpu: Template draw pixel on fb format.
This introduces a small 5-10% perf improvement.
2021-11-21 08:23:32 -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
Henrik RydgårdandGitHub 938e6d83cb Merge pull request #15156 from unknownbrackets/vulkan
Vulkan: Fix crash on shutdown after device lost
2021-11-21 14:57:47 +01:00
Unknown W. Brackets f7a029c61f Vulkan: Fix crash on shutdown after device lost.
This happens in SDL every time, apparently.
2021-11-21 05:35:07 -08:00
Henrik RydgårdandGitHub 824805ec1e Merge pull request #15154 from unknownbrackets/softjit
Use a pixel func ID in software rendering
2021-11-21 10:50:06 +01:00
Unknown W. Brackets e2f0713cc2 softgpu: Clamp and round fog by mantissa bits.
This matches hardware calculated fog values much better.
2021-11-20 20:54:52 -08:00
Unknown W. Brackets 9abf2a4725 softgpu: Confirm mask doesn't hit stencil REPLACE. 2021-11-20 18:53:51 -08:00
Unknown W. Brackets aa3786ed21 softgpu: Force off alpha blend if uselessly on.
This is a simple optimization to prevent some work games sometimes waste.
2021-11-20 15:27:04 -08:00
Unknown W. Brackets 26378f9c89 softgpu: Specialize sprite based on pixel func ID. 2021-11-20 15:27:04 -08:00
Unknown W. Brackets f7a31c992d softgpu: Use pixel func ID to draw pixels.
This just reduces reliance on gstate directly, and should help keep things
consistent.
2021-11-20 15:27:04 -08:00
Unknown W. Brackets 953200c995 softgpu: Add func to calculate pixel func ID.
This normalizes some things, and eventually can be used for a jit key.
2021-11-20 15:27:04 -08:00
Unknown W. BracketsandGitHub 46a4347976 Merge pull request #15141 from unknownbrackets/softgpu
Rectangle fast path tweaks for softgpu
2021-11-15 07:08:57 -08:00
Unknown W. Brackets b6bdd69572 softgpu: Clear by dividing out subpixel first. 2021-11-15 06:26:11 -08:00
Unknown W. Brackets f802c3bc6d softgpu: Add some comments and cleanup. 2021-11-15 06:09:12 -08:00
Unknown W. Brackets babd63c644 softgpu: Tune thread minimums better.
Darkstalkers seems more sensitive to these than many other games, this
improves performance more.
2021-11-14 18:44:30 -08:00
Unknown W. Brackets 66f635cba0 sfotgpu: Use threads to apply clears. 2021-11-14 18:31:46 -08:00
Unknown W. Brackets 2ab7499d8d softgpu: Combine sliced rectangles.
This mostly affects clears, and reduces overhead.  Only about 2%
improvement, but it's a small change.
2021-11-14 18:31:46 -08:00
Unknown W. Brackets 0281e2f017 softgpu: Split out rectangle path for combining. 2021-11-14 18:31:46 -08:00
Unknown W. Brackets 9545e3b0e2 softgpu: Fixup range cull for fans and fast path. 2021-11-14 18:31:45 -08:00
Unknown W. Brackets fb6fadbbb7 softgpu: Fast path rectangles as fans.
Some games, such as Legend of Heroes III, use fans instead of strips.
2021-11-14 18:31:45 -08:00
Unknown W. Brackets 09a9927b82 softgpu: Use range loops for sprite fast path. 2021-11-14 18:31:45 -08:00
Unknown W. Brackets 8a5f07b860 Vulkan: Don't cache vulkan_ with draw context.
Since we can get the VulkanContext cheaply from the draw context, it's
easier to make sure things stay up to date.
2021-11-14 15:25:28 -08:00
Unknown W. Brackets 0dc7688838 GPU: Cleanup some extra pointers in fb managers.
These weren't being used / weren't final anyway.
2021-11-14 14:13:48 -08:00
Unknown W. Brackets 55cde6bd6a softgpu: Check flat z in fast path. 2021-11-14 12:27:39 -08:00
Unknown W. Brackets 361c8f966c softgpu: Fast path triangles without textures.
The fast path may still be useful in this case.
2021-11-14 12:27:39 -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 f66e243727 softgpu: Correct scissor for pixel centers. 2021-11-07 11:19:41 -08:00
Henrik Rydgård f58e75e462 Remove unused variable 2021-11-07 16:31:28 +01:00
Henrik Rydgård 43dc54bc4a Comment fix, remove assert 2021-11-07 16:30:47 +01:00
Henrik Rydgård c60feef55e Remove support for 16-bit textures from the upscaling shader, to shorten it for benefit of mobile GPUs 2021-11-07 16:08:57 +01:00
Henrik Rydgård 281ddc2437 Speed up the 4xBRZ upscaler with 16x and the MMPX one with 4x by not doing redundant work 2021-11-07 15:47:05 +01:00
Henrik Rydgård 6349704924 Switch texture scaling shaders to a fixed scale model, preparing for the next change. 2021-11-07 13:12:28 +01:00
Henrik Rydgård c111d6cc2d Remove the copy-compute-shader path 2021-11-07 12:55:39 +01:00
Henrik RydgårdandGitHub 1f502b8f94 Merge pull request #15106 from unknownbrackets/depth-cull
GLES: Explicitly enable ARB_cull_distance
2021-11-06 21:35:11 +01:00
Unknown W. Brackets 142db5d61e GLES: Explicitly enable ARB_cull_distance. 2021-11-06 11:33:41 -07:00
Henrik RydgårdandGitHub aefc21f4a3 Merge pull request #15096 from unknownbrackets/debugger-display
Fix an issue in GE frame dump recording
2021-11-06 13:40:57 +01:00
Henrik RydgårdandGitHub ebc05b3141 Merge pull request #15099 from unknownbrackets/softgpu-depth
Fix depth cull in softgpu
2021-11-06 09:16:29 +01:00
Unknown W. Brackets 8db2d37e64 softgpu: Fix depth cull in softgpu.
Was improperly skipping cull for positive Z.
2021-11-05 21:38:13 -07:00
Unknown W. Brackets fe440d40e5 softgpu: Clip full weighted Z without truncating.
In case wsum_recip is nan or similar, we want to make sure we still
properly clip to minz/maxz.
2021-11-05 21:36:38 -07:00
Henrik Rydgård b88d676f78 Remove the vertex cache from the OpenGL backend.
It was disabled for a very long time, and now that we've re-enabled it, it
mostly causes problems.

Not feeling like debugging it on weird hardware, I think it's better
to focus energy on other optimizations.
2021-11-06 00:45:43 +01:00
Unknown W. Brackets f03fa2b0b8 softgpu: Improve accuracy of line drawing.
Needs higher precision to change pixel at the right time.

This makes the lines in Persona 1 look right, see #3871.
2021-11-04 00:11:09 -07:00
Unknown W. Brackets a0599f70c4 GE Debugger: Record until some drawing.
Otherwise, we end up with empty frame dumps if games call display twice.
2021-11-03 17:40:20 -07:00