Commit Graph
7541 Commits
Author SHA1 Message Date
Henrik Rydgård 9bd8b11bf8 Implement shader depal for D3D11. 2022-09-11 13:41:17 +02:00
Henrik Rydgård 35c9cbd6b0 Merge pull request #16003 from hrydgard/clut-download-compat
CLUT download: Replace the backwards block transfer check with a new compat flag
2022-09-11 12:20:25 +02:00
Henrik Rydgård 5e6b064835 DownloadFramebufferForCLUT: Apply the fix mentioned in #8590 2022-09-11 10:30:43 +02:00
Henrik Rydgård 33a93e238a CLUT download: Replace the broken block transfer check with a new compat flag.
This compat flag should be temporary until we've implemented
a readback-free path for CLUTs from framebuffers, both when texturing
from static textures and other framebuffers.
2022-09-11 10:27:21 +02:00
Henrik Rydgård d86127ac5e Merge pull request #15999 from unknownbrackets/softgpu-texsize
softgpu: Clamp/wrap textures at 512 pixels
2022-09-11 10:12:38 +02:00
Henrik Rydgård 37b51393a8 Merge pull request #16002 from unknownbrackets/softgpu-vertexdec
vertexjit: Use consistent skinInDecode
2022-09-11 10:11:02 +02:00
Henrik Rydgård 04c02340f1 Merge pull request #15998 from unknownbrackets/softgpu-rect
softgpu: Allow almost flat rectangles to go fast
2022-09-11 08:54:04 +02:00
Unknown W. Brackets 4889d5285d vertexjit: Use consistent skinInDecode.
Just a little cleanup.
2022-09-10 21:54:04 -07:00
Unknown W. Brackets 15d5fa48f7 softgpu: Check depth test early on simple stencil.
If we don't need to write stencil on sfail/zfail, we can do the depthtest
early, which allows us to more often skip texture sampling.

This gives a good improvement in Chains of Olympus.
2022-09-10 21:24:19 -07:00
Unknown W. Brackets 90e009edb9 softgpu: Clamp/wrap textures at 512 pixels.
A texture larger than 512 is "valid", but simply wraps/clamps at 512.
Importantly, the texture coords are still calculated at the specified
size, which can be up to 32768.
2022-09-10 20:23:09 -07:00
Unknown W. Brackets 18c9a4d9c9 GE Debugger: Fix crash stepping with large tex.
Some math was overflowing in allocations, and it would allocate zero
bytes.  Let's just refuse textures more actively.
2022-09-10 19:31:53 -07:00
Unknown W. Brackets f5f5c9ea87 softgpu: Avoid calling unordered coords tl/br.
These are just corners, we don't know if they're top or not at this point.
2022-09-10 14:58:27 -07:00
Unknown W. Brackets 13ca08b235 softgpu: Avoid over-aggressive rect conversion.
The TL and BR have to match between UVs and pos, not enough for UV to be
in order.  This was causing an artifact on Chains of Olympus' title.
2022-09-10 14:56:13 -07:00
Unknown W. Brackets 2505ae2858 GE Debugger: Fix logging of texture size. 2022-09-10 13:36:01 -07:00
Unknown W. Brackets e7d49cd7d0 softgpu: Allow almost flat rectangles to go fast.
Improves transform rectangles used in Chains of Olympus, for example on
the title screen.
2022-09-10 13:29:40 -07:00
Unknown W. Brackets 6004d4a459 softgpu: Refactor duplicate rectangle compat check.
This just moves the logic to a single place for changes.
2022-09-10 13:28:35 -07:00
Henrik Rydgård a2ca85bc87 Add logging for LoadCLUT from framebuffer. See #15923 . Logs nicely in Burnout Dominator. 2022-09-10 19:32:39 +02:00
Henrik Rydgård e56e5947d5 Vulkan: Declare gl_Position as invariant. See #11583
The code that computes shader outputs declared as invariant gets certain
optimizations disabled that could change the value - it makes it more
likely that different ways to do the same calculations end up with the same value.

This can help some types of Z fighting problems and similar.

