Commit graph

2401 commits

Author SHA1 Message Date
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
Henrik Rydgård
8f103f3f47 Extract the Vulkan descriptor binding cleanup from #16345 2022-11-21 20:30:20 +01:00
Henrik Rydgård
cbfa4bfc8e Centralize ClearCacheNextFrame 2022-11-21 18:13:13 +01:00
Henrik Rydgård
eff4118769 One more refactoring step 2022-11-21 14:54:48 +01:00
Henrik Rydgård
7596713059 Refactor: Split up updating the display and render size. 2022-11-21 14:35:12 +01:00
Henrik Rydgård
250ea5e592
Merge pull request #16407 from unknownbrackets/jit-wx
In jits, protect and unprotect using better estimates
2022-11-20 20:39:04 +01:00
Unknown W. Brackets
b2798c7ada jit: Add more reasonable estimates for RX protect. 2022-11-20 10:55:35 -08:00
Henrik Rydgård
56a879bbd6
Merge pull request #16395 from unknownbrackets/blit-prefer-raster
GPU: Prefer raster for depth blit if supported
2022-11-18 16:50:35 +01:00
Unknown W. Brackets
47e5df3844 GPU: Prefer raster for depth blit if supported.
This seems to work around an apparent NVIDIA driver bug.
2022-11-17 18:32:38 -08:00
Lubos
db8b159d9e OpenXR - Force PSP menu aspect ratio 2022-11-17 17:30:29 +01:00
Unknown W. Brackets
aac2faa674 GPU: Automatically reduce depth range on == test.
Fixes graphic issues in Blade Dancer, possibly other games.
2022-11-13 08:13:22 -08:00
Henrik Rydgård
1ae6047da9
Merge pull request #16379 from unknownbrackets/stencil-android
Fix alpha/stencil replace on Adreno when color masked
2022-11-13 10:12:39 +01:00
Unknown W. Brackets
eae85836c9 GPU: Add a small error-compensation to depth clip.
This was causing a depth that should've calculated as zero to be clipped,
because the multiply and division resulted in a value that was off by
about 2 / pow(2, 24) in the negative direction.
2022-11-12 20:01:46 -08:00
Unknown W. Brackets
98758573e3 GPU: Convert alphamask to FF/00 for 5551.
When masking via uniform, we don't care about the lower bits of alpha.
Games often use 7F / 80 to control writes of FF/00.
2022-11-12 17:41:48 -08:00
Lubos
72d197fc47 Revert "OpenXR - Disable range culling properly"
This reverts commit d1dabd40ee.
2022-11-10 18:44:11 +01:00
Henrik Rydgård
a8537576e5
Merge pull request #16361 from unknownbrackets/depth-equal
GPU: Avoid clears for non-simple depth values
2022-11-09 09:57:12 +01:00
Unknown W. Brackets
745d9ad320 GPU: Avoid enabling depth test pointlessly.
See #16015.  Attempting to avoid a driver bug.
2022-11-08 20:06:08 -08:00
Unknown W. Brackets
3333f2a5aa GPU: Avoid clears for non-simple depth values.
Some drivers don't round depth the same way for a clear vs for drawing,
which can cause mismatches.  We only do this if we see equals-style depth
comparison funcs used in drawing.
2022-11-08 20:06:08 -08:00
Unknown W. Brackets
585569c2c2 TexCache: Cleanup BGRA flag dirtying. 2022-11-08 20:01:14 -08:00
Henrik Rydgård
c6084c16c3 Fix GLSL compilation issues on really old Adreno drivers.
They don't seem to accept unsigned integers as switch cases.

Fixes some stuff in #16295 , not sure if all of it.
2022-11-08 22:59:43 +01:00
Henrik Rydgård
87bd7aaccc
Merge pull request #16356 from lvonasek/cleanup_camera_control
OpenXR - Camera adjust using any controller
2022-11-08 12:28:44 +01:00
Unknown W. Brackets
bc53a0d7c4 TexCache: Correct 16->32 for CLUT4 with shift. 2022-11-07 18:41:47 -08:00
Unknown W. Brackets
17f6c00c3c TexCache: Fix 16->32 colors with CLUT start pos. 2022-11-07 18:34:10 -08:00
Unknown W. Brackets
04cd6c4f7d TexCache: Align expandClut buffer, cleanup sizes.
We shouldn't need larger than 2 KB CLUT buffers, since it's actually only
1 KB.  We have a hack that allows 2 KB for separate mip map levels.
2022-11-07 18:18:02 -08:00
Henrik Rydgård
4e8f97d64d Output shader descriptions directly in the source code 2022-11-08 00:21:08 +01:00
Lubos
d1dabd40ee OpenXR - Disable range culling properly 2022-11-07 22:10:12 +01:00