Age | Commit message (Collapse) | Author |
|
|
|
vk_swapchain: Use immediate present mode when mailbox is unavailable and FPS is unlocked
|
|
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
|
|
videocore: Use std::jthread for worker threads
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required.
First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`.
Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
|
|
During script playback/recording, the user has to see what happens currently. For that, a new label has been added to the bottom-left corner, always displaying the current state of the TASing system.
|
|
First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit.
Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script.
|
|
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called.
The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate.
Co-authored-by: Naii-the-Baf <sfabian200@gmail.com>
Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
|
|
Remove audio stretching
|
|
input_common: Add advanced setting for 8 player support
|
|
ngct: Stub Match
|
|
vulkan_debug_callback: Ignore InvalidCommandBuffer-VkDescriptorSet errors
|
|
vulkan_device: Reorder Float16Int8 declaration
|
|
This variable was going out of scope before its usage in the vulkan device creation, causing a crash on very specific drivers.
|
|
This reverts commit 62e88d0e7455e37840db7e2a8e199bc6ca176966, reversing
changes made to edf3da346f4ec0ca492b427f4f693d56e84abc52.
|
|
vfs: Partially implement GetFileTimeStampRaw
|
|
|
|
|
|
|
|
|
|
|
|
Useful for jthreads which make use of the threadsafe queues.
|
|
|
|
Needed for Cruis'n Blast
|
|
|
|
Gets rid of homebrew warnings using this func
|
|
core: Destroy main_process during shutdown
|
|
The main_process was never being cleaned up, causing a noticeable memory leak after subsequent launches. This change cleans up the memory during Core Shutdown, mitigating the leak.
|
|
This validation error is spammed on some titles, asserting that VkDescriptorSet 0x0[] was destroyed.
This is likely a validation layer bug when using VK_KHR_push_descriptor, which can avoid using traditional VkDescriptorSet. It should be safe to ignore for now.
|
|
Vulkan: Disable VK_EXT_SAMPLER_FILTER_MINMAX in GCN AMD
|
|
|
|
Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
|
|
common_funcs: Add enum flag bitwise shift operator overloads
|
|
Vulkan/Descriptors: Increase sets per pool on AMD propietary driver.
|
|
|
|
vk_rasterizer: Fix dynamic StencilOp updating when two faces are enabled
|
|
|
|
This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type)
|
|
FS: Mark recursive CreateDirectory as inaccurate and temporary
|
|
is unlocked
Allows drivers that do not support VK_PRESENT_MODE_MAILBOX_KHR the ability to present at a framerate higher than the monitor's refresh rate when the FPS is unlocked.
|
|
vk_state_tracker: Remove unused function
|
|
This function was incorrectly using the stencil_two_side_enable register when dynamically updating the StencilOp.
|
|
|