liamwhite
4533769f7f
Merge pull request #11212 from Kelebek1/shader_stuff
...
Fix various misc pipeline/shader things
2023-08-05 12:58:39 -04:00
Kelebek1
dfb7fc8293
Fix shader dumps with nvdisasm
...
skip fragment shaders when rasterizer is disabled
initialize env_ptrs
2023-08-03 15:30:27 +01:00
Ameer J
cd80cbc420
vulkan_device: Fix subgroup_size_control detection on Vulkan 1.3
2023-08-02 20:45:03 -04:00
Ameer J
c7c44dc238
vulkan_device: Fix VK_EXT_subgroup_size_control detection
2023-08-02 19:25:14 -04:00
liamwhite
096644c01c
Merge pull request #11202 from abouvier/vulkan-config
...
vulkan: centralize config
2023-08-02 14:26:03 -04:00
liamwhite
fca7d975fd
Merge pull request #10839 from lat9nq/pgc-plus
...
general: Reimplement per-game configurations
2023-08-02 14:25:52 -04:00
Liam
d6d43e11a3
vulkan_device: disable EDS3 blending on all AMD drivers
2023-08-01 20:46:05 -04:00
Alexandre Bouvier
9d6f8e88b2
vulkan: centralize config
2023-08-02 00:05:14 +02:00
liamwhite
2a9eab5e1b
Merge pull request #11188 from abouvier/vma-fix
...
vma: enable options everywhere
2023-07-31 15:28:35 -04:00
liamwhite
06fa13a014
Merge pull request #11169 from GPUCode/desc-stuff
...
vk_descriptor_pool: Disallow descriptor set free
2023-07-31 09:11:19 -04:00
Alexandre Bouvier
ed3f9bab11
vma: enable options everywhere
2023-07-31 13:01:21 +02:00
Moonlacer
deafa92122
Formatting fix
2023-07-30 23:02:07 -05:00
Moonlacer
c6458970ad
Match log warning
2023-07-30 22:50:22 -05:00
Moonlacer
a4a106bb25
Formatting fix
2023-07-30 04:29:51 -05:00
Moonlacer
f4e5d07619
Address feedback and change log warning
2023-07-30 04:01:29 -05:00
Moonlacer
36d48cef50
Revert "Revert "Blacklist EDS3 blending from new AMD drivers""
2023-07-30 00:21:51 -05:00
GPUCode
8c2411da29
vk_descriptor_pool: Disallow descriptor set free
2023-07-27 18:08:56 +03:00
Moonlacer
4007142b91
Revert "Blacklist EDS3 blending from new AMD drivers"
2023-07-26 15:02:48 -05:00
liamwhite
d3da1e6517
Merge pull request #10990 from comex/ubsan
...
Fixes and workarounds to make UBSan happier on macOS
2023-07-26 10:33:28 -04:00
liamwhite
0ea138fb5b
Merge pull request #11098 from GPUCode/texel-buffers
...
buffer_cache: Increase number of texture buffers
2023-07-22 11:17:27 -04:00
lat9nq
8366736b67
settings,opengl,yuzu-qt: Fix AA, Filter maximums
...
The new enum macros don't support setting values directly.
For LastAA and LastFilter, this means we need a simpler approach to loop
around the toggle in the frontend...
2023-07-21 10:56:55 -04:00
lat9nq
d146dd9d12
settings,general: Rename non-confirming enums
2023-07-21 10:56:54 -04:00
lat9nq
a007ac6b9c
configure_graphics_advance: Generate UI at runtime
...
We can iterate through the AdvancedGraphics settings and generate the UI
during runtime. This doesn't help runtime efficiency, but it helps a ton
in reducing the amount of work a developer needs in order to add a new
setting.
2023-07-21 10:56:07 -04:00
lat9nq
5cffa34288
settings,video_core: Consolidate ASTC decoding options
...
Just puts them all neatly into one place.
2023-07-21 10:56:07 -04:00
lat9nq
4ecedc4991
vk_buffer_cache: Format
2023-07-18 19:56:20 -04:00
lat9nq
71b3b2a2f0
general: Silence -Wshadow{,-uncaptured-local} warnings
...
These occur in the latest commits in LLVM Clang.
2023-07-18 19:31:35 -04:00
GPUCode
4347dd26c6
buffer_cache: Increase number of texture buffers
2023-07-15 23:09:58 +03:00
comex
d7c532d889
Fixes and workarounds to make UBSan happier on macOS
...
There are still some other issues not addressed here, but it's a start.
Workarounds for false-positive reports:
- `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`,
because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp )
of how big it thinks objects can be, specifically when dealing with
offset-to-top values used with multiple inheritance. Hopefully this
doesn't have a performance impact.
- `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks
is UB even though it at least arguably isn't. See the link in the
comment for more information.
Fixes for correct reports:
- `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to
avoid UB from pointer overflow (when pointer arithmetic wraps around
the address space).
- `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`;
avoid calling methods on it in this case. (The existing code returns
a garbage reference to a field, which is then passed into
`LoadWatchpointArray`, and apparently it's never used, so it's
harmless in practice but still triggers UBSan.)
- `KAutoObject::Close`: This function calls `this->Destroy()`, which
overwrites the beginning of the object with junk (specifically a free
list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan
complains about a type mismatch because the vtable has been
overwritten, and I believe this is indeed UB. `UnregisterWithKernel`
also loads `m_kernel` from the 'freed' object, which seems to be
technically safe (the overwriting doesn't extend as far as that
field), but seems dubious. Switch to a `static` method and load
`m_kernel` in advance.
2023-07-15 12:00:28 -07:00
Alexandre Bouvier
c3050c1b48
cmake: allow using system VMA library
2023-07-12 04:51:45 +02:00
bunnei
ce7c418e0c
Merge pull request #10996 from Kelebek1/readblock_optimisation
...
Use spans over guest memory where possible instead of copying data
2023-07-10 18:54:19 -07:00
liamwhite
d8eb37fbec
Merge pull request #10994 from liamwhite/ue4-preferred
...
vulkan_common: use device local preferred for image memory
2023-07-05 09:23:56 -04:00
liamwhite
f71140fbd9
Merge pull request #11012 from gidoly/metroid-fix
...
Fix regression by unreal engine fix pr #11009
2023-07-05 09:23:34 -04:00
bunnei
1462db4694
video_core: vulkan_device: Disable timeline semaphore on Turnip, fix qcom version check.
2023-07-03 19:25:06 -07:00
bunnei
44af2e32a4
Merge pull request #10964 from bunnei/gpu-remove-qcom-check
...
video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
2023-07-03 16:59:29 -07:00
bunnei
cef7aaa8ec
video_core: vulkan_device: Change to driver version check.
2023-07-03 14:25:06 -07:00
gidoly
408a9cd50d
oops re open
2023-07-03 20:25:23 +09:00
Kelebek1
6f7cb69c94
Use spans over guest memory where possible instead of copying data.
2023-07-02 23:09:48 +01:00
liamwhite
5e3695ecaa
Merge pull request #10479 from GPUCode/format-list
...
Add support for VK_KHR_image_format_list
2023-07-02 17:38:21 -04:00
liamwhite
eaa62aee98
Merge pull request #10942 from FernandoS27/android-is-a-pain-in-the-a--
...
Memory Tracking: Add mechanism to register small writes when gpu page is contested by GPU
2023-07-02 11:29:01 -04:00
Liam
ad1946b893
vulkan_common: use device local preferred for image memory
2023-07-01 23:44:57 -04:00
Liam
34c448bad4
Revert "texture_cache: Fix incorrect logic for AccelerateDMA"
...
This reverts commit 1fc47361a1
.
2023-07-01 23:37:50 -04:00
liamwhite
146769f44e
Merge pull request #10984 from comex/cob
...
Minor cleanup in BufferCacheRuntime::ReserveNullBuffer
2023-07-01 22:38:33 -04:00
liamwhite
ae7e9b5469
Merge pull request #10974 from Steveice10/macos_vk
...
vulkan: Improvements to macOS surface creation
2023-07-01 22:38:26 -04:00
liamwhite
971b89b979
Merge pull request #10970 from Morph1984/thing
...
general: Misc changes that did not deserve their own PRs
2023-07-01 22:38:18 -04:00
comex
1e3b2328a6
Minor cleanup in BufferCacheRuntime::ReserveNullBuffer
...
As far as I can tell, there is no reason to OR this bit in separately.
2023-07-01 12:00:25 -07:00
GPUCode
272916eeaf
renderer_vulkan: Fix some missing view formats
...
* Many times the format itself wouldn't have been added to the list causing device losses for nvidia GPUs
* Also account for ASTC acceleration storage views
2023-07-01 16:03:35 +03:00
GPUCode
95cefaf993
renderer_vulkan: Add support for VK_KHR_image_format_list
2023-07-01 16:03:29 +03:00
Steveice10
e146a00345
vulkan: Use newer VK_EXT_metal_surface to create surface for MoltenVK.
2023-06-30 23:46:03 -07:00
Morph
5a09fa5012
maxwell_dma: Specify dst_operand.pitch instead of a temp var
2023-06-30 21:49:59 -04:00
Morph
310b6cf4af
general: Use ScratchBuffer where possible
2023-06-30 21:49:59 -04:00
Fernando S
a10bdaf934
Merge pull request #10953 from FernandoS27/oh-oopsies-yfc
...
Texture cache: Fix YFC regression due to code testing
2023-06-30 20:25:09 +02:00
Fernando S
9252ad4e10
Merge pull request #10956 from FernandoS27/pikmin-another-game-ill-hate
...
AccelerateDMA: Don't accelerate 3D texture DMA operations
2023-06-30 09:37:07 +02:00
bunnei
ddcd89afd4
video_core: vulkan_device: Scope S8Gen2 checks to just Qualcomm.
2023-06-29 18:41:38 -07:00
bunnei
dfa040502a
video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
2023-06-29 17:37:42 -07:00
Fernando Sahmkow
596a6132b9
AccelerateDMA: Don't accelerate 3D texture DMA operations
2023-06-29 17:23:29 +02:00
Fernando Sahmkow
b62121fd60
Texture cache: Fix YFC regression due to code testing
2023-06-29 11:58:45 +02:00
Matías Locatti
ed93cbd462
Blacklist EDS3 blending from new AMD drivers
2023-06-28 20:10:27 -03:00
Fernando Sahmkow
da440da9f5
Memory Tracking: Optimize tracking to only use atomic writes when contested with the host GPU
2023-06-28 21:32:45 +02:00
Fernando Sahmkow
47d0d292d5
MemoryTracking: Initial setup of atomic writes.
2023-06-28 19:34:21 +02:00
GPUCode
ddcc958336
renderer_vulkan: Prevent crashes when blitting depth stencil
2023-06-27 18:00:09 -07:00
GPUCode
eac46ad7ce
video_core: Add BCn decoding support
2023-06-27 18:00:09 -07:00
GPUCode
b8c96cee5f
renderer_vulkan: Add more feature checking
2023-06-27 18:00:09 -07:00
GPUCode
220a42896d
renderer_vulkan: Don't assume debug tool with debug renderer
...
* Causes crashes because mali drivers don't support debug utils
2023-06-27 18:00:09 -07:00
GPUCode
1522b95658
renderer_vulkan: Bump minimum SPIRV version
...
* 1.3 is guaranteed on all 1.1 drivers
2023-06-27 18:00:09 -07:00
GPUCode
c339af37a7
renderer_vulkan: Respect viewport limit
2023-06-27 18:00:09 -07:00
GPUCode
a9b44d37e1
renderer_vulkan: Don't add transform feedback flag if unsupported
2023-06-27 18:00:09 -07:00
GPUCode
72e7f5b4dd
renderer_vulkan: Add suport for debug report callback
2023-06-27 18:00:09 -07:00
liamwhite
2b3bfafb9e
Merge pull request #10867 from Kelebek1/dma_safe
...
Use safe reads in DMA engine
2023-06-27 11:21:47 -04:00
liamwhite
c6959449d1
Merge pull request #10473 from GPUCode/vma
...
Use vulkan memory allocator
2023-06-27 11:21:36 -04:00
GPUCode
b6c6dcc576
externals: Use cmake subdirectory
2023-06-26 18:59:24 +03:00
Kelebek1
ffbaf574ca
Use safe reads in DMA engine
2023-06-26 11:34:02 +01:00
ameerj
4f160633d3
OpenGL: Limit lmem warmup to NVIDIA
...
🐸
2023-06-25 19:06:51 -04:00
ameerj
405eae3734
shaders: Track local memory usage
2023-06-25 18:59:33 -04:00
ameerj
82107b33a2
OpenGL: Add Local Memory warmup shader
2023-06-25 18:43:23 -04:00
liamwhite
a674022434
Merge pull request #10859 from liamwhite/no-more-atomic-wait
...
general: remove atomic signal and wait
2023-06-23 09:27:14 -04:00
GPUCode
75fb29e08e
vulkan_common: Remove required flags
...
* Allows VMA to fallback to system RAM instead of crashing
2023-06-22 20:03:12 +03:00
Liam
1586f1c0b1
general: remove atomic signal and wait
2023-06-22 09:25:23 -04:00
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
bunnei
e3122c5b46
Merge pull request #10086 from Morph1984/coretiming-ng-1
...
core_timing: Use CNTPCT as the guest CPU tick
2023-06-21 21:12:46 -07:00
bunnei
7eb7d56b1b
Merge pull request #10777 from liamwhite/no-barrier
...
video_core: optionally skip barriers on feedback loops
2023-06-21 21:10:08 -07:00
liamwhite
f1e12e3b08
Merge pull request #10818 from vonchenplus/render_target_samples
...
video_core: add samples check when find render target
2023-06-20 09:55:23 -04:00
liamwhite
93061d1ea1
Merge pull request #10835 from lat9nq/intel-restrict-compute-disable
...
vulkan_device: Restrict compute disable only to affected Intel drivers
2023-06-20 09:55:14 -04:00
liamwhite
6d12e7320b
Merge pull request #10840 from Kelebek1/unbug_blinks_brain
...
Use current GPU address when unmapping GPU pages, not the base
2023-06-20 09:55:01 -04:00
toast2903
78ff2862f6
vulkan_device: Remove brace initializer
...
Co-authored-by: Tobias <thm.frey@gmail.com>
2023-06-19 17:35:12 -04:00
lat9nq
197e13d93d
video_core: Check broken compute earlier
...
Checks it as the system is determining what settings to enable. Reduces
the need to check settings while the system is running.
2023-06-19 17:33:30 -04:00
Kelebek1
711190bb67
Use current GPU address when unmapping GPU pages, not the base
2023-06-19 00:19:50 +01:00
lat9nq
346c253cd2
video_core: Formalize HasBrokenCompute
...
Also limits it to only affected Intel proprietrary driver versions.
vulkan_device: Move broken compute determination
vk_device: Remove errant back quote
2023-06-18 16:15:47 -04:00
liamwhite
23371fa187
Merge pull request #10829 from lat9nq/remove-external-mem
...
vulkan_device: Remove external memory extension
2023-06-18 09:43:03 -04:00
liamwhite
66b8042b59
Merge pull request #10798 from vonchenplus/draw_texture_scale
...
video_core: drawtexture support upscale
2023-06-18 09:42:41 -04:00
liamwhite
8acf728d5d
Merge pull request #10809 from Kelebek1/reduce_vertex_bindings
...
Synchronize vertex buffer even when it doesn't require binding
2023-06-18 09:42:32 -04:00
GPUCode
ee0d68300e
renderer_vulkan: Add missing initializers
2023-06-18 14:14:03 +03:00
GPUCode
7b2f680468
renderer_vulkan: Use VMA for buffers
2023-06-18 12:45:18 +03:00
GPUCode
48e39756f1
renderer_vulkan: Use VMA for images
2023-06-18 12:45:18 +03:00
GPUCode
c60eed36b7
memory_allocator: Remove OpenGL interop
...
* Appears to be unused atm
2023-06-18 12:45:18 +03:00
lat9nq
6448eade2e
externals: Add vma and initialize it
...
video_core: Move vma implementation to library
2023-06-18 12:45:12 +03:00
lat9nq
8a526b2c26
vulkan_device: Remove external memory extension
...
Unused in yuzu. Enables yuzu to boot games in Wine using Vulkan.
2023-06-18 01:20:08 -04:00
Liam
565a1226d7
renderer_vulkan: add missing include
2023-06-17 23:57:47 -04:00
Fernando S
27a36cd51b
Merge pull request #10744 from Wollnashorn/af-for-all
...
video_core: Improved anisotropic filtering heuristics
2023-06-18 00:02:05 +02:00
Kelebek1
e681f5678c
Synchronize vertex buffer even when it doesn't require binding
2023-06-17 17:47:00 -04:00
FengChen
76a676883a
video_core: add samples check when find render target
2023-06-17 23:48:51 +08:00