Commit graph

8249 commits

Author SHA1 Message Date
GPUCode 6ec079ede8
core: De-globalize HLE lock (#7212) 2023-11-28 14:15:27 -08:00
Wunk 83b329f6e1
video_core/shader: Refactor JIT-Engines into JitEngine type (#7210) 2023-11-26 15:15:36 -08:00
GPUCode db7b929e47
core: Remove special regions (#7211) 2023-11-26 12:07:30 -08:00
Steveice10 dc8425a986
kernel: Fix memory mapping issue introduced in https://github.com/citra-emu/citra/pull/6680 (#7208) 2023-11-26 12:07:10 -08:00
Steveice10 670e9936a4
audio_core: Only perform audio stretching if below full speed. (#7201) 2023-11-26 12:06:59 -08:00
Steveice10 c0ecdb689d
cfg: Update preferred region data on-demand. (#7206) 2023-11-24 23:10:58 -08:00
Wunk 68e6a2185d
Fix missing u32 and LOG_TRACE includes (#7207)
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.
2023-11-23 15:39:17 -08:00
Steveice10 09b36c589b
openal: Enable AL_DIRECT_CHANNELS_SOFT when present. (#7202) 2023-11-22 23:09:22 -08:00
GPUCode 1dc0fa7bb5
vk_pipeline_cache: Make pipeline cache reads more robust (#7194) 2023-11-22 23:09:12 -08:00
GPUCode 85bd1be852
code: Add texture sampling option (#7118)
* This replaces the nearest neighbour filter that shouldn't have existed in the first place
2023-11-23 02:04:47 +02:00
Charles Lombardo c17ec1d1aa
Android UI Overhaul Part 2 (#7147) 2023-11-22 14:31:48 -08:00
Steveice10 33a1f27a99
cfg: Load and save MCU config as binary file. (#7200) 2023-11-21 17:56:08 -08:00
GPUCode 5733c8681e
vk_pipeline_cache: Move SPIRV emittion to a worker thread (#7170)
* vk_scheduler: Remove RenderpassCache dependency

* vk_pipeline_cache: Move spirv emittion to worker thread
2023-11-20 20:05:35 -08:00
PabloMK7 f8ae41dfe3
Implement cfg UUID Clock Sequence (#7169)
* Implement cfg UUID Clock Sequence

* Remove unneeded variable.

* Apply suggestions

* Apply suggestions
2023-11-20 20:05:16 -08:00
Steveice10 ca6dae1744
fs: Fix save data secure value stubs. (#7191) 2023-11-19 10:18:23 -08:00
PabloMK7 b6acebcb11
Stub some missing AM Ticket functions (#7172) 2023-11-18 15:55:47 -08:00
Castor215 ba702043f0
externals: allow user to use system Catch2 (#7190) 2023-11-18 15:54:27 -08:00
Vitor K a1532f813b
config: Reorder default hotkeys (#7175) 2023-11-17 03:14:17 -08:00
GPUCode 26d5727b19
video_core: Merge tex0 and tex_cube (#7173) 2023-11-17 03:14:10 -08:00
PabloMK7 680e132318
Unlock RW access to opened files on windows (#7161)
* Unlock RW access to opened files on windows

* Add missing include
2023-11-17 03:14:00 -08:00
Wunk 90a5d989e7
mic: Fix gain undeclared identifier (#7177) 2023-11-15 19:27:43 -08:00
PabloMK7 de40153fa4
Implement PS:GetRandomBytes and use openssl for random bytes (#7164) 2023-11-14 16:15:50 -08:00
PabloMK7 e9936e01c2
Stub QTM_S:GetHeadtrackingInfo (#7166)
* Stub QTM_S:GetHeadtrackingInfo

* Suggestions
2023-11-15 02:04:14 +02:00
GPUCode e28c2a390c
core: Make running_core always match kernel current_cpu (#7159) 2023-11-14 04:31:25 -08:00
PabloMK7 63d1830429
Download TWL titles from NUS and list them in AM. (#7162)
* Download TWL titles from NUS and list them in AM.

* Remove duplicate entries.

* Move TODO comment
2023-11-14 01:33:58 -08:00
Steveice10 88cc6acb4d
hle: Fix session limits for srv: and soc:U. (#7160) 2023-11-14 01:33:47 -08:00
PabloMK7 3b31720c4d
Map MappedBuffer guard pages in a single operation. (#7158) 2023-11-14 01:33:38 -08:00
Steveice10 f9bbae81aa
hw/aes: Clean up key generator. (#7143) 2023-11-13 13:35:30 -08:00
PabloMK7 1c793deece
Lower log level of CSND::ExecuteCommands stub warning (#7163) 2023-11-13 13:34:56 -08:00
GPUCode d5b50a9fc0
spv_fs_shader_gen: Remove OpTypeSampledImage from texture buffers (#7153) 2023-11-12 22:40:30 -08:00
GPUCode 168f168c33
spv_fs_shader_gen: Implement quaternion correction with barycentric extension (#7152) 2023-11-12 22:40:21 -08:00
Wunk 312068eebf
renderer_vulkan: Optimize descriptor binding (#7142)
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.
2023-11-12 14:17:38 -08:00
Steveice10 5118798c30
mic: Refactor microphone state and management. (#7134) 2023-11-12 13:03:07 -08:00
Wunk 831c9c4a38
renderer_vulkan: Import host memory for screenshots (#7132) 2023-11-12 13:02:55 -08:00
SachinVin ceeda05798
assert/logging: Stop the logging thread and flush the backends before crashing (#7146) 2023-11-11 11:55:42 -08:00
Vitor K 222b1cc0d7
arm_dyncom: remove reference nullptr comparison (#7151) 2023-11-11 11:52:40 -08:00
merry 271218b733
shader_jit_a64_compiler: Improve MAX, MIN (#7137) 2023-11-11 18:27:01 +05:30
merry 80213bf88f
shader_jit_a64_compiler: Improve Compile_SwizzleSrc (#7136) 2023-11-11 18:26:48 +05:30
Charles Lombardo fa08df21a5
Android UI Overhaul Part 1 (#7108)
* 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>
2023-11-10 15:16:54 -08:00
Steveice10 d4f31bc617
video_core: Fix fragment shader interlock usage on OpenGL. (#7144) 2023-11-10 13:14:52 -08:00
Steveice10 13d02c14e0
input_common: Set SDL hints to enable DualShock 4 / DualSense motion. (#7121) 2023-11-10 13:14:40 -08:00
Steveice10 84f9e9a10f
video_core: Perform quaternion correction and interpolation in fragment shader using barycentric extension. (#7126) 2023-11-09 15:23:56 -08:00
Wunk ee372572a6
common/aarch64: Push/Pop pairs of registers at a time (#7129) 2023-11-08 15:39:11 -08:00
GPUCode 7930e1ea86
rasterizer_cache: Avoid dumping render targets (#7130) 2023-11-07 18:13:03 -08:00
Wunk 1d4d421097
shader_jit_a64: Optimize MOVA dest-enable (#7122)
Rather than branching the 3 cases of dest-enablement, just emit a single
move-and-sign-extend instruction for each case.

From this review:
https://github.com/citra-emu/citra/pull/7002#discussion_r1381560584
2023-11-07 11:46:40 -08:00
JosJuice 3f4b57635e
android: Use case insensitivity in DocumentsTree (#7115)
* android: Unify DocumentNode's `key` and `name`

They're effectively the same data, just obtained in different ways.

* android: Remove getFilenameWithExtensions method

After the previous commit, there's only one remaining use of
getFilenameWithExtensions. Let's get rid of that one in favor of
DocumentFile.getName so we no longer need to do manual URI parsing.

* android: Use case insensitivity in DocumentsTree

External storage on Android is case insensitive. This is still the case
when accessing it through SAF. (Of course, SAF makes no guarantees about
whether the storage location picked by the user is backed by external
storage or whether it's case insensitive, but I'm just going to ignore
that for now because I am *so tired of SAF*)

Because the underlying file system is case insensitive, Citra's caching
layer that had to be implemented because SAF's performance is atrocious
also needs to be case insensitive. Otherwise, we get a problem in the
following scenario:

1. Citra wants to check if a particular folder exists in sdmc, and if
   not, create it.
2. The folder does exist, but it has a different capitalization than
   Citra expects, due to a mismatch between Citra's code and (typically)
   files dumped from a real 3DS using ThreeSD.
3. Citra tries to open the folder, but DocumentsTree fails to find it,
   because the case doesn't match.
4. Citra then tries to create the folder, but creating the folder fails,
   because the underlying filesystem considers the folder to exist.
5. The game fails to start.

(Sorry, did I say creating the folder fails? Actually, a new folder does
get created, with " (1)" appended to the end of the name. SAF makes no
guarantees whatsoever about what happens in this situation – it's all
determined by the storage provider!)

This commit makes the caching layer case insensitive so that the
described scenario will work better.
2023-11-07 11:46:25 -08:00
Steveice10 86566f1c14
build: Fortify non-MSVC builds. (#7120) 2023-11-06 17:55:41 -08:00
GPUCode 3f1f0aa7c2
arm: De-virtualize ThreadContext (#7119)
* arm: Move ARM_Interface to core namespace

* arm: De-virtualize ThreadContext
2023-11-06 17:55:30 -08:00
Wunk 8fe147b8f9
video_core: Use binary memory-literals for memory-sizes (#7127)
Replaces `... * 1024 * 1024` with `_MiB`/`_GiB` literals.
2023-11-06 23:38:54 +02:00
GPUCode 1f6393e7d5
video_core: Refactor GLSL fragment emitter (#7093)
* video_core: Refactor GLSL fragment emitter

* shader: Add back custom normal maps
2023-11-06 12:26:28 -08:00