| Age | Commit message (Collapse) | Author |
|
Uses mailbox, then immediate for unlocked framerate depending on
support for either. Also adds support for FIFO_RELAXED.
This function now assumes vsync_mode was originially configured to a value
that the driver supports.
vk_swapchain: ChooseSwapPresentMode determines updates
Simplifies swapchain a bit and allows us to change the present mode
during guest runtime.
vk_swapchain: Fix MSVC error
vk_swapchain: Enforce available present modes
Some frontends don't check the value of vsync_mode before comitting it.
Just as well, since a driver update or misconfiguration could problems
in the swap chain.
vk_swapchain: Silence warnings
Silences GCC warnings implicit-fallthrough and shadow, which apparently
are not enabled on clang.
|
|
We don't need the whole EmuWindow when creating a surface,
and it creates onerous requirements outside of typical usage for
creating a surface elsewhere.
|
|
Previously, yuzu would try and guess which vsync mode to use given
different scenarios, but apparently we didn't always get it right. This
exposes the separate modes in a drop-down the user can select.
If a mode isn't available in Vulkan, it defaults to FIFO.
|
|
|
|
* Depends on the layout dimentions and thus should be recreated as well
|
|
* During pipeline configure the function would acquire some payload space from the descriptor update queue,
write the descriptor data on the GPU thread and give the scheduler a pointer to the beginning of said space to update it later.
TickFrame resets the payload cursor, used to track acquires, back to the beginning of the buffer.
This wasn't a problem before since WaitWorker was called at the end of the frame but now it is.
If a frame writes to a cursor before the scheduler catches up, it will crash
* To fix this the payload buffer has been increased to account for the in flight frames that are allowed to exist now.
TickFrame will switch between the payload spaces instead of resetting
|
|
|
|
Y.F.C Buffer Cache Revamp
|
|
|
|
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to host.
WIP
|
|
|
|
Intel's SPIR-V shader compiler is broken. For now, skip compiling any compute pipelines until they fix this issue.
This is not a perfect workaround, as there are a small subset of non-compute pipelines that still cause it to crash, but this should cover the majority of crashes.
It is unfortunate that even with a test case reported 6 months ago the issue has not been fixed in favor of fixing "the most popular games and apps".
Intel, you can do better than this.
|
|
vulkan: pick alpha composite flags based on available values
|
|
maxwell_3d: fix out of bounds array access in size estimation
|
|
|
|
|
|
|
|
shader_recompiler: Fix ImageGather rounding on AMD/Intel
|
|
|
|
|
|
video_core: update imageinfo implement
|
|
|
|
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957, #6956).
|
|
[texture_cache] Only upload GPU-modified overlaps
|
|
|
|
open doc
|
|
|
|
|
|
memory: rename global memory references to application memory
|
|
|
|
vulkan: fix scheduler chunk reserve
|
|
|
|
|
|
vulkan: fix more excessive waiting in scheduler
|
|
|
|
bounded_threadsafe_queue: Use simplified impl of bounded queue
|
|
[video_core] Disable SRGB border color conversion in samplers
|
|
Adds the PushModes Try and Wait to allow producers to specify how they want to push their data to the queue if the queue is full.
If the queue is full:
- Try will fail to push to the queue, returning false. Try only returns true if it successfully pushes to the queue. This may result in items not being pushed into the queue.
- Wait will wait until a slot is available to push to the queue, resulting in potential for deadlock if a consumer is not running.
|
|
Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
|
|
|
|
gpu_thread: Use bounded queue
|