Generally not a big deal for performance, plus, we're rarely vshader-bottlenecked...
2022-09-10 00:26:23 +02:00
Henrik Rydgård f3c097680e Merge pull request #15982 from hrydgard/renderpass-refactor
Vulkan: Refactor renderpass handling
2022-09-08 09:35:55 +02:00
Henrik Rydgård e7195d5a99 Match FragmentShaderFlags definition with the other PR. 2022-09-08 09:18:29 +02:00
Henrik Rydgård 974cd38b1f Some more debug names to vulkan objects 2022-09-08 09:16:40 +02:00
Unknown W. Brackets e6b4495e22 GPU: Make NotifyConfigChanged() calls consistent.
They're generally centralized in Common.
2022-09-07 23:41:00 -07:00
Henrik Rydgård cdda203438 Fix compiler warnings 2022-09-08 01:31:10 +02:00
Henrik Rydgård 347f7c4e5a Vulkan: Improve tagging of pipelines for debugging purposes 2022-09-08 00:47:22 +02:00
Henrik Rydgård cddc612f6d Extend lifetime of ShaderModule objects since we might need to recreate pipelines for different render passes 2022-09-08 00:38:32 +02:00
Henrik Rydgård 14b5a1a7cd Fix pipeline lifetime issue, misc. 2022-09-08 00:38:32 +02:00
Henrik Rydgård 77819c6f80 Lifetime fixes, cleanups 2022-09-08 00:38:32 +02:00
Henrik Rydgård befcfb470c Fix shader caching. 2022-09-08 00:38:32 +02:00
Henrik Rydgård e828df9f25 Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType). 2022-09-08 00:32:03 +02:00
Henrik Rydgård 8782061539 Merge pull request #15980 from unknownbrackets/zstd-update
Build: Add additional zstd file for libretro
2022-09-07 14:45:43 +02:00
Unknown W. Brackets 402492a958 GE Debugger: Show imm prim flag detail in disasm. 2022-09-06 22:31:09 -07:00
Unknown W. Brackets 880f6f8d49 GPU: Handle more flags on imm prim command. 2022-09-06 22:20:45 -07:00
Unknown W. Brackets 7a83f8bab5 softgpu: Use vertType prim override for flags.
These parameters are a real shame, was so clean before...
2022-09-06 22:20:45 -07:00
Unknown W. Brackets f274267143 GPU: Allow usage of texturing in immediate verts.
And respect the other flags that I can reproduce working in a test.
I can't seem to get the fog to work at all, or the shading mode, or the
secondary color.  Maybe depends on other flags or bits in other regs...
2022-09-06 22:20:45 -07:00
Unknown W. Brackets ceb2af369c GPU: Handle immediate prims more accurately.
This allows for lines, points, textures, and similar things.  Also
corrects offset handling.  Still some flags on VAP that seemingly don't
work, and this doesn't consider the texture flag on it.
2022-09-06 22:20:45 -07:00
Unknown W. Brackets 531c7e452d GE Debugger: Count imm prims as prims. 2022-09-06 18:55:25 -07:00
Unknown W. Brackets d249674858 softgpu: Fix immediate rendering crash. 2022-09-06 18:55:25 -07:00
Unknown W. Brackets b4e1f6d902 GPU: Fix crash on overlap copy w/o cur target. 2022-09-06 18:55:25 -07:00
Unknown W. Brackets 7c8f8817b8 GPU: Fix CanDepalettize() missing false paths.
Mismatched texformats didn't have a return.
2022-09-06 18:52:20 -07:00
Henrik Rydgård ae23c3c266 Merge pull request #15974 from unknownbrackets/debugger-gecond
Add breakpoint conditions to GE debugger
2022-09-06 23:39:26 +02:00
Unknown W. Brackets 62ed43633c d3d9: Correct decode of 16-bit textures.
Was causing crashes since we assumed this func could handle non-replaced
formats.
2022-09-06 07:44:08 -07:00
Henrik Rydgård 759c9695e5 Merge pull request #15901 from lvonasek/feature_openxr_stereo
OpenXR - Stereoscopic rendering
2022-09-06 11:52:32 +02:00
Henrik Rydgård 7055be9d29 Merge pull request #15977 from unknownbrackets/ge-disasm
GE Debugger: Add more missing GE disasm
2022-09-06 07:07:32 +02:00
Unknown W. Brackets a59d39d666 GE Debugger: Add more missing GE disasm.
Need to investigate the immediate vert bits more.
2022-09-05 20:35:08 -07:00
Unknown W. Brackets 23f61171f9 softgpu: Implement matrix data wrap-around.
Overflow writes to other matrices.  Matches hardware tests.
2022-09-05 19:38:54 -07:00
Unknown W. Brackets f14e49a373 GE Debugger: Add conditions to cmd breakpoints. 2022-09-05 17:33:54 -07:00
Unknown W. Brackets 0b30b723bb GE Debugger: Add address breakpoint conditions. 2022-09-05 17:33:54 -07:00
Unknown W. Brackets f595299fe5 GE Debugger: Allow expressions for goto address. 2022-09-05 17:33:54 -07:00
Henrik Rydgård 9a6c1d84c2 Remove impossible check 2022-09-06 00:39:10 +02:00
Henrik Rydgård e69bb4f616 Buildfix, warn fixes while at it 2022-09-05 23:40:43 +02:00