Commit Graph
2253 Commits
Author SHA1 Message Date
Henrik Rydgård bf25f4b283 Shader uniforms (VK/D3D11): Fix issue where we could overwrite the fourth component padding. 2022-10-06 10:52:58 +02:00
Unknown W. Brackets 3aa863ec41 GPU: Clip against neg Z even w/o cull support.
This should fix rendering issues on Apple devices.
2022-10-06 00:34:02 -07:00
Henrik RydgårdandGitHub 87d00f79da Merge pull request #16165 from unknownbrackets/geo-shader
Vulkan: Clip clamped depth in geometry shader
2022-10-06 09:18:08 +02:00
Henrik RydgårdandGitHub 3da1b46104 Merge pull request #16166 from unknownbrackets/hwtess
GPU: Verify generated shader buffer length
2022-10-06 08:24:46 +02:00
Unknown W. Brackets aee2ad46a2 GPU: Verify generated shader buffer length.
Hardware tessellation + uberlighting + clamp was exceeding the buffer,
causing memory corruption.  Let's try to catch it, but also increase
buffers to be safe.
2022-10-05 21:41:09 -07:00
Unknown W. Brackets bc3d3cf9fb GPU: Optimize clip distances needed.
We only need to write one clip distance to clip clamped depth, since we
don't clamp when it needs clipping on both sides.
2022-10-05 21:17:17 -07:00
Unknown W. Brackets 14bf9d1923 Vulkan: Correct clamped Z clip when clipping neg Z.
In the geometry shader, if used, we need to output the clip distance from
the clamped Z clip or it gets lost.
2022-10-05 20:48:38 -07:00
Unknown W. Brackets 8663541403 Vulkan: Avoid max_vertices=12 if unnecessary. 2022-10-05 20:11:10 -07:00
Unknown W. Brackets 3e5c09d432 Vulkan: Clip clamped depth in geometry shader.
This corrects deformed geometry on Mali devices which don't support
user-space clipping but do support depth clamp.
2022-10-05 19:41:59 -07:00
Henrik RydgårdandGitHub d6bd08cae7 Merge pull request #16162 from unknownbrackets/geo-shader
Implement negative Z clipping in geometry shader
2022-10-06 01:00:41 +02:00
Unknown W. Brackets 5d88e50201 Vulkan: Generate indices in clipping. 2022-10-04 23:04:25 -07:00
Unknown W. Brackets 8025def8d2 Vulkan: Clip to neg z in the geometry shader.
This is only used when clip distance is unsupported, such as on Mali.
2022-10-04 22:10:24 -07:00
Henrik Rydgård 362391b9d8 Fix Kurohyou again. See #9576 2022-10-04 20:56:41 +02:00
Henrik RydgårdandGitHub b333695cd1 Merge pull request #16160 from unknownbrackets/vram-mirrors
GPU: Use flags to fix triggered upload/download
2022-10-04 08:45:06 +02:00
Unknown W. Brackets 9ac4523fd2 GPU: Skip matching a framebuf for RAM. 2022-10-03 20:22:27 -07:00
Unknown W. Brackets a1efed31b9 GPU: Use flags to fix triggered upload/download.
No longer using mirror hacks.
2022-10-03 20:17:25 -07:00
Henrik Rydgård 1469a32a9d Vertex decoder: Add fallback for non-SSE4.1
See #16157
2022-10-03 19:06:17 +02:00
Henrik Rydgård 973d0435c1 Fix another crash with non-buffered rendering 2022-10-03 19:02:16 +02:00
Henrik RydgårdandGitHub ed3cd1dc26 Merge pull request #16150 from unknownbrackets/vram-mirrors
GPU: Mask away unused bits in framebuf/zbuf ptr, cleanup
2022-10-03 11:56:24 +02:00
Herman SemenovandGitHub 29b87e0c0b Merge branch 'master' into master 2022-10-03 07:49:13 +00:00
Unknown W. Brackets 58a4376998 GPU: Normalize framebuf addresses.
In VRAM, always store without mirror.  In RAM, always store without
cache/kernel bits.
2022-10-02 21:28:53 -07:00
Unknown W. Brackets 4df7a8f357 Vulkan: Cleanup unused geometry shader vars.
Without clipping, these aren't used (but could be in the future with
manual clipping.)
2022-10-02 07:43:35 -07:00
Unknown W. Brackets 36eb0d9ad5 Vulkan: Use geo clip distance only where supported.
It might be supported without cull or GS.  Otherwise we may need to clip
the triangles manually.
2022-10-02 07:42:22 -07:00
Unknown W. Brackets bfaa304461 Vulkan: Correct geometry shader culling. 2022-10-02 07:42:17 -07:00
Henrik RydgårdandUnknown W. Brackets ac248338be Vulkan: Cull in geoshader, hack to on for now. 2022-10-02 07:42:17 -07:00
Henrik RydgårdandUnknown W. Brackets cdee10fe86 Vulkan: Basic geoshader code generation. 2022-10-02 07:42:17 -07:00
Unknown W. Brackets d16caa71af Vulkan: Add geometry shader ID tracking.
We're still not generating them, yet.  But this tracks the objects and
IDs through the pipeline.
2022-10-02 07:42:16 -07:00
Unknown W. Brackets 878a049f60 GPU: Add dirtying for geo shader state.
Not yet used, but dirtied at the right times.
2022-10-02 07:42:16 -07:00
Henrik RydgårdandGitHub b36bfc37d5 Merge pull request #16139 from hrydgard/tighten-up-format-checks
Tighten up some color format checks with displays and copies
2022-10-02 15:39:51 +02:00
Unknown W. Brackets 24999e792a Ge: Report and save Edram translation value.
See #16126 for some details on its usage and effects.
2022-10-01 23:18:42 -07:00
Henrik Rydgård ab08db6fca Tighten up some color format checks with displays and copies
Now that we allow multiple color format buffers to overlap, and don't
just take one and change its format during copy for example, we could
use some additional checking.

