Unknown W. Brackets
4f216c941e
Vulkan: Fix reverse dependency on config.
2022-12-27 15:32:35 -08:00
Unknown W. Brackets
3e77cb1475
D3D9: Support old-style user clip planes.
...
This fixes negative Z issues on D3D9 in many cases, such as #14168
and #16574 , but only when clip planes are supported.
2022-12-18 11:04:33 -08:00
Henrik Rydgård
26884150d7
Remove the 0th descriptor set, move everything else back to 0
2022-12-16 13:05:40 +01:00
Henrik Rydgård
675c282286
Hides the D3D9 option on Intel Xe graphics.
...
For whatever reason, it really doesn't work for me, while all three other
backends work perfectly. So let's just hide it.
You can still enable it through the ini file for debugging purposes.
2022-12-11 20:55:09 +01:00
Unknown W. Brackets
f44852bb18
Global: Cleanup virtual/override specifiers.
...
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Henrik Rydgård
4990683cf2
Implement "enhanced" multisample quality setting
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
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
Henrik Rydgård
6daecb4e2b
Add check for tiling GPUs. We'll use this to inform on what MSAA modes to support.
2022-12-01 22:48:59 +01: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
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
Henrik Rydgård
70d1d8fa07
Replace the "GetCurrentStepId"-based state invalidation with callbacks
2022-11-24 10:52:42 +01:00
Henrik Rydgård
39f2ddd128
Add compat flag / bug check for games on old Adreno/GL affected by #16015
...
See #16015
Partly derived from https://github.com/hrydgard/ppsspp/compare/master...unknownbrackets:ppsspp:adreno-deadlock
But this one surgically activates it only for the known affected games, to avoid any additional
performance regressions in the release.
Entirely untested.
2022-11-24 10:05:35 +01:00
Henrik Rydgård
668904a515
Vulkan: Use the very same view as input attachment and color attachment, not just the same image
...
Fixes most of the new validation errors seen #16351 , though one remains.
I believe that to be a bug in the validation layers, will investigate
later.
2022-11-07 09:14:55 +01:00
Unknown W. Brackets
0cc94ceb15
Draw: Correct ambiguous comparison overload.
2022-10-29 12:52:00 -07:00
Henrik Rydgård
c6fe91224a
Vulkan: Fixes validation errors with "null" textures
...
These arise in non-buffered rendering when we don't have a framebuffer
to texture from.
2022-10-28 18:40:55 +02:00
Henrik Rydgård
96a5c52037
Vulkan: Reserve descriptor set 0 for frame-global data, move everything else to set 1
2022-10-28 09:39:56 +02:00
Henrik Rydgård
763afd4a8e
Improve compatibility checks for stereo rendering.
2022-10-27 11:05:59 +02:00
Henrik Rydgård
524e92374f
Use arrays more consistently.
2022-10-27 11:05:59 +02:00
Henrik Rydgård
91259aaad7
Always use array textures for framebuffers in Vulkan for simplicity.
2022-10-27 11:05:58 +02:00
Henrik Rydgård
0de12f5ca9
Some refactoring of framebuffer views, layer issues, more work.
2022-10-27 11:05:58 +02:00
Henrik Rydgård
fb250c4b29
More multiview work
2022-10-27 11:05:58 +02:00
Henrik Rydgård
7a620962aa
thin3d: Replace hint at future MRT support with basic multi layer support
2022-10-27 11:05:58 +02:00
Henrik Rydgård
90d395a10d
Remove "attachment" parameter from BindFramebufferAsTexture everywhere.
...
Not actually useful since our framebuffer objects don't support multiple
color images, and probably won't ever need to.
2022-10-20 10:15:19 +02:00
Henrik Rydgård
4d1da5859c
Add simple way to add debug annotation in the middle of the command stream. Vulkan-only.
2022-10-13 22:39:44 +02:00
Henrik Rydgård
d4bfe9299d
Track min and max GPU time, init time, render CPU time.
...
Mainly wanted to see if init time is a factor, there are optimizations
we can do there.
2022-10-10 10:53:27 +02:00
Unknown W. Brackets
bc84d6345b
Vulkan: Disable geometry shaders for Mali <= 18.
...
These drivers apparently have some weird behavior.
2022-10-09 00:57:10 -07:00
Unknown W. Brackets
8df956b036
Vulkan: Block geometry shaders on older Mali.
...
They're too slow to be usable.
2022-10-02 07:42:22 -07:00
Unknown W. Brackets
59a489f883
Draw: Add COLOR1 semantic.
2022-10-01 12:14:46 -07: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
1ae7c0132c
Start unifying setting of the GPU feature flags, now that thin3d has feature detection.
2022-09-20 10:07:01 +02:00
Henrik Rydgård
4045de8d56
Consider the Adreno and Mali stencil-discard bugs the same. Use the better check from the Mali bug.
...
Should fix #11980
2022-09-18 10:34:43 +02:00
Henrik Rydgård
262a306b9a
Flag shader blending as broken on Adreno for now.
2022-09-16 19:19:42 +02:00
Henrik Rydgård
ce82fce8de
Use subpass dependencies to implement shader framebuffer read in Vulkan.
2022-09-16 19:19:42 +02:00
Henrik Rydgård
f745e94899
Allow binding "native" texture objects to thin3d
2022-09-14 22:18:35 +02:00
Henrik Rydgård
a52e62a187
Enable depth uploads on render-to-clut-buffer. Esoteric but needed for #11100 . Compat flag for now.
2022-09-14 22:18:34 +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
e828df9f25
Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType).
2022-09-08 00:32:03 +02:00
Henrik Rydgård
b447092742
Some Vulkan renderpass load/store optimizations.
2022-08-28 23:16:48 +02:00
Henrik Rydgård
d459eac891
Fix checks for depth texture support, GLES syntax errors
2022-08-24 11:26:07 +02:00
Henrik Rydgård
fc81b76b98
Vulkan: Very minor chnages after checking Best Practices with new validation layer
2022-08-23 23:55:53 +02:00
Henrik Rydgård
1e57a358b8
thin3d: Properly AddRef and Release shader modules from the pipeline in backends that need it
2022-08-16 15:10:48 +02:00
Henrik Rydgård
3a0d43ae1e
Remove deprecated function (mostly)
2022-08-16 11:47:38 +02:00
Henrik Rydgård
79ee532609
Fix feature checks
2022-08-09 20:05:44 +02:00
Henrik Rydgård
6f1f482432
Make GLQueueRunner/RenderManager aware of device caps, use it to check for NPOT and some other stuff
2022-08-07 11:15:23 +02:00
Henrik Rydgård
81c36578ca
Feature detection fixes
2022-08-06 18:27:03 +02:00
Henrik Rydgård
da65af832a
D3D11 prep
2022-08-06 18:27:03 +02:00