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
Wollnashorn
3e47ebe2e9
video_core: Only apply AF to 2D (array) image types
2023-06-17 14:20:44 +02:00
Wollnashorn
c309a1c69b
video_core: Removed AF for all mip modes option as it's default now
2023-06-17 11:19:39 +02:00
bunnei
ec423c6919
Merge pull request #10783 from liamwhite/memory
...
video_core: preallocate fewer IR blocks
2023-06-16 16:53:25 -07:00
Feng Chen
b77a247e8c
video_core: drawtexture support upscale
2023-06-16 20:51:15 +08:00
Wollnashorn
2dc0ff79ec
video_core: Use sampler IDs instead pointers in the pipeline config
...
The previous approach of storing pointers returned by `GetGraphicsSampler`/`GetComputeSampler` caused UB, as these functions can cause reallocation of the sampler slot vector and therefore invalidate the pointers
2023-06-16 13:45:14 +02:00
bunnei
0114abad9a
Merge pull request #10790 from liamwhite/arm-driver-moment
...
vulkan_device: disable extended_dynamic_state2 on ARM drivers
2023-06-15 18:34:31 -07:00
bunnei
ca1cb9fd19
Merge pull request #10775 from liamwhite/cb2
...
renderer_vulkan: propagate conditional barrier support
2023-06-15 17:37:03 -07:00
Wollnashorn
a3b7b5b22a
video_core: Fallback to default anisotropy instead to 1x anisotropy
2023-06-15 23:16:26 +02:00
Wollnashorn
745d16132b
video_core: Disable AF for non-color image formats
2023-06-15 20:59:33 +02:00
Wollnashorn
3e8cd91d54
video_core: Fixed compilation errors because of name shadowing
2023-06-15 18:46:40 +02:00
Liam
3304d58edb
vulkan_device: disable extended_dynamic_state2 on ARM drivers
2023-06-15 12:29:54 -04:00
Wollnashorn
42c944b250
video_core: Add per-image anisotropy heuristics (format & mip count)
2023-06-15 18:19:32 +02:00
Liam
2c01669046
video_core: preallocate fewer IR blocks
2023-06-14 21:37:57 -04:00
Liam
8d6aefdcc4
video_core: optionally skip barriers on feedback loops
2023-06-14 14:11:46 -04:00
Liam
cc4334870b
renderer_vulkan: propagate conditional barrier support
2023-06-14 10:49:40 -04:00
Wollnashorn
0de6b9e3f5
video_core: Apply AF only to samplers with normal LOD range [0, 1+x]
2023-06-14 13:27:27 +02:00
Wollnashorn
a9e4dddad5
video_core: Fix default anisotropic heuristic
2023-06-14 11:21:22 +02:00
Wollnashorn
44f616edb9
video_core: Never apply AF to None mipmap mode
...
Should fix some artifacts with the "apply anisotropic filtering for all mipmap modes" option
2023-06-14 03:57:39 +02:00
Wollnashorn
b9bba3ac89
video_core: Disable anisotropic filtering for samplers with depth compare
2023-06-13 21:32:32 +02:00
Morph
925586f97b
buffer_cache_base: Specify buffer type in HostBindings
...
Avoid reinterpret-casting from void pointer since the type is already known at compile time.
2023-06-13 00:59:42 -04:00
Wollnashorn
0eacf547c0
video_core: Option to apply anisotropic filtering for all mipmap modes
2023-06-13 03:21:01 +02:00
liamwhite
e0de6dd63f
Merge pull request #10675 from liamwhite/scaler
...
image_info: adjust rescale thresholds and refactor constant use
2023-06-12 21:16:36 -04:00
Matías Locatti
42b2bc204f
Merge pull request #10699 from liamwhite/conditional-barrier
...
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-12 16:50:59 -03:00
bunnei
ad8f122ab1
Merge pull request #10693 from liamwhite/f64-to-f32
...
shader_recompiler: translate f64 to f32 when unsupported on host
2023-06-12 12:46:54 -07:00
bunnei
569f8d3b44
Merge pull request #10668 from Kelebek1/reduce_vertex_bindings
...
Combine vertex/transform feedback buffer binding into a single call
2023-06-11 11:33:48 -07:00