Additionally, do a simple heuristic to reject "obviously" wrong copies
copies to framebuffers.

Fixes #15959, should also help #16124
2022-10-02 00:10:19 +02:00
Henrik RydgårdandGitHub 151db69a32 Merge pull request #16138 from unknownbrackets/geo-shader-2
Basic groundwork for geometry shaders
2022-10-01 22:23:48 +02:00
Unknown W. Brackets 87171cef98 GPU: Add geometry path for shader writer.
Not yet used.
2022-10-01 12:45:43 -07:00
Unknown W. Brackets 59a489f883 Draw: Add COLOR1 semantic. 2022-10-01 12:14:46 -07:00
Henrik Rydgård 9ec41436d1 ES2 crash fix: Don't draw depth if lacking fragment shader depth write. 2022-10-01 19:28:52 +02:00
lainon 3cdf72b68b Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' 2022-09-30 12:35:28 +03:00
lainon c953bf7fc7 Fixed bug and memleaks 2022-09-30 12:32:49 +03:00
lainon fec708489a Correct cleaning string and remove unused vars 2022-09-30 12:26:30 +03:00
Henrik Rydgård bd759790b0 Update the Vulkan debug names when reassigning depth buffers. 2022-09-28 14:09:40 +02:00
Henrik Rydgård de51d067f2 If a framebuffer starts using a different depth buffer than before, re-point.
Fixes depth artifacts in Silent Hill: Origins. See issue #16126
2022-09-28 13:41:41 +02:00
Unknown W. Brackets 38818f9f6e GLES: Fix colortest/logicop uint/int conversion.
Shown well in #16119.
2022-09-27 19:24:54 -07:00
Henrik Rydgård ca5c69d3dd Vulkan: Better debug names for RENDER passes. 2022-09-27 23:41:09 +02:00
Henrik Rydgård e538f5a441 Better bit scrambling when computing draw call IDs for vertex cache.
Fixes #13324
2022-09-27 10:09:52 +02:00
Unknown W. Brackets 97ae4ae712 GPU: Correct flat normal projection mapping. 2022-09-26 15:11:11 -07:00
Unknown W. Brackets 34a8056017 GPU: Correct normalized zero normal proj map.
Unlike lighting, this does not use 0, 0, 1.
2022-09-26 15:11:11 -07:00
Unknown W. BracketsandGitHub 59f11df98b Merge pull request #16116 from hrydgard/color-test-fix
Fix color test.
2022-09-26 14:18:12 -07:00
Henrik Rydgård 9b46adb985 Fix color test.
Fixes the new color test bug reported in #13324, though doesn't fix that
issue (didn't confirm it still is one).
2022-09-26 22:51:46 +02:00
Henrik Rydgård 1c0d66aef7 Add compatibility flag for loading pixels on framebuffer create using nearest filtering
Solves the last problem with the speedometers - so we can finally say: Fixes #8509

Render-to-CLUT for speedometers renders on top of an image that just comes from the
underlying memory, so it's been drawn to the framebuffer with DrawPixels. That adds
filtering so at higher resolutions, there's some blurring of the CLUT, causing
artifacts.  We can solve this two ways: either we force on lower-resolution-for-effects
for Ridge Racer games, or we use nearest filtering when doing DrawPixels of the
memory under a framebuffer. For best result, we do the latter.

(The speedometers look even better with nearest filtering, but that's a more
general issue of UI looking better that way).
2022-09-26 20:47:55 +02:00
Unknown W. Brackets 4329aaa31c GPU: Apply color test mask as a uint.
This is simpler and allows us to unify paths better.
2022-09-26 06:57:41 -07:00
Unknown W. Brackets a19a057e8c GPU: Consistently use uvec3 for colortest. 2022-09-26 06:57:41 -07:00