Age | Commit message (Collapse) | Author |
|
|
|
This simplifies the logging system.
This also fixes some lost messages on startup.
The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.
With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
|
|
|
|
yuzu-cmd: hide mouse cursor when started fullscreen
|
|
Currently yuzu will read the mapping but does not connect a controller
despite adding subsequent configurations for it. Read the `connected`
setting for now as a boolean like the Qt frontend.
|
|
Exposed the SDL_ShowCursor function to EmuWindow baseclass. When creating the window (GL or VK) in fullscreen it now automatically hides the cursor.
|
|
service: ns, set: Add PT_BR (Brazilian Portuguese)
|
|
emu_window: Remove global system instance
|
|
renderer_vulkan: Add setting to log pipeline statistics
|
|
It was just the one in emu_window_sdl2, but since _gl and _vk inherit
from it, they all needed adjustments.
Leaves just the one auto system& in main().
|
|
|
|
general: Implement FullscreenMode enumeration
|
|
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.
For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:
Average pipeline statistics
==========================================
Code size: 6433.167
Register count: 32.939
More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
|
|
general: Rename "Frame Limit" references to "Speed Limit"
|
|
config, nvflinger: Add FPS cap setting
|
|
|
|
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate.
This allows us to differentiate it from the fps unlocker setting.
|
|
Allows finer tuning of the FPS limit.
|
|
Prevents us from using an unclear 0 or 1 to describe the fullscreen
mode.
|
|
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.
Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.
Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
|
|
Also add a setting for enable Nsight Aftermath.
|
|
|
|
Reverts 48259de0c1a6a1aca77eec31cb8aca5ca2b680dd to the previous
hierarchy and fixes the resolution issue with this fullscreen mode.
yuzu-cmd will now read the fullscreen_mode setting and use it
appropriately.
|
|
* emu_window_sdl2_vk: Use the generated SDL config
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.
This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
* emu_window_sdl2_vk: Specify the window manager if it should be supported
The original language "not implemented" is wrong if the implementation
exists but is not compiled. This causes a bit of a debugging headache
when it goes wrong. Log it if the window manager is known before
exiting.
* sdl_impl, emu_window: Remove clang ignore
Fixed upstream by
libsdl-org/SDL@25fc40b0bd44c484051064bc6b945ea9943f88dd
* Enable fullscreen support for Vulkan on yuzu-cmd
Hooked up the existing SDL2 logic for fullscreen support in the Vulkan window of yuzu-cmd.
* Change fullscreen logic to attempt desktop resolution first on yuzu-cmd
Changed the order in which we attempt to switch to fullscreen. First try desktop resolution first, if it fails fall back to streched fullscreen using windowed resolution.
Co-authored-by: lat9nq <22451773+lat9nq@users.noreply.github.com>
Co-authored-by: san <san+gitkraken@smederijmerlijn.nl>
|
|
yuzu-cmd: Linux Vulkan fixes
|
|
Fixed upstream by
libsdl-org/SDL@25fc40b0bd44c484051064bc6b945ea9943f88dd
|
|
The original language "not implemented" is wrong if the implementation
exists but is not compiled. This causes a bit of a debugging headache
when it goes wrong. Log it if the window manager is known before
exiting.
|
|
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.
This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
|
|
Many settings in common/settings.h are missing from yuzu-cmd, either
they were added to default_ini.h but not read in, or vice versa, or the
setting was altogether omitted from yuzu-cmd. Some defaults were
reported wrong, so those were fixed where noticed.
|
|
These settings are not being read in config.cpp AND they do not exist in
common/settings.h. Remove their references.
|
|
|
|
|
|
|
|
Also adds documentation for the ReadSetting function.
Address review comments.
Co-authored-by: Mai M. <mathew1800@gmail.com>
|
|
Creates a new BasicSettings class in common/settings, and forces setting
a default and label for each setting that uses it in common/settings.
Moves defaults and labels from both frontends into common settings.
Creates a helper function in each frontend to facillitate reading the
settings now with the new default and label properties.
Settings::Setting is also now a subclass of Settings::BasicSetting. Also
adds documentation for both Setting and BasicSetting.
|
|
GPU: Implement a garbage collector for GPU Caches (project Reaper+)
|
|
Use its std::stop_token to abort shader cache loading.
Using std::stop_token instead of std::atomic_bool allows the usage of
other utilities like std::stop_callback.
|
|
Enabling this setting will allow some titles to present more frames to
the screen as they become available in the nvflinger buffer queue.
|
|
Audio: SDL2 audio backend
|
|
|
|
|
|
textures: Add a toggle for GPU Accelerated ASTC decoder
|
|
This introduces a new setting Enable FS Access Log which saves the filesystem access log to sdmc:/FsAccessLog.txt
If this setting is not enabled, this will indicate to FS to not call OutputAccessLogToSdCard.
Fixes softlocks during loading in Xenoblade Chronicles 2 when certain DLC is enabled.
|
|
|
|
|
|
yuzu-cmd: Fix OpenGL rendering
|
|
|
|
|
|
Co-authored-by: Mai M. <mathew1800@gmail.com>
|
|
|