Commit Graph
2426 Commits
Author SHA1 Message Date
Henrik Rydgård a8939f456a Remove dead code, validation fix in GE debugger
See #16490
2022-12-04 00:49:48 +01:00
Unknown W. Brackets 59431de823 Merge pull request #16494 from hrydgard/force-lower-res-for-effects-off
Force "Lower resolution for effects" off in Ratchet & Clank and a few other games
2022-12-03 15:25:57 -08:00
Henrik Rydgård 8567416be6 Force "Lower resolution for effects" off in Ratchet & Clank and a few other games
It breaks or just makes things look terrible in these games, so no
reason to allow it.

An alternative for this would be to remove the option entirely, and only
use it though the ForceLowerResolutionForEffectsOn flag instead.
2022-12-03 23:35:54 +01:00
Henrik Rydgård c310d1471e Merge pull request #16493 from unknownbrackets/softgpu-opt
softgpu: Check CLUT alpha to optimize out blend/alpha test
2022-12-03 22:55:53 +01:00
Unknown W. Brackets 0aba5ff3c1 TexCache: Correct alpha mask checks for SSE2.
Should have been shifts by byte (4/8), but let's just switch to shuffles
anyway.  These were always shifting in zeros and failing.
2022-12-03 12:38:01 -08:00
Henrik Rydgård 6acbd1f9e3 Fix loading of texture shaders 2022-12-03 20:37:58 +01:00
Henrik Rydgård f3ba8fb334 Address feedback, also sort texture shaders 2022-12-03 19:30:50 +01:00
Henrik Rydgård f5c0dc717a Sort post-shaders alphabetically in the list. 2022-12-03 18:58:47 +01:00
Henrik Rydgård 02b8bf33fb Merge pull request #16458 from hrydgard/desktop-friendly-msaa
Implement MSAA support for desktop GPUs in Vulkan
2022-12-03 11:22:41 +01:00
Henrik Rydgård d6b9f39215 Merge pull request #16483 from lvonasek/hotfix_simpsons_crash
Simpsons crash on GLES fixed
2022-12-03 10:40:02 +01:00
Henrik Rydgård 116bc9d59a Merge pull request #16485 from unknownbrackets/softgpu-fog-nan
softgpu: Handle infnan fog coefficients better
2022-12-02 19:49:32 +01:00
Unknown W. Brackets c5844c4174 GE Debugger: Add breakpoint symbol for prim count.
This way you can break when a register is changed and prim count is in a
certain range, which can be convenient.
2022-12-02 10:14:36 -08:00
Henrik Rydgård 35777d5eef Use proper copies for depth blits between multisampled framebuffers. Needed to keep all the information. 2022-12-02 15:26:29 +01:00
Lubos b41a782fcd Revert "Centralize ClearCacheNextFrame"
This reverts commit cbfa4bfc8e.
2022-12-02 14:32:27 +01:00
Unknown W. Brackets 106d730a20 GPU: Optimize out common case texture proj.
NFS Most Wanted 5-1-0 uses this when it could use uv scale/offset.
2022-12-01 23:20:25 -08:00
Henrik Rydgård 8a3e92aa38 Not pretty, but with this, you can switch MSAA level at runtime. 2022-12-01 23:41:31 +01:00
Henrik Rydgård 7950a00c14 Headless buildfix. Crashfix in shader generator test. 2022-12-01 22:49:00 +01:00
Henrik Rydgård b9ea8de135 Use raster copies to work around lack of working copy support in MSAA mode. 2022-12-01 22:49:00 +01:00
Henrik Rydgård 8208768c15 Add a pipeline flag for USES_DISCARD. Will be used for the MSAA quality setting. 2022-12-01 22:49:00 +01:00
Henrik Rydgård e3679df6cf Fix switching between MSAA levels 2022-12-01 22:49:00 +01:00
Henrik Rydgård 4dfce4f6bc Basically working MSAA on desktop GPUs! Some glitches remain. 2022-12-01 22:49:00 +01:00
Henrik Rydgård 06af304c8d Multisampling groundwork 2022-12-01 22:49:00 +01:00
Unknown W. Brackets 4866518b84 Merge pull request #16477 from hrydgard/invalidation-refactor
Add a flags parameter to InvalidateCachedState and rename it Invalidate.
2022-12-01 11:05:04 -08:00
Henrik Rydgård 331d024a8c Add a flags parameter to InvalidateCachedState and rename it Invalidate.
Also rename the old InvalidationFlags enum to InvalidateCallbackFlags.
2022-12-01 19:15:38 +01:00
Henrik Rydgård e6f0f84a45 SSE optimize Float4ToUint8x4, some uses 2022-12-01 16:32:23 +01:00
Henrik Rydgård d02f46cb27 Minor VertexReader optimizations 2022-12-01 16:00:47 +01:00
Unknown W. Brackets fc5dcd0c16 GLES: Correct unit tests for framebuffer fetch. 2022-12-01 00:59:22 -08:00
Unknown W. Brackets d763dca024 GPU: Correct fetch assert. 2022-12-01 00:17:14 -08:00
Henrik Rydgård d72ad3b3f4 Fragment shader generator: Move the framebuffer fetch bit to the shader ID.
Will resolve a future issue in the multisampling PR, where the
GPU_USE_FRAMEBUFFER_FETCH flag changes at runtime if you switch between no AA and MSAA.

