* Soc and artic_bass: gcc 13+ compatibility fix.
* externals/fmt: update to HEAD fcd3e1e19.
It will fix error.
integer_sequence<bool, (Is == Is)...> [-Werror=tautological-compare]
The updating is helpful and needed.
Fmt has gone through two public versions since its last update
and has fixed many bugs, including new compiler optimizations.
But neither of these two public versions can fix the errors encountered above.
We need to switch to a working version.
It can be fixed after fmt/8e62172.There are still many optimizations,
Such as this one:
Std. h c++23 build fix (# 3856)
And these:
C++23 compatibility: basicstring_view cannot be constructed from nullptr (# 3846)
Fix warning C4702 emitted from format.h (MSVC) (#3866)
Of course, there are other functional improvements as well.
Very helpful.
The selected version is the one that has been checked and works well.
And synchronously updating local code.
* citra_qt/ui: clean up duplicate naming warnings.
* renderer_vulkan: Remove vulkan prefix in SetObjectName
* renderer_vulkan: Rename renderpass cache to render manager
* It is no longer just a cache
* renderer_vulkan: Rewrite descriptor management
* Switch to batched vkUpdateDescriptorSets from cached descriptor sets with templates
* vk_master_semaphore: Remove waitable atomic
* These are buggy on some platforms and regular condition_variables are faster most of the time
* vk_texture_runtime.cpp: remove outdated references
* vk_render_manager: Minor cleanups and rename to RenderManager
* It is no longer just a renderpass cache
* Revert variable name change from render_manager back to renderpass_cache
---------
Co-authored-by: GPUCode <geoster3d@gmail.com>
* vk_texture_runtime: Use boost-`static_vector` for image init-barriers
Uses `static_vector` rather than `std::array`+`u32` when passing input
parameters into the initialization barriers.
* vk_texture_runtime: Use boost-`static_vector` for framebuffer attachments
* vk_texture_runtime: Use boost-`static_vector` for surface uploads
* geometry_pipeline: Remove unneeded assert
* Has been hw-tested that gs works correctly even when not in exclusive mode
* pica_core: Propagate output_mask to gs
* Has been hw-tested to occur under the same conditions that other uniforms are shared
* regs_shader: Intialize GPUREG_SH_INPUTBUFFER_CONFIG to default value
* Default value verified on hw. Tales of Abyss does not update the number of vertex attributes for the geometry unit and expects it to be 2
* texture_codec: Align buffer sizes to bpp
* Prevents out of bounds texture reads when launching TOA from the HOME menu
* pica_core: Make default value more clear
* do not move constant variables
* applet_manager: avoid possible use after move
* use constant references where pointed out by msvc
* extra_hid: initialize response
* ValidateSaveState: passing slot separately is not necessary
* common: mark HashCombine as nodiscard
* cityhash: remove use of using namespace std
* Prefix all size_t with std::
done automatically by executing regex replace `([^:0-9a-zA-Z_])size_t([^0-9a-zA-Z_])` -> `$1std::size_t$2`
based on 7d8f115
* shared_memory.cpp: fix log error format
* fix compiling with pch off
* vk_platform: Add `SetObjectName`
Creates a name-info struct and automatically deduces the object handle type using vulkan-hpp's handle trait data.
Supports `string_view` and `fmt` arguments.
* vk_texture_runtime: Use `SetObjectName` for surface handles
Names both the image handle and the image-view.
* vk_stream_buffer: Add debug object names
Names the buffer and its device memory based on its size and type.
* vk_swapchain: Set swapchain handle debug names
Identifies the swapchain images themselves as well as the semaphores
* vk_present_window: Set handle debug names
* vk_resource_pool: Set debug handle names
* vk_blit_helper: Set debug handle names
* vk_platform: Use `VulkanHandleType` concept
Use a new `concept`-type rather than `enable_if`-patterns to restrict
this function to Vulkan handle-types only.
This fixes a compile-error with gcc I was getting from
`LOG_TRACE`(`error: ‘LOG_TRACE’ was not declared in this scope`) and
`u32`(`error: ‘u32’ was not declared in this scope`) being used without
their header-files being included.
Not sure how `romfs_reader.cpp` is even compiling when nothing in its
include-tree is refers to those macros.
For each draw, Citra will rebind all descriptor set slots and may redundantly re-bind descriptor-sets that were already bound. Instead it should only bind the descriptor-sets that have either changed or have had their buffer-offsets changed. This also allows entire calls to `vkCmdBindDescriptorSets` to be removed in the case that nothing has changed between draw calls.
* android: Android 14 support
* android: New home UI flow
Port of the yuzu-android home UI with a few Citra specific tweaks.
A few important things to note
- New and existing Citra users will be guided through the new setup flow
- Existing game directory location is discarded and will have to be reselected
- Protections around making sure the user has selected a user directory were reworked to fit this new UI. I removed async directory init and DirectoryStateReceivers and check during MainActivity's onResume callback.
- Removed Citra premium. The light/dark theme is now available for everyone.
* android: New blue app theme
* android: Extend UI into status/navigation bar area
* android: Remove yellow theme specific styles
* android: Disable status/navigation bar contrast enforcement
We handle it ourselves so there's no need to use a contrasty background on the system bars
* android: GPU Driver Manager
Includes a rewrite of FileUtil with some helper functions for the manager
* android: Rework NativeLibrary in Kotlin
Besides the rewrite this cleans up the alert dialogs that are used for system errors. Generally removes unused JNI code and makes things a little more consistent.
* android: Home menu support + downloader
* android: Enable minify and resource shrinking
* android: Remove premium page and expose texture filtering modes
* android: Update AGP to 8.1.2
* android: Don't display emulation in cutout area
We don't currently handle the notch properly in the emulation fragment so just don't render under it for now.
* android: native.cpp ClangFormat fixes
* core: SystemTitles: Include std::optional
Without it, the android build would fail
* vk: android: Properly override GetDriverLibrary
* vk_instance: Blacklist timeline semaphore ext on turnip
* vk_platform: Hardcode apiVersion to VK_API_VERSION_1_3
* android: native: Use const where applicable
* android: native: Array pointer access style fix
* android: Share relevant log
Shares the old log if it exists and you haven't booted a game yet and shares the current log if you have booted a game.
* android: Apply dark theme color for software keyboard text
---------
Co-authored-by: GPUCode <geoster3d@gmail.com>