| Age | Commit message (Collapse) | Author |
|
skip fragment shaders when rasterizer is disabled
initialize env_ptrs
|
|
vulkan: centralize config
|
|
general: Reimplement per-game configurations
|
|
|
|
|
|
vma: enable options everywhere
|
|
vk_descriptor_pool: Disallow descriptor set free
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes and workarounds to make UBSan happier on macOS
|
|
buffer_cache: Increase number of texture buffers
|
|
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...
|
|
|
|
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.
|
|
Just puts them all neatly into one place.
|
|
|
|
These occur in the latest commits in LLVM Clang.
|
|
|
|
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.
|
|
|
|
Use spans over guest memory where possible instead of copying data
|
|
vulkan_common: use device local preferred for image memory
|
|
Fix regression by unreal engine fix pr #11009
|
|
version check.
|
|
video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
|
|
|
|
|
|
|
|
Add support for VK_KHR_image_format_list
|
|
Memory Tracking: Add mechanism to register small writes when gpu page is contested by GPU
|
|
|
|
This reverts commit 1fc47361a12afd91d8ea0b76378e0b3d4feb93a6.
|
|
Minor cleanup in BufferCacheRuntime::ReserveNullBuffer
|
|
vulkan: Improvements to macOS surface creation
|
|
general: Misc changes that did not deserve their own PRs
|
|
As far as I can tell, there is no reason to OR this bit in separately.
|
|
* 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
|
|
|
|
|
|
|
|
|
|
Texture cache: Fix YFC regression due to code testing
|
|
AccelerateDMA: Don't accelerate 3D texture DMA operations
|
|
|