Just figured I'd get it in separately for safety.
2022-11-30 00:26:15 +01:00
Henrik Rydgård 390bf3e912 Fix Burnout Dominator lens flare on OpenGL ES
Not the prettiest solution, but works: Use R8_UNORM as a fallback
if R16_UNORM is not available.
2022-11-29 13:05:18 +01:00
Lubos d466ae161a OpenXR - HUD max scale fixed 2022-11-28 19:46:46 +01:00
Lubos 164c27f5ec OpenXR - Screen stretching fixed 2022-11-28 19:25:13 +01:00
Henrik Rydgård 9bb0c91a75 Sneak in a minor software transform optimization 2022-11-28 11:10:50 +01:00
Henrik Rydgård ed151473c2 Merge pull request #16454 from unknownbrackets/fb-depal-fb
GPU: Support framebuf depal from rendered CLUT
2022-11-28 09:47:22 +01:00
Unknown W. Brackets 9425d0670a GPU: Prevent decimating CLUT framebuffers.
Fixes color changing after a few moments in Kurohyo.
2022-11-27 21:24:02 -08:00
Unknown W. Brackets a7c4258e9f GPU: Support framebuf depal from rendered CLUT.
Using a temporary always for simplicity.
2022-11-27 21:16:24 -08:00
Unknown W. Brackets 194c4b0286 TexCache: Support offset in rendered CLUTs.
We already copy to a temp, so just use that copy to normalize out the
offset.  Should even get RECT2LIN correct, but most cases are 1 pixel high
anyway.
2022-11-27 21:15:15 -08:00
Henrik Rydgård 72029b678a Empirical attempt at fixing #15661
Basically, software culling fails in some configuration, like the one we
end up with on Mali.

As noted by unknownbrackets in #15661, the viewport Z scale, offset is -0.0, 0.0.

We end up with CalcCullParams computing minZValue == maxZValue == 1.0f,
and with the vertices ending up with z,w == 1.0, 1.0.
and as a result, the inside/outside calculations will always decide that
it's outside.

Changing the comparisons from >= / <= to > / < fixes the problem, but I
don't know if this might break something else.

Anyhow, here's the simple way to repro on PC:

Change the ending of GPU_Vulkan::CheckFeatures to:

```c
	return GPU_USE_LIGHT_UBERSHADER | GPU_USE_BLEND_MINMAX | GPU_USE_TEXTURE_NPOT | GPU_USE_INSTANCE_RENDERING |
		GPU_USE_VERTEX_TEXTURE_FETCH | GPU_USE_TEXTURE_FLOAT | GPU_USE_16BIT_FORMATS | GPU_USE_TEXTURE_LOD_CONTROL |
		GPU_USE_DEPTH_TEXTURE | GPU_USE_ACCURATE_DEPTH;
```
2022-11-27 23:16:16 +01:00
Henrik Rydgård 200e2f26c4 OffsetY fix for non-vulkan backends 2022-11-27 22:58:49 +01:00
Henrik Rydgård d667bd84a3 Add back the old stretch-if-close-to-16:9 hack 2022-11-27 16:16:18 +01:00
Henrik Rydgård bdfde4cbac Implement the new screen sizing parameters 2022-11-27 16:16:04 +01:00
Henrik Rydgård 0b375bb357 Colin McRae: Use compat flag to avoid GPU readbacks for VRAM->VRAM copies.
Improves performance when the sun is visible, see #7810
2022-11-26 18:53:13 +01:00
Henrik Rydgård d97035fffc Merge pull request #16434 from unknownbrackets/stencil-opt
Vulkan: Use stencil export when available
2022-11-25 10:06:41 +01:00
Unknown W. Brackets b33662550f Vulkan: Use stencil export when available.
This prevents multiple passes to upload stencil buffers.
2022-11-24 18:48:46 -08:00
Unknown W. Brackets d243d45741 GPU: Upload stencil to latest buffer.
Just being safe.
2022-11-24 16:33:31 -08:00
Henrik Rydgård 7b154d6895 Don't forget to rebind the framebuffer after copying a framebuffer to CLUT. 2022-11-24 10:12:12 +01:00
Henrik Rydgård 7eee7f2573 Fix shader debug description issue. 2022-11-23 15:41:20 +01:00
Henrik Rydgård 6d9bb1b29e Move post-processing settings to DisplayLayoutScreen 2022-11-22 23:29:50 +01:00
Lubos 70d30d1cf6 OpenXR - Aspect ratio of menu background fixed 2022-11-22 21:49:52 +01:00
Henrik Rydgård ddd2c6e343 Merge pull request #16409 from hrydgard/preserve-framebuffers
Preserve framebuffer on pause screen even if render resolution is changed
2022-11-22 10:03:47 +01:00