Compare commits

..

494 Commits

Author SHA1 Message Date
Fernando Sahmkow
67e0d38152 Vulkan: Fix regression caused by limiting render area to width/height of rendef targets. 2022-10-30 21:24:28 +01:00
Morph
e09756b2df Merge pull request #9151 from liamwhite/dram-size
kernel: reinitialize after dram layout change
2022-10-30 13:23:57 -04:00
Liam
8f00c59462 kernel: reinitialize after dram layout change 2022-10-30 11:01:22 -04:00
liamwhite
1cdd2d5204 Merge pull request #9091 from Docteh/what_compat_list
UI: Add option to hide the compatibility list
2022-10-30 09:17:16 -04:00
bunnei
ccfdb7c1af Merge pull request #9149 from german77/volum
service: am: Stub SetRecordVolumeMuted
2022-10-29 23:36:15 -07:00
german77
6f0f7f1547 service: am: Stub SetRecordVolumeMuted
Used by bayonetta 3
2022-10-30 00:34:33 -05:00
bunnei
316a2c1715 Merge pull request #9148 from liamwhite/crab-language-at-home
k_server_session: fix crashes
2022-10-29 21:03:53 -07:00
Liam
d867ae5ab6 k_server_session: fix crashes 2022-10-29 23:05:56 -04:00
bunnei
c4d91488d9 Merge pull request #9137 from liamwhite/hbmenu
Improved support for nx-hbmenu
2022-10-29 16:11:26 -07:00
bunnei
72bff8ba11 Merge pull request #9140 from vonchenplus/darw_index_bufferx_first_error
video_core: Fix drawing trigger mechanism regression
2022-10-29 16:10:53 -07:00
bunnei
84d15c7f47 Merge pull request #9127 from vonchenplus/vulkan_clear
video_core: Catch vulkan clear op not all channel need clear
2022-10-27 19:19:40 -07:00
liamwhite
8ce6256722 Merge pull request #9138 from liamwhite/hbl-stacktrace
arm_interface: curb infinite recursion in stacktrace generation
2022-10-27 20:07:48 -04:00
Liam
3e6840a74c arm_interface: curb infinite recursion in stacktrace generation 2022-10-27 16:01:05 -04:00
bunnei
25d53e66d1 Merge pull request #9115 from vonchenplus/game_name_by_language
file_sys: Priority display of game titles in the current language
2022-10-27 11:33:02 -07:00
bunnei
20118075c5 Merge pull request #9126 from vonchenplus/revert-8068-shader-if-false
Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass"
2022-10-27 10:11:02 -07:00
Liam
2cdfbbc07d nvnflinger: release queued handles immediately on disconnection 2022-10-27 08:28:02 -04:00
Liam
cdb9fe978f vi: implement CloseDisplay 2022-10-27 08:27:38 -04:00
liamwhite
86a3a0b1b4 Merge pull request #9134 from lioncash/init
audio_in/out_system: Pass Initialize members by value where applicable
2022-10-27 08:10:24 -04:00
FengChen
f6e7cae62c video_core: Fix drawing trigger mechanism regression 2022-10-27 13:26:52 +08:00
bunnei
2dd6a2352d Merge pull request #9125 from liamwhite/dummy-scheduler
kernel: refactor dummy thread wakeups
2022-10-26 09:51:44 -07:00
Lioncash
e0ec9ffc36 audio_in/out_system: Pass Initialize members by value where applicable
applet_resource_user_id isn't actually modified and is just assigned to
a member variable, so this doesn't need to be a mutable reference.

Similarly, the device name itself isn't modified and is only moved. We
pass by value here, since we can still perform the move, but eliminate a
sneaky set of calls that can unintentionally destroy the original
string. Given how nested the calls are, it's good to get rid of this
potential vector for a use-after-move bug.
2022-10-26 11:21:48 -04:00
Mai
041eb5bf57 Merge pull request #9131 from Morph1984/contiguous
concepts: Use the std::contiguous_iterator concept
2022-10-26 15:12:48 +00:00
Morph
8b4d5aeb4f concepts: Use the std::contiguous_iterator concept
This also covers std::span, which does not have a const iterator.

Also renames IsSTLContainer to IsContiguousContainer to explicitly convey its semantics.
2022-10-26 00:41:54 -04:00
liamwhite
d8e3380ea5 Merge pull request #9128 from abouvier/patch-1
tests: fix for -Wall
2022-10-25 12:36:25 -04:00
liamwhite
e59bd6c335 Merge pull request #9113 from german77/peer_pressure
service: nfp: Allow amiibos without keys
2022-10-25 12:13:31 -04:00
liamwhite
77803d96be Merge pull request #9107 from german77/gidoly_rules
input_common: cache vibration tests
2022-10-25 12:13:18 -04:00
Alexandre Bouvier
fa9b7db76f tests: fix for -Wall
Fix #9123
2022-10-25 15:20:23 +00:00
FengChen
0ec1801bc1 video_core: Catch vulkan clear op not all channel need clear 2022-10-25 22:39:29 +08:00
liamwhite
fa913a702f Merge pull request #9112 from vonchenplus/deferred_draw
video_core: Reimplementing the maxwell drawing trigger mechanism
2022-10-25 09:42:59 -04:00
liamwhite
3c38bd7cf0 Merge pull request #9119 from liamwhite/shutdown-barrier
core: barrier service thread shutdown
2022-10-25 06:45:51 -04:00
Feng Chen
165bce3c2d Revert "shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass" 2022-10-25 12:57:25 +08:00
Liam
1a378a7769 kernel: refactor dummy thread wakeups 2022-10-24 19:52:01 -04:00
bunnei
cbb6c24215 Merge pull request #8873 from vonchenplus/fix_legacy_location_error
video_core: Fix legacy to generic location unpaired
2022-10-24 10:50:24 -07:00
FengChen
1689e0a71f file_sys: Priority display of game titles in the current language 2022-10-24 21:55:25 +08:00
Fernando S
2e782a154d Merge pull request #9122 from liamwhite/burnt-chicken
nvdrv: fix container destruction order
2022-10-24 12:41:46 +02:00
bunnei
0313ee7793 Merge pull request #9105 from Morph1984/warnings
general: Treat more warnings as errors
2022-10-23 17:25:18 -07:00
Liam
05f2673648 nvdrv: fix container destruction order 2022-10-23 19:25:57 -04:00
Liam
2d90a927c9 core: barrier service thread shutdown 2022-10-23 05:45:45 -04:00
german77
2ccbf5abdd core: hid: Add handheld to nfc devices 2022-10-22 14:05:00 -05:00
Morph
120cd450e5 CMakeLists: Disable -Wbraced-scalar-init on Clang
Clang erroneously emits this warning when using designated initializers.
2022-10-22 15:02:04 -04:00
Morph
f51c71e956 yuzu: Resolve -Wpessimizing-move 2022-10-22 15:02:04 -04:00
Morph
bb31b0f261 startup_checks: Resolve -Wstringop-truncation
Copies up to sizeof(p_name) - 1 in strncpy and null terminates it at p_name[254]
2022-10-22 15:02:04 -04:00
Morph
f86774c1ac startup_checks: Resolve -Wformat 2022-10-22 15:02:04 -04:00
Morph
42c4ef7373 general: Resolve -Wunused-but-set-variable 2022-10-22 15:02:04 -04:00
Morph
c7e079a5d4 general: Resolve -Wunused-lambda-capture and C5233 2022-10-22 15:02:04 -04:00
Morph
6908ea2284 general: Resolve -Wclass-memaccess 2022-10-22 15:02:04 -04:00
Morph
347432524c ipc_helpers: Ignore GCC compiler warnings only on GCC
Clang and ICC for whatever reason also defines __GNUC__. Exclude them from this check.
2022-10-22 15:02:04 -04:00
Morph
b02c3f2314 CMakeLists: Enforce C5233 on MSVC
This is similar to Clang's -Wunused-lambda-capture
2022-10-22 15:02:04 -04:00
Morph
3822e31323 CMakeLists: Disable C4100 and C4324
Disabling C4100 is similar to -Wno-unused-parameter
2022-10-22 15:02:04 -04:00
Morph
cae108404a CMakeLists: Remove redundant warnings
These warnings are already included in /W3.
2022-10-22 15:02:04 -04:00
Morph
bad3025951 decoders: Use 2's complement instead of unary -
Resolves C4146 on MSVC
2022-10-22 15:02:04 -04:00
Morph
f3c40f4a20 CMakeLists: Treat MSVC warnings as errors 2022-10-22 15:02:04 -04:00
Morph
e6ab1f673b general: Enforce C4800 everywhere except in video_core 2022-10-22 15:02:04 -04:00
Morph
93297d14d8 CMakeLists: Remove all redundant warnings
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22 15:02:04 -04:00
Morph
91c410c918 CMakeLists: Consolidate all unused warnings into -Wunused 2022-10-22 15:02:04 -04:00
Morph
496695618a CMakeLists: Treat -Wall and -Wextra as errors 2022-10-22 15:02:04 -04:00
Fernando S
0860fffd78 Merge pull request #9095 from FernandoS27/meat-good-vegetable-bad
Maxwell3D/Puller: Fix regressions and syncing issues.
2022-10-22 13:06:03 +02:00
FengChen
2f90694797 video_core: Implement maxwell inline_index method 2022-10-22 16:58:23 +08:00
Narr the Reg
3e0aaeba98 service: nfp: Allow amiibos without keys 2022-10-21 23:08:07 -05:00
Narr the Reg
82fdfb33ac service: nfp: remove unnecessary include 2022-10-21 21:54:31 -05:00
FengChen
1f54cd4ac7 video_coare: Reimplementing the maxwell drawing trigger mechanism 2022-10-21 17:09:22 +08:00
liamwhite
efaedcab31 Merge pull request #9106 from lioncash/copy-err
hid/npad: Fix copy size in GetSupportedNpadIdTypes
2022-10-21 03:47:02 -04:00
liamwhite
49682a0481 Merge pull request #9108 from Morph1984/r32-b24g8
format_lookup_table: Implement R32_B24G8 with D32_FLOAT_S8_UINT
2022-10-21 03:45:49 -04:00
liamwhite
aa9e9052a6 Merge pull request #9109 from lioncash/session
k_session_request: Add missing override
2022-10-21 03:44:30 -04:00
Lioncash
93a7058d8e k_session_request: Add missing override specifier 2022-10-21 01:56:14 -04:00
Morph
f16db300c6 format_lookup_table: Implement R32_B24G8 with D32_FLOAT_S8_UINT
This format is similar to Z32_FLOAT_X24S8_UINT, which is implemented with D32_FLOAT_S8_UINT.

Used in Persona 5 Royal
2022-10-21 01:54:57 -04:00
Lioncash
969387a79a k_session_request: Turn C-style array into std::array
Makes for stronger typing and allows tooling bounds checks provided by
the standard library for debugging purposes.
2022-10-21 01:54:34 -04:00
Lioncash
3968faec06 k_session_request: Simplify constructor initialization 2022-10-21 01:53:10 -04:00
german77
7f66050f0c input_common: cache vibration tests 2022-10-21 00:24:08 -05:00
Lioncash
0b181eeef4 hid/npad: Fix copy size in GetSupportedNpadIdTypes
Previously this was passing the size of the vector into memcpy rather
than the size in bytes to copy, which would result in a partial read.

Thankfully, this function isn't used yet, so this gets rid of a bug
before it's able to do anything.
2022-10-21 00:09:22 -04:00
bunnei
6b71530fa8 Merge pull request #9088 from Fdawgs/chore/images
general: compress png images
2022-10-20 18:42:26 -07:00
liamwhite
a6628e8dba Merge pull request #9078 from liamwhite/session-request
kernel: Session request cleanup
2022-10-20 18:07:30 -04:00
liamwhite
9e16837088 Merge pull request #9099 from Docteh/undocked
Controller Applet had instance of Undocked, make Handheld
2022-10-20 18:05:05 -04:00
bunnei
c0b1bdd237 Merge pull request #9096 from Kelebek1/audio_15
[audio_core] Update for firmware 15.0.0
2022-10-20 13:17:26 -07:00
Kyle Kienapfel
d4c0b7b437 Controller Applet had instance of Undocked, make Handheld
Remember that time we renamed the Undocked option to Handheld in the
status bar, and then later remembered the Controller Configuration?

Scrolling through Transifex I noticed that we still have one instance of
"Undocked" in the text.
2022-10-20 06:55:23 -07:00
liamwhite
7daf751b8d Merge pull request #9094 from lioncash/fixed
common/fixed_point: Minor interface improvements
2022-10-19 19:00:59 -04:00
Liam
fca195b4fb kernel: remove most SessionRequestManager handling from KServerSession 2022-10-19 16:31:12 -04:00
Liam
3efb8eb2dc kernel: add KSessionRequest 2022-10-19 16:31:12 -04:00
liamwhite
5ffb8b8039 Merge pull request #9082 from Morph1984/future
savedata_factory: Detect future save data paths
2022-10-19 16:28:42 -04:00
liamwhite
925fb63478 Merge pull request #9083 from liamwhite/take-a-chance-on-me
kernel: fix slab heap ABA
2022-10-19 16:27:59 -04:00
liamwhite
560bca57a2 Merge pull request #9071 from bunnei/mp-mm
Kernel Multiprocess (Part 1) - Persist memory & core timing
2022-10-19 16:27:43 -04:00
bunnei
97879faea4 core: hle: kernel: Migrate ProcessState to enum class. 2022-10-19 14:03:50 -04:00
Kyle Kienapfel
470e89a8ed UI: Add option to hide the compatibility list
Option is added directly below the option for the addons column

Defaulting to hide compatibility list. Changing default works properly.

Co-authored-by: Piplup <piplup55@users.noreply.github.com>
2022-10-19 03:51:51 -07:00
Kelebek1
7bd3930939 Update audio_core for firmware 15.0.0 2022-10-19 06:16:15 +01:00
Fernando S
b8a70c9999 Merge pull request #9084 from vonchenplus/dma_copy
video_core: implement 1D copies based on VMM 'kind'
2022-10-19 06:56:00 +02:00
Fernando Sahmkow
3cb4498142 Maxwell3D/Puller: Fix regressions and syncing issues. 2022-10-19 06:21:51 +02:00
bunnei
a264b54022 core: Initialize: Add missing braces. 2022-10-18 19:13:35 -07:00
bunnei
638fa6170a core: core_timing: Re-initialize if single/multicore state changes. 2022-10-18 19:13:35 -07:00
bunnei
11f85ea713 core: core_timing: Remove unused IsHostTiming. 2022-10-18 19:13:35 -07:00
bunnei
829e82e264 core: hle: kernel: Use result macros for new/changed code. 2022-10-18 19:13:35 -07:00
bunnei
a4d11f4427 core: Partially persist emulation state across game boots. 2022-10-18 19:13:35 -07:00
bunnei
1b787adbd0 core: hle: kernel: Fix InitializePreemption order. 2022-10-18 19:13:35 -07:00
bunnei
abcc009dff core: hle: kernel: k_process: Improve management of page table & cleanup. 2022-10-18 19:13:35 -07:00
bunnei
79bcb38321 core: hle: kernel: k_interrupt_manager: HandleInterrupt should not depend on current process. 2022-10-18 19:13:35 -07:00
bunnei
8d4e026d05 core: hle: kernel: Remove junk. 2022-10-18 19:13:35 -07:00
bunnei
ff26190d42 core: hle: kernel: k_page_table: Impl. LockForUn/MapDeviceAddressSpace, cleanup. 2022-10-18 19:13:35 -07:00
bunnei
d00245d444 video_core: renderer_vulkan: vk_query_cache: Avoid shutdown crash in QueryPool::Reserve. 2022-10-18 19:13:35 -07:00
bunnei
1baedfa12c core: hle: kernel: Integration application memory block slab manager. 2022-10-18 19:13:34 -07:00
bunnei
ed591934fb core: hle: kernel: k_page_table: Update, and integrate with new KMemoryBlockManager/SlabManager. 2022-10-18 19:13:34 -07:00
bunnei
58eb6953d1 core: hle: kernel: k_memory_block: Update. 2022-10-18 19:13:34 -07:00
bunnei
2bb41cffca core: hle: kernel: k_memory_block_manager: Update. 2022-10-18 19:13:34 -07:00
bunnei
57a77e9ff4 core: hle: kernel: k_thread: Implement thread termination DPC. 2022-10-18 19:13:34 -07:00
bunnei
d02ccfb15d core: hle: kernel: Add KDynamicResourceManager. 2022-10-18 19:13:34 -07:00
bunnei
9ec5f75f43 core: hle: kernel: Add KDynamicSlabHeap. 2022-10-18 19:13:34 -07:00
bunnei
345b9e6a08 core: hle: kernel: Add KDynamicPageManager. 2022-10-18 19:13:34 -07:00
bunnei
25dcaf1eca core: hle: kernel: k_process: Change Status -> State. 2022-10-18 19:13:34 -07:00
bunnei
113a5ed68f core: hle: kernel: svc_types: Add SystemThreadPriorityHighest and ProcessState. 2022-10-18 19:13:34 -07:00
bunnei
47b8160666 core: device_memory: Templatize GetPointer(..). 2022-10-18 19:13:34 -07:00
bunnei
cb073f95dc core: hle: result: Add GetInnerValue and Includes methods. 2022-10-18 19:13:34 -07:00
bunnei
e63a5459e3 core: hle: kernel: svc_common: Add WaitInfinite & cleanup. 2022-10-18 19:13:34 -07:00
Lioncash
6e1c6297a3 fixed_point: Mark default constructor as constexpr
Ensures that a fixed-point value is always initialized

This likely also fixes several cases of uninitialized values being
operated on, since we have multiple areas in the codebase where the
default constructor is being used like:

Common::FixedPoint<50, 14> current_sample{};

and is then followed up with an arithmetic operation like += or
something else, which operates directly on FixedPoint's internal data
member, which would previously be uninitialized.
2022-10-18 16:06:50 -04:00
Lioncash
b6119a55f9 fixed_point: Mark copy/move assignment operators and constructors as constexpr
Given these are just moving a raw value around, these can sensibly be
made constexpr to make the interface more useful.
2022-10-18 16:06:50 -04:00
Lioncash
0cfd90004b fixed_point: Mark std::swap and move constructor as noexcept
These shouldn't throw and can influence how some standard algorithms
will work.
2022-10-18 16:06:50 -04:00
Lioncash
2cc9d94060 fixed_point: Mark relevant member function [[nodiscard]]
Marks member functions as discard, where ignoring the return value would
be indicative of a bug or dead code.
2022-10-18 16:06:50 -04:00
Lioncash
0101ef9fb1 fixed_point: Make to_uint() non-const
This calls round_up(), which is a non-const member function, so if a
fixed-point instantiation ever calls to_uint(), it'll result in a
compiler error.

This allows the member function to work.

While we're at it, we can actually mark to_long_floor() as const, since
it's not modifying any member state.
2022-10-18 16:06:50 -04:00
Lioncash
9393f90ccf fixed_point: Use defaulted comparisons
Collapses all of the comparison functions down to a single line.
2022-10-18 16:06:50 -04:00
Lioncash
5000d814af fixed_point: Use variable templates and concepts where applicable
Makes a few things a little less noisy and removes the need for SFINAE
in quite a few functions.
2022-10-18 16:06:46 -04:00
bunnei
8649c46c74 Merge pull request #9054 from Docteh/just_lz4
CMake: Try add_library "lz4" if "lz4::lz4" is unavailable
2022-10-17 22:51:26 -07:00
bunnei
1deb997eba Merge pull request #9087 from Morph1984/once
general: Add missing pragma once
2022-10-17 22:50:02 -07:00
Liam
282cd3e5fe kernel: fix slab heap ABA 2022-10-17 17:53:32 -04:00
Frazer Smith
40d9107b23 general: compress png images 2022-10-17 15:08:07 +01:00
FengChen
23b6569fc2 video_core: implement 1D copies based on VMM 'kind' 2022-10-17 15:35:12 +08:00
FengChen
99507d0188 video_core: Implement memory manager page kind 2022-10-17 15:33:29 +08:00
Morph
88ccdaf10a fixed_point: Replace CONSTEXPR14 with constexpr
As we require the latest C++ standards to compile yuzu, checking for C++14 constexpr is not needed.
2022-10-17 03:16:54 -04:00
Morph
bffbaddb79 general: Add missing pragma once 2022-10-17 03:14:31 -04:00
Morph
c75a4bdeaa Merge pull request #9085 from Docteh/TX_TOKEN
Set TX_TOKEN for transifex client
2022-10-17 02:57:07 -04:00
Morph
2f37c7948f Merge pull request #9079 from Morph1984/unknown-unkowns
general: Fix spelling
2022-10-17 02:56:58 -04:00
Morph
f107e58fde Merge pull request #9080 from lat9nq/sdl-audio-not-null
sdl2_sink: Avoid loading a null string into a vector
2022-10-17 02:56:38 -04:00
Kyle Kienapfel
c70e1d0247 Set TX_TOKEN for transifex client
I did some tests on my own fork, and we're writing to ~/.transifexrc but
the client can't seem to read that file. maybe issue with $HOME or
something.

Workaround is to set TX_TOKEN environment variable and now the pesky
~/.transifexrc file is not needed.
2022-10-16 23:37:25 -07:00
Morph
ae453ab6a8 savedata_factory: Detect future save data paths
Enable compatibility for new account/device save paths planned on a future implementation.
2022-10-16 23:49:55 -04:00
FengChen
20139f8a55 Address feedback 2022-10-17 09:40:44 +08:00
lat9nq
4b773b15a6 sdl2_sink: Inline variable init into if condition
Co-authored-by: Mai <mathew1800@gmail.com>
2022-10-16 21:36:40 -04:00
lat9nq
9fe077635e sdl2_sink: Distinguish between capture and non-capture device names
The function prototype appears to care whether we are loading capture
devices or not, and SDL_GetAudioDeviceName has a parameter to use it,
but for some reason it isn't.

This puts `capture` where it goes.
2022-10-16 03:15:54 -04:00
lat9nq
5c7eef3756 sdl2_sink: Check for null string when loading SDL audio devices
Attempting to place a null string into a vector of strings causes an
error that closes the application.

Don't.
2022-10-16 03:14:52 -04:00
Morph
ddf5577799 video_core: Fix spelling of "synchronize" 2022-10-16 00:50:53 -04:00
Morph
f706b3bd24 general: Fix spelling of "unknown" 2022-10-16 00:46:22 -04:00
bunnei
d574bb4610 Merge pull request #9058 from Docteh/new_transifex_cli
New transifex client needs migrating to.
2022-10-15 21:39:03 -07:00
bunnei
b0ba1a0b65 Merge pull request #9076 from Docteh/unknown
fix a tiny spelling mistake
2022-10-15 21:37:47 -07:00
Kyle Kienapfel
0ba03d1b3a fix a tiny spelling mistake
Kreato pointed this out over on discord.
2022-10-15 14:58:44 -07:00
Kyle Kienapfel
fcebd36cde Translations: new transifex client
Currently we're using the python client which uses an API that they
state will sunset Nov 30, 2022.

`tx push -s` actually appears to work properly, some of the other
commands require tweaking, like instead of suggesting `tx pull -a` in
dist/languages we need to suggest `tx pull -t -a`
2022-10-14 23:12:40 -07:00
liamwhite
ae6dd1143c Merge pull request #9061 from liamwhite/writable-event
kernel: remove KWritableEvent
2022-10-14 17:30:38 -04:00
liamwhite
1d38109714 Merge pull request #9055 from liamwhite/hbl
Preliminary support for nx-hbloader
2022-10-14 17:30:11 -04:00
Morph
6a9bbb0128 Merge pull request #9069 from german77/sdl2
audio_core: Revert sink name to sdl2
2022-10-14 13:16:38 -04:00
Narr the Reg
d2170075e6 audio_core: Revert sink name to sdl2 2022-10-14 10:59:33 -05:00
Kyle Kienapfel
40af1111c2 CMake: Try add library "LZ4::lz4_shared" if "lz4::lz4" is unavailable
Right now this looks like a distro specific problem, but we'll have to see.

Over on Gentoo: with lz4 1.9.3 there is a lz4::lz4 library target, with 1.9.4 it's no longer
mentioned in the cmake files provided by the  package. (/usr/lib64/cmake/lz4)

arch and openSUSE have lz4 1.9.4 available so I checked there,
they only have .pc files for pkg-config, so asking for "lz4::lz4" works as usual

MSVC does require "lz4::lz4" to be asked for
2022-10-13 17:23:47 -07:00
liamwhite
553be194f6 Merge pull request #9067 from Morph1984/tess-cw
renderer_(opengl/vulkan): Fix tessellation clockwise parameter
2022-10-13 20:12:31 -04:00
liamwhite
048d3e2404 Merge pull request #9039 from Kelebek1/auto_backend
Auto select the SDL audio backend when Cubeb latency is too high
2022-10-13 20:12:22 -04:00
liamwhite
3c925a7282 Merge pull request #9032 from liamwhite/stub-friends
IFriendService: stub CheckFriendListAvailability
2022-10-13 20:12:08 -04:00
Mai
e37d00332c Merge pull request #9065 from liamwhite/result-mess
result: enforce reference check specialization
2022-10-13 19:54:10 +00:00
Morph
d3114c620d renderer_(opengl/vulkan): Fix tessellation clockwise parameter
This should be assigned CW only on Triangles_CW rather than not Triangles_CCW, making CCW the default winding order rather than CW.
2022-10-13 15:52:56 -04:00
Narr the Reg
26b76d2eaf Merge pull request #9066 from Morph1984/fix-stretch-to-window
settings: Update aspect_ratio range
2022-10-13 13:00:07 -05:00
Morph
e2164f3417 settings: Update aspect_ratio range
Since 16:10 was added, the maximum value is now 4.
2022-10-13 12:24:04 -04:00
Liam
c0fb5e876d result: enforce reference check specialization 2022-10-13 12:10:39 -04:00
Liam
a9ace6856d kernel: remove KWritableEvent 2022-10-12 20:29:29 -04:00
bunnei
64c2ccb0cb Merge pull request #9034 from liamwhite/result-macros
kernel: add expanded result macros
2022-10-12 17:11:07 -07:00
bunnei
dbacb31f61 Merge pull request #9027 from yuzu-emu/revert-8987-another-name-for-reinforcement-steel
Revert "vulkan: automatically use larger staging buffer sizes when possible"
2022-10-12 15:36:56 -07:00
bunnei
0b9f2c2f14 Merge pull request #9040 from liamwhite/woe-thirty-two
core_timing: use high-precision sleeps on non-Windows targets
2022-10-12 15:35:06 -07:00
bunnei
e158167139 Merge pull request #9024 from liamwhite/async-screenshot
video_core: don't block rendering on screenshots
2022-10-12 13:26:32 -07:00
bunnei
3da4280e81 Merge pull request #9047 from german77/steam-aspect
yuzu: Add 16:10 aspect ratio
2022-10-12 12:54:23 -07:00
bunnei
77177a7e33 Merge pull request #9049 from liamwhite/monkeyhawk
syncpoint_manager: ensure handle is removable before removing
2022-10-12 12:34:22 -07:00
Liam
61a8696510 k_server_session: preliminary support for userspace server sessions 2022-10-11 18:40:40 -04:00
Liam
9b34afa588 Add implementation of svcCreateSession 2022-10-11 18:15:45 -04:00
Liam
6bcd676b61 general: preliminary support for hbl 2022-10-11 18:15:30 -04:00
liamwhite
133a68ee9b Merge pull request #9048 from Kelebek1/regs
[video_core] Fix stencil mask registers
2022-10-11 17:22:40 -04:00
Liam
b1cd6cec19 syncpoint_manager: ensure handle is removable before removing 2022-10-10 19:22:26 -04:00
liamwhite
d9336860d7 Merge pull request #9044 from lat9nq/mingw-gcc-revert
ci/windows: Revert to using GCC for MinGW builds
2022-10-10 19:04:02 -04:00
Kelebek1
4496030ea9 Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong. 2022-10-10 20:59:57 +01:00
Narr the Reg
eb74ef474b yuzu: Add 16:10 aspect ratio 2022-10-10 13:32:33 -05:00
lat9nq
682c50715c ci/windows: Revert to using GCC for MinGW builds
Using MinGW in the future may not be ideal as it does not work very well
with crash dumps (#8682).

Switch back to GCC on MinGW. This also gives CI a way to check GCC 12
(as of writing, or whatever version of mingw-gcc Arch happens to be
shipping on a given week).
2022-10-09 17:47:52 -04:00
liamwhite
c3cae9d992 Merge pull request #9043 from german77/vector_data
input_common: have an unique vector in callback status
2022-10-09 17:46:45 -04:00
german77
224a19758e input_common: have an unique vector in callback status 2022-10-09 12:49:18 -05:00
Kelebek1
8c9e238a7b Choose the SDL audio backend when Cubeb reports too high of a latency 2022-10-09 13:47:59 +01:00
Fernando S
55e6d0dae0 Merge pull request #8766 from Kelebek1/regs
[video_core] Update 3D registers
2022-10-09 07:04:03 +02:00
Liam
9632434243 core_timing: use high-precision sleeps on non-Windows targets 2022-10-08 18:27:40 -04:00
Mai
ec9550ced5 Merge pull request #9033 from liamwhite/stub-fsp
fsp_srv: stub GetCacheStorageSize
2022-10-08 16:33:13 -04:00
Liam
47a2efee73 kernel: add expanded result macros 2022-10-08 12:41:27 -04:00
Liam
5b7c0f13d3 fsp_srv: stub GetCacheStorageSize 2022-10-08 12:24:00 -04:00
Liam
ddf64e56af IFriendService: stub CheckFriendListAvailability 2022-10-07 22:19:41 -04:00
Mai
155213484b Merge pull request #9016 from liamwhite/drunken-schedule
vk_scheduler: wait for command processing to complete
2022-10-07 20:27:16 -04:00
Mai
b7ad83383f Merge pull request #8932 from abouvier/cmake-pkgconfig
cmake: Fix FindPkgConfig
2022-10-07 20:25:51 -04:00
Mai
6f101e0f02 Merge pull request #9030 from Morph1984/api-disable
configure_graphics: Fix graphics API selection when a game is running
2022-10-07 20:25:23 -04:00
liamwhite
972b93bf00 Merge pull request #8807 from Docteh/default_fonts
Qt: work around Qt5's font choice for Chinese (in Windows)
2022-10-07 17:39:39 -04:00
Liam
a5476541f2 video_core: don't block rendering on screenshots 2022-10-07 17:33:59 -04:00
Morph
1e35ade1ec configure_graphics: Fix graphics API selection when a game is running
The graphics API setting should not be changed when a game is running.
2022-10-07 15:11:26 -04:00
Narr the Reg
b8777b6653 Merge pull request #9028 from liamwhite/wtype-limits
nfp_types: silence -Wtype-limits
2022-10-07 09:03:35 -05:00
Kelebek1
752659aef3 Update 3D regs 2022-10-07 14:13:45 +01:00
Liam
9574429c5f nfp_types: silence -Wtype-limits 2022-10-07 06:52:28 -04:00
liamwhite
20cf09471a Revert "vulkan: automatically use larger staging buffer sizes when possible" 2022-10-07 04:49:08 -04:00
bunnei
61883d8820 Merge pull request #6142 from lat9nq/prog_meta_ref_bind_address
program_metadata: Avoid reference binding to misaligned address
2022-10-06 20:42:15 -07:00
bunnei
bb86fc573f Merge pull request #8944 from Tachi107/patch-2
build(room): simplify yuzu-room installation
2022-10-06 16:59:04 -07:00
Fernando S
1effa578f1 Merge pull request #8467 from FernandoS27/yfc-rel-1
Project yuzu Fried Chicken (Y.F.C.) Part 1
2022-10-06 21:29:53 +02:00
Byte
df6dffa30b vulkan_blitter: Fix pool allocation double free. 2022-10-06 21:00:54 +02:00
Liam
aedd739631 maxwell_dma: remove warnings from implemented functionality 2022-10-06 21:00:54 +02:00
Fernando Sahmkow
ca3db0d7c9 General: address feedback 2022-10-06 21:00:54 +02:00
Liam
0d99b7962d state_tracker: workaround channel setup for homebrew 2022-10-06 21:00:54 +02:00
Liam
c80ed6d81f general: rework usages of UNREACHABLE macro 2022-10-06 21:00:54 +02:00
Morph
903705043d nvdisp: End system frame after requesting to swap buffers
Fixes frametime reporting
2022-10-06 21:00:54 +02:00
Morph
11e1cbbdbd address_space: Rename va_start to virt_start
Avoids conflicting with the va_start macro
2022-10-06 21:00:54 +02:00
Morph
fa342cae22 address_space: Address feedback 2022-10-06 21:00:54 +02:00
Morph
fedd983f96 general: Format licenses as per SPDX guidelines 2022-10-06 21:00:54 +02:00
Fernando Sahmkow
d97d409647 NvHostChannels: improve hack for supporting multiple channels. 2022-10-06 21:00:54 +02:00
Fernando Sahmkow
c2b7de66b3 Address Feedback from bylaws. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
8a372035db Nvflinger: correct duplication. 2022-10-06 21:00:53 +02:00
VonChenPlus
9982cff98b Core: Fix get nvmap object random crash 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
fe24c65153 General: Fix clang format. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
1a9b71b1c6 Common: Fix variable shadowing. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
cdce7f781b Vulkan Swapchain: Overall improvements. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
8d774e7415 NvDec: Fix regressions. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
ada09778d9 Vulkan Texture Cache: Limit render area to the max width/height of the targets. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
8fd1d769fe ImageBase: Basic fixes. 2022-10-06 21:00:53 +02:00
Liam White
afab6c143c General: Fix compilation for GCC 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
fd7afda1e8 VideoCore: Implement formats needed for N64 emulation. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
770e19f51a Buffer Cache: Deduce vertex array limit from memory layout when limit is the highest possible. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
8bb604b3be VideoCore: Add option to dump the macros. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
a9ca39f859 NVDRV: Further improvements. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
b59ca4df0c Buffer Cache: Basic fixes. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
98317f2b77 Decoders: Improve overall speed. 2022-10-06 21:00:53 +02:00
bunnei
f5fd6b5c86 DMA & InlineToMemory Engines Rework. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
b2099fbdcc Maxwell3D: Add small_index_2 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
7cfa28a666 Memory Manager: ensure safety of GPU to CPU address. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
5a568b1655 MemoryManager: Fix errors popping out. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
3d02143476 Shader Decompiler: implement better tracking for Vulkan samplers. 2022-10-06 21:00:53 +02:00
Fernando Sahmkow
ba34cf0a69 Shader Decompiler: Check for shift when deriving composite samplers. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
a283eda320 Shader Decompiler: Fix dangerous behavior of invalid iterator insertion. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
359f22b808 MemoryManager: Finish up the initial implementation. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
5caa150e9a OpenGL: Fix TickWork 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
bc8b3d225e VideoCore: Refactor fencing system. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
4d60410dd9 MemoryManager: initial multi paging system implementation. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
98b5e236d4 Vulkan: Fix Scissor on Clears 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
920429fde7 NVDRV: Further refactors and eliminate old code. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
2931101e6f NVDRV: Refactor Host1x 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
668e80a9f4 VideoCore: Refactor syncing. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
e44ac8b821 Texture Cache: Fix GC and GPU Modified on Joins. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
f350c3d74e Texture cache: Fix the remaining issues with memory mnagement and unmapping. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
9cf4c8831d Texture cache: Fix dangling references on multichannel. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
e462191482 Refactor VideoCore to use AS sepparate from Channel. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
bb74973bba General: Rebase fixes. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
6fc4012396 VideoCore: Extra Fixes. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
feb49c822d NVDRV: Remake ASGPU 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
c6ea0c650e NVDRV: Update copyright notices. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
0f4ae3cc52 MemoryManager: Temporary Fix for NVDEC. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
835b950f7e NvHostCtrl: Fix merge of nvflinger. 2022-10-06 21:00:52 +02:00
Fernando Sahmkow
cbaf3fb433 VideoCore: Update MemoryManager 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
b617874724 Common: implement MultiLevelPageTable. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
3f8e7a5585 VideoCore: Fix channels with disk pipeline/shader cache. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
d7990c159e OpenGl: Implement Channels. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
2c62563ab5 NVHOST_CTRl: Implement missing method and fix some stuffs. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
139ea93512 VideoCore: implement channels on gpu caches. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
c77b8df12e NVASGPU: Fix Remap. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
ad038609c8 NVDRV: Fix clearing when destroying. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
68d9504a04 NVMAP: Fix the Free return parameters. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
af35dbcf63 NVDRV: Fix Open/Close and make sure each device is correctly created. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
de0e8eff42 NVDRV: Implement new NvMap 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
3cbe352c18 NVDRV: Refactor and add new NvMap. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
a21b8824fb NVDRV: Cleanup. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
d30b885d71 NVDRV: Implement QueryEvent. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
39a5ce4e69 NvHost: Remake Ctrl Implementation. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
ac104a24d1 NvHost: Try a different approach to blocking. 2022-10-06 21:00:51 +02:00
Fernando Sahmkow
7b7f6f1cb7 NvHost: Fix some regressions and correct signaling on timeout. 2022-10-06 21:00:51 +02:00
Fernando S
31d4bc6953 Merge pull request #9025 from FernandoS27/slava-ukrayini
Texture Cache: Add ASTC 10x5 Format.
2022-10-06 17:10:28 +02:00
Fernando Sahmkow
1a49991676 Texture Cache: Add ASTC 10x5 Format. 2022-10-06 16:45:40 +02:00
bunnei
d55096ce85 Merge pull request #9013 from liamwhite/spinning-a-yarn
common: remove "yuzu:" prefix from thread names
2022-10-05 18:53:42 -07:00
bunnei
1689530f52 Merge pull request #9015 from german77/amiibo-rewrite
service: nfp: Fix errors to pass unit testing
2022-10-05 14:13:57 -07:00
Kyle Kienapfel
3b5a937125 Show error from cpp-httplib when we don't have a response to read (report errors while connecting to API) (#8999)
Co-authored-by: Kyle Kienapfel <Docteh@users.noreply.github.com>
2022-10-05 21:39:54 +02:00
Fernando S
71fe9fd0f2 Merge pull request #8987 from liamwhite/another-name-for-reinforcement-steel
vulkan: automatically use larger staging buffer sizes when possible
2022-10-05 08:54:22 +02:00
Fernando S
4774e32593 Merge pull request #9011 from liamwhite/frog-emoji-moment
shader_recompiler: add extended LDC to GLASM backend
2022-10-05 08:53:26 +02:00
bunnei
fc0ace6048 Merge pull request #9005 from liamwhite/micro-fit
macro_jit_x64: cancel exit for taken branch
2022-10-04 20:08:02 -07:00
bunnei
92c0ad23eb Merge pull request #9010 from liamwhite/buttwise
macro_jit_x64: fix miscompilation of bit extraction operations
2022-10-04 15:52:39 -07:00
Liam
7969d4d5de vk_scheduler: wait for command processing to complete 2022-10-03 20:03:25 -04:00
Narr the Reg
e85c19adcb service: nfp: Fix errors to pass unit testing 2022-10-03 18:06:55 -05:00
Liam
35d3e7db2a common: remove "yuzu:" prefix from thread names 2022-10-03 18:43:56 -04:00
Liam
ae7062d522 shader_recompiler: add extended LDC to GLASM backend 2022-10-02 17:32:54 -04:00
bunnei
61399de5db Merge pull request #8955 from german77/amiibo-rewrite
core: nfp: Rewrite implementation to remove direct access from the frontend
2022-10-02 14:28:43 -07:00
german77
1485daff06 service: mii: Copy only valid name bytes 2022-10-02 12:34:24 -05:00
Narr the Reg
d9d566bd3f service: nfp: Implement mount target and open application area errors, minor fixes 2022-10-02 12:34:14 -05:00
german77
673de3995b nfp: Multiple fixes against HW 2022-10-02 12:32:26 -05:00
german77
3ce0ef04dd service: nfp: address comments 2022-10-02 12:32:26 -05:00
german77
afea5c163f service: nfp: Rewrite and implement applet calls 2022-10-02 12:32:26 -05:00
german77
8a3d22c4bd core: hid: Add nfc support to emulated controller 2022-10-02 12:32:26 -05:00
german77
f6d57d7dd9 yuzu: Use virtual amiibo driver instead of nfp service 2022-10-02 12:32:26 -05:00
german77
da8864d002 input_common: Enable virtual amiibo driver 2022-10-02 12:32:26 -05:00
german77
e8d71712e7 input_common: Create virtual amiibo driver 2022-10-02 12:32:26 -05:00
bunnei
80a3a73123 Merge pull request #8992 from Morph1984/vi-vsync-event
service: vi: Retrieve vsync event once per display
2022-10-02 03:02:59 -07:00
liamwhite
188932768e Merge pull request #6598 from FernandoS27/falklands-are-british
MacroHLE: Add MultidrawIndirect HLE Macro.
2022-10-01 20:58:03 -04:00
Fernando Sahmkow
a60b669ef4 MacroHLE: Add MultidrawIndirect HLE Macro. 2022-10-01 20:57:00 -04:00
Liam
1225627515 macro_jit_x64: fix miscompilation of bit extraction operations 2022-10-01 20:31:21 -04:00
Kyle Kienapfel
1dba5fab62 Qt: work around Qt5's font choice for Chinese
On Windows there are currently two fonts used.

The first, does the Menu, QTreeView and Tooltips
Second is Everything else which is a default font.

From inspecting QApplication::font() at runtime
Windows 10 English: QFont(MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0)
Windows 11 Japanese:        MS UI Gothic,9   ,-1,5,50,0,0,0,0,0
Windows 11 Traditional Chinese: PMingLiU,9   ,-1,5,50,0,0,0,0,0
Windows 11 Simplified Chinese:    SimSun,9   ,-1,5,50,0,0,0,0,0
Windows 11 Korean:                 Gulim,9   ,-1,5,50,0,0,0,0,0

I initially investigated dynamically changing the font when
the UI language is English, but this was getting quite messy

Qt6 makes changes to default font in some situations, so this
PR is being narrowed in scope to only effect Chinese font choices.
This change only effects rendering of Latin/Cyrillic characters.
2022-10-01 15:27:23 -07:00
bunnei
2a752bbd64 Merge pull request #8876 from FearlessTobi/multiplayer-part3
ldn: Implement "local wireless" networked multiplayer
2022-10-01 14:53:36 -07:00
liamwhite
001168d191 Merge pull request #9009 from yuzu-emu/bunnei-move-deploy-linux.sh
Migrate deploy-linux.sh from lat9nq's repo.
2022-10-01 16:57:46 -04:00
Narr the Reg
181a54a37b Merge pull request #9008 from ZwipZwapZapony/controller.colors_state.right
Fix "controller.colors_state.right" being "left"
2022-10-01 14:37:55 -05:00
bunnei
4242064560 Merge pull request #8874 from vonchenplus/align_index_buffer_size
Align index buffe size when vertex_buffer_unified_memory enable
2022-10-01 10:28:50 -07:00
bunnei
700f1d498e Migrate deploy-linux.sh from lat9nq's repo. 2022-10-01 10:25:28 -07:00
Zwip-Zwap Zapony
31e3437a2f Fix "controller.colors_state.right" being "left" 2022-10-01 18:18:08 +02:00
Mai
2213927253 Merge pull request #9004 from zhaobot/tx-update-20221001041028
Update translations (2022-10-01)
2022-10-01 07:37:24 -04:00
Liam
b80f7faebe macro_jit_x64: cancel exit for taken branch 2022-10-01 01:32:24 -04:00
The yuzu Community
4b40799e03 Update translations (2022-10-01) 2022-10-01 04:10:52 +00:00
bunnei
d9e375acc3 Merge pull request #8910 from vonchenplus/astc_decode_error
video_core: Modify astc texture decode error fill value
2022-09-30 15:34:11 -07:00
bunnei
dbb9d601df Merge pull request #8934 from german77/palma_release
service: hid: Partially implement palma controller
2022-09-29 12:48:28 -07:00
Morph
2e3aad41aa Merge pull request #8993 from lat9nq/drop-linuxdeploy
ci/linux: Drop linuxdeploy usage
2022-09-28 20:10:47 -04:00
bunnei
9015a512c2 Merge pull request #8940 from german77/silence
yuzu: Silence some clang warnings
2022-09-28 14:37:23 -07:00
Morph
0f6007b405 Merge pull request #8989 from merryhime/loader-nullptr
core/loader: Return nullptr if file is nullptr
2022-09-27 10:59:46 -04:00
lat9nq
ad9f97cd8d ci/linux: Drop linuxdeploy usage
Recent versions of Docker appear to cause the Qt linuxdeploy plugin to
throw a boost file copy error.

This switches from linuxdeploy to a script of mine I've been working on
for a while.
2022-09-26 00:35:03 -04:00
Morph
41e855bd42 service: vi: Retrieve vsync event once per display
The display vsync event can only be retrieved once per display. Returns VI::ResultPermissionDenied if we attempt to retrieve the vsync event for the same display.

Prevents games such as .hack//G.U. Last Recode from consuming all the handles in the handle table by spamming vsync event retrievals and allows it to go in game.
2022-09-25 21:33:36 -04:00
Morph
acc887cc34 service: vi: Move VI results into its own file 2022-09-25 20:33:25 -04:00
Merry
f55ed1cab0 core/loader: Return nullptr if file is nullptr 2022-09-25 19:31:35 +01:00
Liam
087c6c2ef1 vulkan: automatically use larger staging buffer sizes when possible 2022-09-25 02:28:03 -04:00
bunnei
465c46387d Merge pull request #8920 from abouvier/cmake-git
cmake: fix git detection
2022-09-24 23:11:45 -07:00
Narr the Reg
23589ad9b8 service: hid: Partially implement palma controller 2022-09-25 00:13:12 -05:00
bunnei
1b1b99fbd5 Merge pull request #8941 from Kelebek1/single_core_sucks
Do not try to pause core timing from the audio thread when using single-core
2022-09-23 22:40:30 -07:00
Morph
d794ced303 Merge pull request #8945 from Tachi107/typos
chore: fix some typos
2022-09-23 20:28:43 -04:00
Morph
5082efef6c Merge pull request #8948 from german77/order
yuzu: sort input profiles by name
2022-09-23 20:28:35 -04:00
Morph
86ccc87111 Merge pull request #8933 from lat9nq/ci-use-apprun-sh
ci/linux: Use AppRun.sh to start AppImage
2022-09-23 20:28:28 -04:00
Morph
12baf88dc8 Merge pull request #8930 from lat9nq/disable-vulkan-check
yuzu qt: Add option to disable startup Vulkan check
2022-09-23 20:28:13 -04:00
Narr the Reg
f711d1ce52 yuzu: sort input profiles by name 2022-09-23 12:31:35 -05:00
Morph
70abb13a43 Merge pull request #8943 from lioncash/netiface
sockets: Make fd member variable protected
2022-09-23 09:08:07 -04:00
Morph
c2c3f2c3e7 Merge pull request #8939 from lioncash/render
audio_renderer: Make GetCommandBuffer() take a u32
2022-09-23 09:07:52 -04:00
Morph
3b77dec188 Merge pull request #8938 from lioncash/manager
audio_manager: Minor cleanup related changes
2022-09-23 09:07:38 -04:00
Andrea Pappacoda
4a493cb10f chore: fix some typos
Fix some typos reported by Lintian
2022-09-23 13:38:23 +02:00
Andrea Pappacoda
db88eaa346 build(room): simplify yuzu-room installation
CMake is able to automatically install binaries in the correct location. Also see my older patch, af94bf4a59

Cc: @FearlessTobi
2022-09-22 21:51:56 +02:00
Lioncash
c8da75b7ed sockets: Make fd member variable protected
Other things shouldn't be able to directly mess around with the
descriptor
2022-09-22 08:20:54 -04:00
Kelebek1
56b8a9ba6e Do not try to pause core timing from the audio thread when using single-core 2022-09-22 01:23:57 +01:00
Narr the Reg
5a74ced59a yuzu: Silence some clang warnings 2022-09-21 11:51:31 -05:00
Lioncash
c891497b61 audio_renderer: Make GetCommandBuffer() take a u32
This function is only ever called with unsigned types, and all of the
other interface functions take session_id as a u32, so this makes the
class a little more consistent.
2022-09-21 10:00:57 -04:00
Lioncash
00616c7ad8 audio_manager: Forward declare result type
Moves the include into the cpp file to lessen header dependencies.
2022-09-21 09:43:59 -04:00
Lioncash
75d6fe3669 audio_manager: Remove redundant cast in ThreadFunc()
We can just use a local here to get rid of a second cast.
2022-09-21 09:35:22 -04:00
Lioncash
e48e22eb52 audio_manager: move std::functions in SetOutManager/SetInManager
Prevents unnecessary reallocations in the event the captured variables
are larger than the internal std::function buffer.
2022-09-21 09:32:15 -04:00
Lioncash
da0fd51642 audio_manager: Remove unused forward declarations
Allows us to get rid of some unnecessary forward declarations and
includes.
2022-09-21 09:29:35 -04:00
Lioncash
08d81e0bd8 audio_manager: Remove unused sessions_started member variable
This isn't used, so it can be removed.
2022-09-21 09:28:05 -04:00
Lioncash
b59b967280 audio_manager: Remove dependence on system state
This isn't used by the class, so this can be removed for the time being.
2022-09-21 09:26:42 -04:00
lat9nq
37b4f79b54 ci/linux: Use AppRun.sh to start AppImage
The current AppRun is more difficult to update. This script still
uses the old version of AppImageKit-checkrt, but now we use the shell
script version so we can set our own environment variables as the
application starts up.

This specific version searches for and sets the correct root CA file to
prevent SSL errors in yuzu.
2022-09-20 18:57:27 -04:00
Alexandre Bouvier
09a87966e0 cmake: Fix FindPkgConfig 2022-09-20 22:21:52 +02:00
FearlessTobi
4213f1c126 Address some review comments 2022-09-20 19:36:32 +02:00
FengChen
d4cb0eac87 video_core: Fix legacy to generic location unpaired 2022-09-20 12:03:31 +08:00
bunnei
8d4458ef24 Merge pull request #8849 from Morph1984/parallel-astc
astc: Enable parallel CPU astc decoding
2022-09-19 12:17:51 -07:00
lat9nq
89af4bfba8 yuzu qt: Add option to disable startup Vulkan check
The startup check apparently confuses other programs when yuzu launches
2 processes and then quickly closes one of them. Though this isn't
really our issues it's also not a big deal for me to add an option to
work around that issue.
2022-09-19 14:46:12 -04:00
bunnei
3a5f9409c8 Merge pull request #8915 from vonchenplus/opus_multi_stream
core: implement HwOpus GetWorkBufferSizeForMultiStreamEx
2022-09-17 16:07:33 -07:00
Alexandre Bouvier
7239470dad cmake: fix git detection 2022-09-18 00:04:35 +02:00
bunnei
7172339c7a Merge pull request #8827 from german77/amiibo_release
core: nfp: Implement amiibo encryption
2022-09-17 11:11:21 -07:00
bunnei
9c32f29af1 Merge pull request #8650 from Kelebek1/vsync
[Coretiming/NVNFlinger] Improve multi-core vsync timing, and core timing accuracy
2022-09-17 11:10:54 -07:00
bunnei
4a7a771340 Merge pull request #8914 from lioncash/audio-const
audio_core: Mark several member functions as const
2022-09-16 23:51:31 -07:00
bunnei
eb726677b2 Merge pull request #8916 from Docteh/muilti_build
GIT: Modify .gitignore to ignore wildcard for build directories
2022-09-16 18:19:01 -07:00
bunnei
92813f01a4 Merge pull request #8906 from Docteh/fix_icons
UI: move icons from default into colorful theme.
2022-09-16 18:12:04 -07:00
Kyle K
49870baea4 GIT: Modify .gitignore to ignore wildcard for build directories
Helps if you have multiple build folders. There are other, dark ways to
hide extra build folders from git, but this is better.

See: https://github.com/citra-emu/citra/pull/6130
2022-09-16 10:58:29 -07:00
Morph
344006b856 Merge pull request #8869 from SachinVin/cmake
core/CMakeLists.txt: Remove duplicate files.
2022-09-16 13:11:33 -04:00
Morph
8dafe15600 Merge pull request #8649 from lat9nq/common-position-independent
common: Use PROJECT_SOURCE_DIR to find CMakeModules
2022-09-16 12:48:53 -04:00
Morph
44ccec7846 Merge pull request #8682 from lat9nq/dumpy
yuzu qt: Add option to create Windows crash dumps
2022-09-16 12:47:51 -04:00
Morph
882dfa36ae Merge pull request #6667 from lat9nq/ea-appimage
ci,linux: Support Patreon releases
2022-09-16 12:47:38 -04:00
FengChen
672e61d802 core: implement HwOpus GetWorkBufferSizeForMultiStreamEx 2022-09-17 00:28:56 +08:00
Morph
60aa942210 Merge pull request #8911 from lioncash/cexpr-string
audio_device: Make AudioDeviceName constructor constexpr
2022-09-16 10:18:58 -04:00
Morph
809126c94a astc: Enable parallel CPU astc decoding
Given the issues with GPU accelerated ASTC decoding with NVIDIA's latest drivers, parallelize astc decoding on the CPU.
Uses half the available threads in the system for astc decoding.
2022-09-16 10:16:42 -04:00
Lioncash
7e3cdfc453 audio_renderer: Pass command buffer by const reference
This is just being copied and isn't modified at all.
2022-09-16 10:06:53 -04:00
Lioncash
d5d6322640 sink_stream: Mark GetQueueSize as const 2022-09-16 10:00:52 -04:00
Lioncash
6b1cb73350 node_states: Mark relevant member functions as const 2022-09-16 09:59:56 -04:00
Lioncash
e4bc7b8611 i3dl2/reverb: Mark relevant member functions as const
These two don't modify member state.
2022-09-16 09:58:49 -04:00
Lioncash
b2c2138af7 behavior_info: Mark CopyErrorInfo as const
This doesn't modify member state.

We can also mark the parameter of AppendError as const as well, since it
isn't modified.
2022-09-16 09:55:17 -04:00
Lioncash
b862d5d8d8 audio_device: Mark GetDeviceVolume as const
This doesn't modify instance state.
2022-09-16 09:52:34 -04:00
Lioncash
36c77761cf audio_render_manager: Mark several functions as const 2022-09-16 09:50:32 -04:00
Lioncash
7a5d235d94 audio_in: Mark several functions as const
These functions don't modify class state, so we can mark them as such
2022-09-16 09:45:54 -04:00
Lioncash
d1f3c121a0 audio_out: Mark several functions as const
These don't affect class state, so we can mark them as such.
2022-09-16 09:45:51 -04:00
Lioncash
e9109cb5f2 audio_buffers: Pass by const-ref in AppendBuffers
This function doesn't modify the passed in buffer, so we can make that
explicit.
2022-09-16 09:36:03 -04:00
Lioncash
cb2a33babc device_session: Convert for loop into ranged for in AppendBuffers
Simplifies the indexing code a little bit.
2022-09-16 09:32:57 -04:00
Lioncash
a278fa6e2a device_session: Pass arguments by const-ref in relevant functions
These functions don't modify the passed in audio buffers, so we can
signify that in the interface.
2022-09-16 09:31:33 -04:00
Kyle Kienapfel
9554c67809 UI: move icons from default into colorful theme.
colorful theme has been default theme for awhile. having colorful theme
try and grab icons from other theme doesn't work on Linux.

Also adding two additional icons, info is to hint to the user that they
should hit verify after pasting in a token, sync is to show that the
verification is occurring.
2022-09-15 23:00:49 -07:00
bunnei
e85bda5f31 Merge pull request #8878 from Kelebek1/remove_pause
Remove pause callbacks from coretiming
2022-09-15 13:50:13 -07:00
bunnei
b5a06bc419 Merge pull request #8902 from Morph1984/new_sd_icons
qt_themes: Update sd card icon
2022-09-15 11:47:20 -07:00
liamwhite
b06ef5d530 Merge pull request #8901 from lioncash/docs
audio_core: Amend documentation comment tags
2022-09-15 10:36:18 -04:00
Narr the Reg
0a63d43ad6 Merge pull request #8909 from Docteh/taslinky
UI: Fix link to TAS help page
2022-09-15 08:48:12 -05:00
Lioncash
2c91fbf7f1 audio_core: Amend documentation tags
Resolves a wackload of -Wdocumentation warnings due to mismatching tags
and whatnot.
2022-09-15 09:47:23 -04:00
Mai
463cc9559f Merge pull request #8904 from liushuyu/fix-xbyak-linkage
common: do not link to xbyak on non-amd64 architectures
2022-09-15 09:44:57 -04:00
Lioncash
d55046c5e9 audio_device: Mark member functions as const where applicable
These member functions don't modify any internal state.
2022-09-15 09:06:17 -04:00
Lioncash
1c7dae966d audio_device: Make AudioDeviceName constructor constexpr
These are used as read-only arrays, so we can make the data read-only
and available at compile-time.

Now constructing an AudioDevice no longer needs to initialize some
tables
2022-09-15 09:03:40 -04:00
FengChen
88007077e2 video_core: Modify astc texture decode error fill value 2022-09-15 17:04:44 +08:00
Kyle Kienapfel
fbbedb032c UI: Fix link to TAS help page
Tools -> TAS -> Configure TAS

Thanks to Rei on discord for the fix.

Basically: openExternalLinks is a checkbox in Qt Creator
2022-09-15 01:43:03 -07:00
Narr the Reg
eeb0ec67c3 Merge pull request #8900 from lioncash/cast-qual
compressor: Remove unneeded casts in ApplyCompressorEffect
2022-09-14 18:49:44 -05:00
liushuyu
7fda6de5cb common: do not link to xbyak on non-amd64 architectures 2022-09-13 17:19:37 -06:00
Lioncash
f08046f4d7 compressor: Simplify memset in InitializeCompressorEffect
Provides equivalent behavior while being significantly smaller.
2022-09-13 13:34:58 -04:00
Lioncash
fd876f200f compressor: Mark params parameters as const
These functions don't modify the parameters.
2022-09-13 13:33:41 -04:00
Lioncash
bdb866af1d compressor: Remove unneeded casts in ApplyCompressorEffect
Same behavior, but also silences a -Wcast-qual warning, since the second
cast casts away const.
2022-09-13 13:28:54 -04:00
Kelebek1
e93e898df5 Remove pause callbacks from coretiming 2022-09-13 13:20:35 +01:00
Mai
1be456db83 Merge pull request #8880 from german77/slow-moving
input_common: Increase mapping timer from 2.5 seconds to 4 seconds
2022-09-12 23:30:51 -04:00
Morph
56be24d50a qt_themes: Add colorful and dark mode sd card icons 2022-09-12 18:54:29 -04:00
Dev-draco
949917babc qt_themes: Update sd card icon 2022-09-12 18:54:29 -04:00
Mai
4b07596b83 Merge pull request #8891 from Kelebek1/pragma
Remove a pragma once from a cpp file
2022-09-12 14:28:25 -04:00
Kelebek1
1deecc6f70 Remove a pragma once from a cpp file 2022-09-12 19:27:11 +01:00
german77
5d907d9acd input_common: Increase mapping timer from 2.5 seconds to 4 seconds 2022-09-11 08:58:06 -05:00
liushuyu
aa11d73bba dedicated_room: fix token padding ...
... mebedtls' base64 routine has a strange behavioral issue where if the
input is invalid, it will not report it as invalid, but rather returning
a bunch of garbage data. This new round-tripping padding method should
eliminate such issue.
2022-09-10 18:56:29 -05:00
Narr the Reg
1694c55d62 fix black icon 2022-09-10 18:56:06 -05:00
bunnei
cd4b9bffb2 Merge pull request #8842 from Kelebek1/AudOut
[audio_core] Rework audio output
2022-09-10 11:01:11 -07:00
german77
8f207bd93d yuzu: Multiple room UI improvements 2022-09-10 19:39:25 +02:00
FengChen
92b1f8d5da Align index buffe size when vertex_buffer_unified_memory enable 2022-09-10 20:01:33 +08:00
bunnei
16080b6e4e Merge pull request #8863 from german77/triggers
core: hid: Fix GC triggers overwriting ZL and ZR buttons
2022-09-09 21:53:53 -07:00
bunnei
a967c41fa0 Merge pull request #8864 from german77/toggle_analog
input_common: Add support for analog toggle
2022-09-09 20:54:01 -07:00
FearlessTobi
f5e635adda ldn: Initial implementation 2022-09-09 14:30:22 +02:00
lat9nq
0cef3b47f3 Merge pull request #8819 from liamwhite/cash-money
video_core: add option for pessimistic flushing
2022-09-08 22:46:58 -04:00
bunnei
f663966599 Merge pull request #8859 from CaptV0rt3x/patch-1
Fix Cmake warning for CMP0077
2022-09-08 12:30:13 -07:00
bunnei
35ecd062ac Merge pull request #8867 from Docteh/gentoo
CMake: explicitly link mbedcrypto for yuzu-room
2022-09-08 12:27:31 -07:00
SachinVin
9c6cd93195 core/CMakeLists.txt: Remove duplicate files. 2022-09-08 22:03:53 +05:30
Kyle Kienapfel
e78a623342 CMake: explicitly link mbedcrypto for yuzu-room
Doesn't appear to effect anything regular, but in both Linux and Windows
builds it looks like our project has all the libraries available for
linking. If this feature is turned off, there is only one thing that
quit working, when linking yuzu-room it couldn't find a function called
mbedtls_base64_decode

mbedtls is split into three libraries for some reason:
mbedtls
mbedx509
mbedcrypto

mbedtls_base64_decode is in mbedcrypto
2022-09-08 05:52:28 -07:00
german77
063b23cc58 core: nfp: Remove magic numbers 2022-09-07 09:49:43 -05:00
german77
4834961736 core: nfp: Workaround for lack of multiple nfp interfaces 2022-09-07 01:04:00 -05:00
Narr the Reg
caa138b33f core: nfp: Correct date and amiibo name 2022-09-07 01:04:00 -05:00
Narr the Reg
19a4e12e6e core: nfp: Implement Convert and RecreateApplicationArea, accuracy fixes 2022-09-07 01:04:00 -05:00
german77
848f69eb19 core: nfp: Implement amiibo encryption 2022-09-07 01:04:00 -05:00
Narr the Reg
de8f7e1250 yuzu: input: fix invert symbol on axis and order options alphabetically 2022-09-06 11:44:29 -05:00
Narr the Reg
2898be69f4 input_common: Add support for analog toggle 2022-09-06 11:21:28 -05:00
bunnei
4ffbbc5348 Merge pull request #8837 from Morph1984/invalidate
(shader/pipeline)_cache: Raise shader/pipeline cache version
2022-09-05 18:20:54 -07:00
bunnei
dd2faab372 Merge pull request #8847 from german77/stop
input_common: sdl: Always check for motion on reconnect
2022-09-05 14:50:38 -07:00
Narr the Reg
dc8d42243b core: hid: Fix GC triggers overwritting ZL and ZR buttons 2022-09-05 16:09:21 -05:00
lat9nq
9dc9e501de ci/windows: Upload debugging symbols 2022-09-04 21:36:35 -04:00
lat9nq
12f7d42d32 mini_dump: Address review feedback
Uses fmt::print as opposed to std::fprintf. Adds a missing return.
static's a single-use function. Initializes structs as opposed to
std::memset where possible. Fixes CMake linkage.

Co-authored-by: Lioncash <mathew1800@gmail.com>

mini_dump: Use a namespace

Co-authored-by: Lioncash <mathew1800@gmail.com>
2022-09-04 21:36:35 -04:00
lat9nq
45b343d1d0 ci,workflows: Enable crash dumps on MSVC builds
ci/windows: Enable crash dumps on MinGW builds
2022-09-04 21:36:34 -04:00
lat9nq
c976613ab2 vcpkg,cmake: Use vcpkg for dbghelp 2022-09-04 21:36:05 -04:00
lat9nq
e339ec0e00 mini_dump: Check for debugger before spawning a child
mini_dump: Clean up

mini_dump: Fix MSVC error

mini_dump: Silence MSVC warning C4700

Zero initialize deb_ev.

mini_dump: Add license info
2022-09-04 21:36:05 -04:00
lat9nq
3dbaafe1f3 mini_dump: Cleanup and add comments
Removes some unnecessary code.

wip
2022-09-04 21:36:05 -04:00
lat9nq
f958cbc737 yuzu: Use a debugger to generate minidumps
yuzu: Move mini_dump out of core

startup_checks: Better exception handling
2022-09-04 21:36:04 -04:00
Vamsi Krishna
016fa3ffee Fix Cmake warning for CMP0077 2022-09-04 13:45:33 +05:30
Kelebek1
2129d040a5 Don't stall with nvdec 2022-09-04 05:41:06 +01:00
Narr the Reg
c3b16cf8d3 input_common: sdl: Always check for motion on reconnect 2022-09-03 17:52:57 -05:00
liamwhite
3faa1c54b6 Merge pull request #8855 from german77/pls
core: ns: Implement pl:s service
2022-09-03 18:35:38 -04:00
Narr the Reg
c7a814f10f core: ns: Implement pl:s service 2022-09-03 17:32:12 -04:00
Mai
b1a18355fb Merge pull request #8833 from Morph1984/vs2022-again
ci: Enable building with Visual Studio 2022 (again)
2022-09-03 15:46:49 -04:00
Mai
3bcfd0dc42 Merge pull request #8854 from Docteh/scroll
Qt: Make General->Debug scrollable
2022-09-03 15:36:46 -04:00
Kyle Kienapfel
b1076859c4 Qt: Make General->Debug scrollable
Configuration -> General -> Debug is getting a bit crowded.

yzct12345 submit this originally, so I'm tagging them as a co-author.
The original #6714 also modifies the Controls -> Player N sections,
but it looks like more work is needed to make the current area scrollable.

Co-authored-by: yzct12345 <87620833+yzct12345@users.noreply.github.com>
2022-09-03 04:59:01 -07:00
bunnei
5addff8d59 Merge pull request #8822 from FearlessTobi/multiplayer-fixes
network: Fixes and improvements to the room feature
2022-09-02 10:24:32 -07:00
Mai
199f77b92f Merge pull request #8843 from Kelebek1/SILENCE_WENCH
Silence a million MSVC warnings
2022-09-02 05:51:44 -04:00
Kelebek1
ea9ff71725 Rework audio output, connecting AudioOut into coretiming to fix desync during heavy loads. 2022-09-02 04:43:04 +01:00
bunnei
6690dfc486 Merge pull request #8844 from Kelebek1/demote
Demote services from warning/info to debug to reduce log spam
2022-09-01 20:37:41 -07:00
FearlessTobi
65718e2876 Address review comments 2022-09-02 00:50:32 +02:00
Kelebek1
03aedccaa2 Demote services from warning/info to debug to reduce log spam:
GetCurrentFocusState
SetClockSpeed
EnableSixAxisSensorUnalteredPassthrough
IsSixAxisSensorUnalteredPassthroughEnabled
Get, GetOld
SetAndWait, SetAndWaitOld
IocParam
IocFree
2022-09-01 16:54:22 +01:00
Kelebek1
f294b886db Silence std::aligned_storage warnings as it's deprecated in C++23,
replace it with alignas() and a C array
2022-09-01 16:50:41 +01:00
Mai
cbc2761f11 Merge pull request #8841 from zhaobot/tx-update-20220901035349
Update translations (2022-09-01)
2022-08-31 23:55:06 -04:00
The yuzu Community
0e275cfe6e Update translations (2022-09-01) 2022-09-01 03:54:16 +00:00
Morph
9533365486 style: General style changes to match with the rest of the codebase 2022-08-31 08:51:47 -04:00
Morph
7e379207ec (shader/pipeline)_cache: Raise shader/pipeline cache version
Since the following commit: a83a5d2e4c , many games will refuse to boot unless the shader/pipeline cache has been invalidated.
2022-08-31 08:39:37 -04:00
Fernando S
a83a5d2e4c Merge pull request #8752 from vonchenplus/rectangle_texture
video_code: support rectangle texture
2022-08-31 10:40:45 +02:00
Morph
118503f6e5 ci: Enable building with Visual Studio 2022 (again)
Since the following https://developercommunity.visualstudio.com/t/Type-alias-lookup-failure-within-paramet/10039150 compiler bug has been fixed, we can finally build with VS 2022 again.
2022-08-30 14:33:26 -04:00
bunnei
c881a67dba Merge pull request #8809 from german77/finally_is_fixed
video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD
2022-08-28 02:46:57 -07:00
FearlessTobi
6791301d9a core/ldn_types: Minor corrections and additions 2022-08-27 04:49:10 +02:00
FearlessTobi
63b236d853 yuzu/chat_room: Make font size bigger 2022-08-27 04:04:00 +02:00
FearlessTobi
27d7db1fae dedicated_room: Correctly handle token decoding
Correctly handle token decoding when '=' has been trimmed by the backend server.

Co-Authored-By: liushuyu <liushuyu011@gmail.com>
2022-08-27 04:00:27 +02:00
FearlessTobi
2b6ac4463c yuzu/multiplayer: Warn when game is running or no network interface is selected 2022-08-27 03:41:19 +02:00
FearlessTobi
339758c9fc core/socket_proxy: Correct broadcast behavior
Broadcasts should only be sent when the broadcast IP is used.
They should also only be received when SO_BROADCAST is enabled.
2022-08-27 03:39:02 +02:00
FearlessTobi
839e1faf49 yuzu: Display current game version in multiplayer room
Makes it easier for users to recognize connection errors caused by different game versions.
2022-08-27 03:31:17 +02:00
FearlessTobi
b961b385c3 network: Use lower timeout for enet_host_service
This allows us to have a 10x higher throughput of packets by using a much shorter waiting time.
2022-08-27 03:26:31 +02:00
FearlessTobi
d92826963a core/bsd: Correctly unbind methods in destructor
Prevents yuzu from crashing when the BSD service is created a second time.
2022-08-27 03:12:12 +02:00
FearlessTobi
e431cb8d16 core/acc: Make CheckAvailability use LOG_DEBUG
Previously it was spamming the logs in certain multiplayer games like Puyo Puyo Tetris.
2022-08-27 03:08:21 +02:00
FearlessTobi
b904652d69 yuzu_room: Remove dependency on core 2022-08-27 03:02:21 +02:00
bunnei
d1ef4b2b86 Merge pull request #8566 from german77/galaxy
core: hid: Add fallback for dualjoycon and pro controllers
2022-08-26 16:23:41 -07:00
bunnei
4b96f9864e Merge pull request #8485 from nezd5553/master
cmake: Use compatibility list in source directory
2022-08-26 16:06:41 -07:00
Liam
db3eb168cd video_core: add option for pessimistic flushing 2022-08-25 12:32:14 -04:00
FengChen
b2a6dde438 video_code: support rectangle texture 2022-08-25 12:45:58 +08:00
bunnei
a07502a638 Merge pull request #8812 from Kelebek1/auto
[Audio] Implement AudRenU:RequestUpdateAuto
2022-08-24 11:45:56 -07:00
Kelebek1
56f1dc8dad Implement AudRenU:RequestUpdateAuto, and use C descriptors when B reports as empty. 2022-08-24 18:14:21 +01:00
Narr the Reg
0c8aeb09d2 video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD 2022-08-23 18:38:34 -05:00
bunnei
3e1426c9a3 Merge pull request #8804 from vonchenplus/speed_up_idirectory_services
core:filesystem: speed up IDirectory service
2022-08-23 13:56:05 -07:00
Narr the Reg
db2335e2f8 yuzu: Force camera output to be saved on a buffer (#8805) 2022-08-22 23:54:48 -05:00
Mai
5503d572ab Merge pull request #8801 from german77/small
hid: core: Add missing function table names
2022-08-22 23:26:16 -04:00
vonchenplus
bd018e0123 core:filesystem: speed up IDirectory service 2022-08-23 09:05:59 +08:00
german77
825ac7b9f4 hid: core: Add missing function table names 2022-08-21 23:31:53 -05:00
liamwhite
7fab7b829c Merge pull request #8799 from liamwhite/where-did-the-padding-go
core/file_sys: fix alignment of BuildId
2022-08-21 14:06:06 -04:00
liamwhite
b99596e312 Merge pull request #8660 from Tachi107/findmodules-pkg-config
build: simplify find modules
2022-08-21 13:42:42 -04:00
liamwhite
3701255e4f Merge pull request #8676 from abouvier/no-check-sub
cmake: add option to check submodules
2022-08-21 13:38:26 -04:00
liamwhite
064f836d1c Merge pull request #8784 from Docteh/nosnek
code: dodge PAGE_SIZE #define
2022-08-21 12:59:01 -04:00
Liam
518317b717 core/file_sys: fix alignment of BuildId 2022-08-21 12:28:36 -04:00
bunnei
e37e3d3634 Merge pull request #8790 from liamwhite/too-many-ways-to-name-a-byte-string
core/file_sys: fix BuildId padding in patch loading
2022-08-20 22:26:02 -07:00
liamwhite
1088e8ce5c Merge pull request #8783 from german77/looong
yuzu: Allow longer controller profile names
2022-08-20 18:31:46 -04:00
liamwhite
7a3e5fe927 Merge pull request #8797 from Docteh/filtering
Qt: Retranslate GameList header and Filter line
2022-08-20 18:31:39 -04:00
liamwhite
776bcec3e1 Merge pull request #8795 from vonchenplus/support_framebuffer_crop_rect_top_not_zero
video_core: support framebuffer crop rect top not zero
2022-08-20 18:31:31 -04:00
liamwhite
47c716e892 Merge pull request #8794 from vonchenplus/clkrst_service
core: implement clkrst service
2022-08-20 18:31:23 -04:00
Kyle Kienapfel
5863f16b4c Qt: Retranslate GameList header and Filter line
Didn't notice this until I was trying to change the default font
to Comic Sans MS when language is set to English in yuzu.
2022-08-20 07:49:29 -07:00
vonchenplus
0a8c5c8622 video_core: support framebuffer crop rect top not zero 2022-08-20 21:41:40 +08:00
vonchenplus
4bab0d07a6 core: implement clkrst service 2022-08-20 14:08:59 +08:00
Kyle Kienapfel
14e9de6678 code: dodge PAGE_SIZE #define
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number
This is great except in yuzu we're using PAGE_SIZE as a variable

Specific example
`static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;`

PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables.
Simply deleted the underscores, and then added YUZU_ prefix

Might be worth noting that there are multiple uses in different classes/namespaces
This list may not be exhaustive

Core::Memory   12 bits (4096)
QueryCacheBase 12 bits
ShaderCache    14 bits (16384)
TextureCache   20 bits (1048576, or 1MB)

Fixes #8779
2022-08-19 16:08:40 -07:00
bunnei
e9b7263cfd Merge pull request #8791 from liamwhite/r16g16b16x16
video_core: implement R16G16B16X16 texture format
2022-08-19 16:04:40 -07:00
Liam
c5c425914f video_core: implement R16G16B16X16 texture format 2022-08-19 17:17:38 -04:00
Liam
39cf6abd94 core/file_sys: fix BuildId padding 2022-08-19 17:16:33 -04:00
Narr the Reg
bfbee62340 yuzu: Allow longer controller profile names 2022-08-18 17:46:39 -05:00
bunnei
2e58491c38 Merge pull request #8772 from liushuyu/remove-common-intrin
common: remove unneeded x86-specific header
2022-08-18 11:18:57 -07:00
Morph
606cdb17d3 core_timing: Sleep in discrete intervals, yield during spin 2022-08-02 01:01:54 -04:00
Kelebek1
658e1ee426 Add missing looping event schedule signal 2022-08-02 01:01:54 -04:00
Kelebek1
83a24ad638 Make coretiming waiting more accurate 2022-08-02 01:01:54 -04:00
Kelebek1
9d3b190465 Rework multi-core vsync 2022-08-01 23:51:53 -04:00
lat9nq
260430c849 common: Use PROJECT_SOURCE_DIR to find CMakeModules
Fixes CMake configuration when yuzu is a submodule of another project.
2022-08-01 23:18:56 -04:00
Andrea Pappacoda
adc8c03fe4 build(externals): rename Findopus to FindOpus
This better matches upstream's FindOpus.cmake file, and it will make
using upstream's FindOpus.cmake file easier.
2022-08-01 12:31:31 +02:00
lat9nq
6b58db9ccd patreon step2: Use jobs to build for Windows and Linux
Apparently the two stages were not building in parallel. Specify
individual jobs that run MSVC and Linux building instead.
2022-07-31 21:07:46 -04:00
lat9nq
d77fe3b1c2 ci/linux: EA AppImage adjustments
Prevent AppImageLauncher from trying to integrate our AppImage on end
user systems. Don't include the basic yuzu executable with EA or
Mainline.
2022-07-31 03:25:29 -04:00
lat9nq
69bd6cd490 patreon step2: Enable Linux build
I sure as heck don't know what I'm doing :)

patreon_step2: Fix caching

:limesDance: still don't know what I'm doing :limesDance:
2022-07-31 01:35:12 -04:00
lat9nq
dc915aff62 ci,linux: Support Patreon releases
The Early Access AppImage needs to be accessible through liftinstall, so
a couple modifications need to made:

The DIR_NAME needs to not include the revision info.
The EA AppImage name cannot contain revision info.
The EA AppImage has to be packaged with the rest of the yuzu package,
which means both binaries and the source are bundled with it now in an
archive.

In addition, fix the source archive so yuzu can actually be built from
it.

upload: Copy AppImage to both mainline and EA release package
2022-07-31 01:35:11 -04:00
Alexandre Bouvier
8b40b59084 cmake: add option to check submodules 2022-07-30 05:01:09 +02:00
Andrea Pappacoda
064625ef58 build: simplify find modules
With this patch I've deleted a few find modules that are now unused
since the vcpkg transition, as the CMake code now forces CONFIG mode for
Catch2, fmt and nlohmann_json.

I've then simplified the lz4, opus, and zstd modules by exclusively
using pkg-config. They were using it already, but were ignoring the
result. Also, I believe that manually looking for libraries was required
for Conan to work, and it is thus not needed anymore.

Lastly, I believe that there is no platform that ships these system libs
without pkg-config/pkgconf, so requiring it should be fine.
2022-07-29 22:52:23 +02:00
german77
18550b165b core: hid: Add fallback for dualjoycon and pro controllers 2022-07-10 20:27:40 -05:00
nezd5553
f85118604e cmake: Move source directory compatibility list...
... and copy it before the download check
This makes it more consistent with the directory structure of the project.
2022-07-04 00:41:31 +09:00
nezd5553
d25b193bfd cmake: Use compatibility list in source directory
For Flatpak builds, the compatibility list is located in the source directory. In this case, CMake will copy it to the build directory.
2022-06-19 18:09:54 -07:00
lat9nq
bfb7cbc292 program_metadata: Unpack FileAccessHeader and FileAccessControl
Avoids a reference binding to a misaligned addresses. Unpacking one
requires unpacking the other, otherwise there'll be a misaligned address
on the leftover one.
2022-02-13 02:20:56 -05:00
621 changed files with 39759 additions and 25842 deletions

View File

@@ -33,16 +33,14 @@ DESTDIR="$PWD/AppDir" ninja install
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
# Download tools needed to build an AppImage
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/linuxdeploy-x86_64.AppImage
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/linuxdeploy-plugin-qt-x86_64.AppImage
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/AppRun-patched-x86_64
wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/gcc/deploy-linux.sh
wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
# Set executable bit
chmod 755 \
AppRun-patched-x86_64 \
deploy-linux.sh \
AppRun.sh \
exec-x86_64.so \
linuxdeploy-x86_64.AppImage \
linuxdeploy-plugin-qt-x86_64.AppImage
# Workaround for https://github.com/AppImage/AppImageKit/issues/828
export APPIMAGE_EXTRACT_AND_RUN=1
@@ -52,7 +50,7 @@ mkdir -p AppDir/usr/optional/libstdc++
mkdir -p AppDir/usr/optional/libgcc_s
# Deploy yuzu's needed dependencies
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir
# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems
find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
@@ -60,6 +58,6 @@ find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
# See https://github.com/darealshinji/AppImageKit-checkrt
cp exec-x86_64.so AppDir/usr/optional/exec.so
cp AppRun-patched-x86_64 AppDir/AppRun
cp AppRun.sh AppDir/AppRun
cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6
cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1

View File

@@ -5,21 +5,24 @@
. .ci/scripts/common/pre-upload.sh
APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}.AppImage"
REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
BASE_NAME="yuzu-linux"
REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
ARCHIVE_NAME="${REV_NAME}.tar.xz"
COMPRESSION_FLAGS="-cJvf"
if [ "${RELEASE_NAME}" = "mainline" ]; then
DIR_NAME="${REV_NAME}"
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
DIR_NAME="${BASE_NAME}-${RELEASE_NAME}"
else
DIR_NAME="${REV_NAME}_${RELEASE_NAME}"
DIR_NAME="${REV_NAME}-${RELEASE_NAME}"
fi
mkdir "$DIR_NAME"
cp build/bin/yuzu-cmd "$DIR_NAME"
cp build/bin/yuzu "$DIR_NAME"
if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then
cp build/bin/yuzu "$DIR_NAME"
fi
# Build an AppImage
cd build
@@ -32,6 +35,11 @@ if ! ./appimagetool-x86_64.AppImage --version; then
export APPIMAGE_EXTRACT_AND_RUN=1
fi
# Don't let AppImageLauncher ask to integrate EA
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop
fi
if [ "${RELEASE_NAME}" = "mainline" ]; then
# Generate update information if releasing to mainline
./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}"
@@ -46,4 +54,9 @@ if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then
cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/"
fi
# Copy the AppImage to the general release directory and remove git revision info
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage"
fi
. .ci/scripts/common/post-upload.sh

View File

@@ -3,15 +3,6 @@
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Setup RC file for tx
cat << EOF > ~/.transifexrc
[https://www.transifex.com]
hostname = https://www.transifex.com
username = api
password = $TRANSIFEX_API_TOKEN
EOF
set -x
echo -e "\e[1m\e[33mBuild tools information:\e[0m"
@@ -19,9 +10,6 @@ cmake --version
gcc -v
tx --version
# vcpkg needs these: curl zip unzip tar, have tar
apt-get install -y curl zip unzip
mkdir build && cd build
cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON
make translation

View File

@@ -10,17 +10,14 @@ set -e
ccache -sv
mkdir -p build && cd build
export LDFLAGS="-fuse-ld=lld"
# -femulated-tls required due to an incompatibility between GCC and Clang
# TODO(lat9nq): If this is widespread, we probably need to add this to CMakeLists where appropriate
export CXXFLAGS="-femulated-tls"
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWClangCross.cmake" \
-DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWCross.cmake" \
-DDISPLAY_VERSION="$1" \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_CCACHE=ON \
-DYUZU_CRASH_DUMPS=ON \
-DYUZU_USE_BUNDLED_SDL2=OFF \
-DYUZU_USE_EXTERNAL_SDL2=OFF \
-DYUZU_TESTS=OFF \

View File

@@ -65,8 +65,8 @@ if ("$env:GITHUB_ACTIONS" -eq "true") {
# None of the other GHA builds are including source, so commenting out today
#Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts"
# Are debug symbols important?
# cp .\build\bin\yuzu*.pdb .\pdb\
# Debugging symbols
cp .\build\bin\yuzu*.pdb .\artifacts\
# Write out a tag BUILD_TAG to environment for the Upload step
# We're getting ${{ github.event.number }} as $env:PR_NUMBER"

View File

@@ -9,7 +9,7 @@ parameters:
steps:
- script: choco install vulkan-sdk
displayName: 'Install vulkan-sdk'
- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..
- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 17 2022" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=ON .. && cd ..
displayName: 'Configure CMake'
- task: MSBuild@1
displayName: 'Build'

View File

@@ -50,7 +50,7 @@ stages:
timeoutInMinutes: 120
displayName: 'msvc'
pool:
vmImage: windows-2019
vmImage: windows-2022
steps:
- template: ./templates/sync-source.yml
parameters:

View File

@@ -11,11 +11,32 @@ stages:
- stage: build
displayName: 'build'
jobs:
- job: build
- job: linux
timeoutInMinutes: 120
displayName: 'windows-msvc'
displayName: 'linux'
pool:
vmImage: windows-2019
vmImage: ubuntu-latest
strategy:
maxParallel: 10
matrix:
linux:
BuildSuffix: 'linux'
ScriptFolder: 'linux'
steps:
- template: ./templates/sync-source.yml
parameters:
artifactSource: $(parameters.artifactSource)
needSubmodules: 'true'
- template: ./templates/build-single.yml
parameters:
artifactSource: 'false'
cache: $(parameters.cache)
version: $(DisplayVersion)
- job: msvc
timeoutInMinutes: 120
displayName: 'windows'
pool:
vmImage: windows-2022
steps:
- template: ./templates/sync-source.yml
parameters:

View File

@@ -19,11 +19,11 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
fetch-depth: 0
- name: Update Translation
run: ./.ci/scripts/transifex/docker.sh
env:
TRANSIFEX_API_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }}
TX_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }}
reuse:
runs-on: ubuntu-latest

View File

@@ -71,7 +71,7 @@ jobs:
build-msvc:
name: 'test build (windows, msvc)'
needs: format
runs-on: windows-2019
runs-on: windows-2022
steps:
- name: Set up cache
uses: actions/cache@v3
@@ -104,7 +104,7 @@ jobs:
run: |
glslangValidator --version
mkdir build
cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify
cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DYUZU_CRASH_DUMPS=ON
- name: Build
run: cmake --build build
- name: Cache Summary

2
.gitignore vendored
View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Build directory
[Bb]uild/
[Bb]uild*/
doc-build/
# Generated source files

View File

@@ -6,6 +6,7 @@ Files: dist/english_plurals/*
dist/icons/controller/*.png
dist/icons/overlay/*.png
dist/languages/*
dist/qt_themes/*/icons/48x48/sd_card.png
dist/qt_themes/*/icons/index.theme
dist/qt_themes/default/style.qss
Copyright: yuzu Emulator Project
@@ -51,6 +52,8 @@ Files: dist/qt_themes/colorful/icons/16x16/lock.png
dist/qt_themes/colorful/icons/48x48/chip.png
dist/qt_themes/colorful/icons/48x48/folder.png
dist/qt_themes/colorful_dark/icons/16x16/lock.png
dist/qt_themes/colorful/icons/16x16/info.png
dist/qt_themes/colorful/icons/16x16/sync.png
Copyright: Icons8
License: MIT
Comment: https://github.com/icons8/flat-color-icons
@@ -66,11 +69,9 @@ Files: dist/qt_themes/*/icons/48x48/no_avatar.png
Copyright: Ionic (http://ionic.io/)
License: MIT
Files: dist/qt_themes/*/icons/48x48/sd_card.png
dist/qt_themes/colorful/icons/48x48/star.png
dist/qt_themes/default/icons/16x16/checked.png
dist/qt_themes/default/icons/16x16/failed.png
Files: dist/qt_themes/colorful/icons/48x48/star.png
dist/qt_themes/colorful/icons/16x16/checked.png
dist/qt_themes/colorful/icons/16x16/failed.png
Copyright: SVG Repo
License: CC0-1.0

View File

@@ -38,12 +38,19 @@ option(YUZU_USE_BUNDLED_OPUS "Compile bundled opus" ON)
option(YUZU_TESTS "Compile tests" ON)
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF)
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON)
if (YUZU_USE_BUNDLED_VCPKG)
if (YUZU_TESTS)
list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
endif()
if (YUZU_CRASH_DUMPS)
list(APPEND VCPKG_MANIFEST_FEATURES "dbghelp")
endif()
include(${CMAKE_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake)
elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "")
@@ -81,12 +88,17 @@ function(check_submodules_present)
endforeach()
endfunction()
if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules)
if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules AND YUZU_CHECK_SUBMODULES)
check_submodules_present()
endif()
configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
COPYONLY)
if (EXISTS ${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.json)
configure_file("${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.json"
"${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json"
COPYONLY)
endif()
if (ENABLE_COMPATIBILITY_LIST_DOWNLOAD AND NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
message(STATUS "Downloading compatibility list for yuzu...")
file(DOWNLOAD
@@ -240,7 +252,7 @@ if(ENABLE_QT)
endif()
# Check for headers
Include(FindPkgConfig REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(QT_DEP_GLU QUIET glu>=9.0.0)
if (NOT QT_DEP_GLU_FOUND)
message(FATAL_ERROR "Qt bundled pacakge dependency `glu` not found. \
@@ -374,7 +386,7 @@ endif()
# Ensure libusb is properly configured (based on dolphin libusb include)
if(NOT APPLE AND NOT YUZU_USE_BUNDLED_LIBUSB)
include(FindPkgConfig)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND AND NOT CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD")
pkg_check_modules(LIBUSB QUIET libusb-1.0>=1.0.24)
else()
@@ -398,7 +410,7 @@ set(FFmpeg_COMPONENTS
swscale)
if (UNIX AND NOT APPLE)
Include(FindPkgConfig REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBVA libva)
endif()
if (NOT YUZU_USE_BUNDLED_FFMPEG)
@@ -440,6 +452,13 @@ elseif (WIN32)
# PSAPI is the Process Status API
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
endif()
if (YUZU_CRASH_DUMPS)
find_library(DBGHELP_LIBRARY dbghelp)
if ("${DBGHELP_LIBRARY}" STREQUAL "DBGHELP_LIBRARY-NOTFOUND")
message(FATAL_ERROR "YUZU_CRASH_DUMPS enabled but dbghelp library not found")
endif()
endif()
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
set(PLATFORM_LIBRARIES rt)
endif()
@@ -522,9 +541,9 @@ add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY
# Adjustments for MSVC + Ninja
if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
add_compile_options(
/wd4711 # function 'function' selected for automatic inline expansion
/wd4464 # relative include path contains '..'
/wd4820 # 'identifier1': '4' bytes padding added after data member 'identifier2'
/wd4711 # function 'function' selected for automatic inline expansion
/wd4820 # 'bytes' bytes padding added after construct 'member_name'
)
endif()

View File

@@ -7,11 +7,6 @@ function(get_timestamp _var)
set(${_var} "${timestamp}" PARENT_SCOPE)
endfunction()
list(APPEND CMAKE_MODULE_PATH "${SRC_DIR}/externals/cmake-modules")
# Find the package here with the known path so that the GetGit commands can find it as well
find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
# generate git/build information
include(GetGitRevisionDescription)
if(NOT GIT_REF_SPEC)
@@ -29,6 +24,7 @@ get_timestamp(BUILD_DATE)
# Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well
set(REPO_NAME "")
set(BUILD_VERSION "0")
set(BUILD_ID ${DISPLAY_VERSION})
if (BUILD_REPOSITORY)
# regex capture the string nightly or canary into CMAKE_MATCH_1
string(REGEX MATCH "yuzu-emu/yuzu-?(.*)" OUTVAR ${BUILD_REPOSITORY})
@@ -57,6 +53,4 @@ if (BUILD_REPOSITORY)
endif()
endif()
# The variable SRC_DIR must be passed into the script
# (since it uses the current build directory for all values of CMAKE_*_DIR)
configure_file("${SRC_DIR}/src/common/scm_rev.cpp.in" "scm_rev.cpp" @ONLY)
configure_file(scm_rev.cpp.in scm_rev.cpp @ONLY)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com
[yuzu.emulator]
[o:yuzu-emulator:p:yuzu:r:emulator]
file_filter = <lang>.ts
source_file = en.ts
source_lang = en

View File

@@ -1 +1,3 @@
This directory stores translation patches (TS files) for yuzu Qt frontend. This directory is linked with [yuzu project on transifex](https://www.transifex.com/yuzu-emulator/yuzu), so you can update the translation by executing `tx pull -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically. Do not directly open PRs on github to modify the translation.
This directory stores translation patches (TS files) for yuzu Qt frontend. This directory is linked with [yuzu project on transifex](https://www.transifex.com/yuzu-emulator/yuzu), so you can update the translation by executing `tx pull -t -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically.
Do not directly open PRs on github to modify the translation.

1150
dist/languages/ca.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/cs.ts vendored

File diff suppressed because it is too large Load Diff

1154
dist/languages/da.ts vendored

File diff suppressed because it is too large Load Diff

1274
dist/languages/de.ts vendored

File diff suppressed because it is too large Load Diff

1199
dist/languages/el.ts vendored

File diff suppressed because it is too large Load Diff

1489
dist/languages/es.ts vendored

File diff suppressed because it is too large Load Diff

1492
dist/languages/fr.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/id.ts vendored

File diff suppressed because it is too large Load Diff

2214
dist/languages/it.ts vendored

File diff suppressed because it is too large Load Diff

1603
dist/languages/ja_JP.ts vendored

File diff suppressed because it is too large Load Diff

1399
dist/languages/ko_KR.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/nb.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/nl.ts vendored

File diff suppressed because it is too large Load Diff

1408
dist/languages/pl.ts vendored

File diff suppressed because it is too large Load Diff

1226
dist/languages/pt_BR.ts vendored

File diff suppressed because it is too large Load Diff

1226
dist/languages/pt_PT.ts vendored

File diff suppressed because it is too large Load Diff

1501
dist/languages/ru_RU.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/sv.ts vendored

File diff suppressed because it is too large Load Diff

1382
dist/languages/tr_TR.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/vi.ts vendored

File diff suppressed because it is too large Load Diff

1150
dist/languages/vi_VN.ts vendored

File diff suppressed because it is too large Load Diff

1162
dist/languages/zh_CN.ts vendored

File diff suppressed because it is too large Load Diff

1148
dist/languages/zh_TW.ts vendored

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 414 B

View File

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

View File

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 528 B

View File

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 B

After

Width:  |  Height:  |  Size: 228 B

View File

@@ -1,7 +1,6 @@
[Icon Theme]
Name=colorful
Comment=Colorful theme
Inherits=default
Directories=16x16,48x48,256x256
[16x16]

View File

@@ -6,14 +6,20 @@ SPDX-License-Identifier: GPL-2.0-or-later
<RCC>
<qresource prefix="icons/colorful">
<file alias="index.theme">icons/index.theme</file>
<file alias="16x16/checked.png">icons/16x16/checked.png</file>
<file alias="16x16/connected.png">icons/16x16/connected.png</file>
<file alias="16x16/connected_notification.png">icons/16x16/connected_notification.png</file>
<file alias="16x16/disconnected.png">icons/16x16/disconnected.png</file>
<file alias="16x16/failed.png">icons/16x16/failed.png</file>
<file alias="16x16/info.png">icons/16x16/info.png</file>
<file alias="16x16/lock.png">icons/16x16/lock.png</file>
<file alias="16x16/sync.png">icons/16x16/sync.png</file>
<file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file>
<file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file>
<file alias="48x48/chip.png">icons/48x48/chip.png</file>
<file alias="48x48/folder.png">icons/48x48/folder.png</file>
<file alias="48x48/list-add.png">icons/48x48/list-add.png</file>
<file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file>
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
<file alias="48x48/star.png">icons/48x48/star.png</file>
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>

View File

@@ -5,19 +5,9 @@ SPDX-License-Identifier: GPL-2.0-or-later
<RCC>
<qresource prefix="icons/colorful_dark">
<file alias="16x16/connected.png">../colorful/icons/16x16/connected.png</file>
<file alias="16x16/connected_notification.png">../colorful/icons/16x16/connected_notification.png</file>
<file alias="16x16/disconnected.png">../colorful/icons/16x16/disconnected.png</file>
<file alias="index.theme">icons/index.theme</file>
<file alias="16x16/lock.png">icons/16x16/lock.png</file>
<file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file>
<file alias="48x48/bad_folder.png">../colorful/icons/48x48/bad_folder.png</file>
<file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file>
<file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file>
<file alias="48x48/no_avatar.png">../qdarkstyle/icons/48x48/no_avatar.png</file>
<file alias="48x48/list-add.png">../colorful/icons/48x48/list-add.png</file>
<file alias="48x48/sd_card.png">../colorful/icons/48x48/sd_card.png</file>
<file alias="256x256/plus_folder.png">../colorful/icons/256x256/plus_folder.png</file>
</qresource>
<qresource prefix="qss_icons">

View File

@@ -5,23 +5,20 @@ SPDX-License-Identifier: GPL-2.0-or-later
<RCC>
<qresource prefix="icons/default">
<!-- "colorful" is now the default theme, add new icons there -->
<file alias="index.theme">icons/index.theme</file>
<file alias="16x16/checked.png">icons/16x16/checked.png</file>
<file alias="16x16/failed.png">icons/16x16/failed.png</file>
<file alias="16x16/lock.png">icons/16x16/lock.png</file>
<file alias="16x16/connected.png">icons/16x16/connected.png</file>
<file alias="16x16/disconnected.png">icons/16x16/disconnected.png</file>
<file alias="16x16/connected_notification.png">icons/16x16/connected_notification.png</file>
<file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file>
<file alias="16x16/disconnected.png">icons/16x16/disconnected.png</file>
<file alias="16x16/lock.png">icons/16x16/lock.png</file>
<file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file>
<file alias="48x48/chip.png">icons/48x48/chip.png</file>
<file alias="48x48/folder.png">icons/48x48/folder.png</file>
<file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file>
<file alias="48x48/list-add.png">icons/48x48/list-add.png</file>
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
<file alias="48x48/star.png">icons/48x48/star.png</file>
<file alias="256x256/yuzu.png">icons/256x256/yuzu.png</file>
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
<file alias="256x256/yuzu.png">icons/256x256/yuzu.png</file>
</qresource>
<qresource prefix="default">
<file>style.qss</file>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 198 B

View File

@@ -1,6 +1,7 @@
[Icon Theme]
Name=default
Comment=default theme
Inherits=colorful
Directories=16x16,48x48,256x256
[16x16]
@@ -10,4 +11,4 @@ Size=16
Size=48
[256x256]
Size=256
Size=256

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

After

Width:  |  Height:  |  Size: 214 B

View File

@@ -1,7 +1,7 @@
[Icon Theme]
Name=qdarkstyle
Comment=dark theme
Inherits=default
Inherits=colorful
Directories=16x16,48x48,256x256
[16x16]
@@ -11,4 +11,4 @@ Size=16
Size=48
[256x256]
Size=256
Size=256

View File

@@ -1,7 +1,7 @@
[Icon Theme]
Name=qdarkstyle_midnight_blue
Comment=dark theme
Inherits=default
Inherits=colorful
Directories=16x16,48x48,256x256
[16x16]

View File

@@ -16,7 +16,6 @@ endif()
# Dynarmic
if (ARCHITECTURE_x86_64)
set(DYNARMIC_TESTS OFF)
set(DYNARMIC_NO_BUNDLED_FMT ON)
set(DYNARMIC_IGNORE_ASSERTS ON CACHE BOOL "" FORCE)
add_subdirectory(dynarmic)
@@ -128,7 +127,7 @@ endif()
if (YUZU_USE_BUNDLED_OPUS)
add_subdirectory(opus EXCLUDE_FROM_ALL)
else()
find_package(opus 1.3 REQUIRED)
find_package(Opus 1.3 REQUIRED)
endif()
# FFMpeg

View File

@@ -43,7 +43,7 @@ if (NOT WIN32)
CACHE PATH "Paths to FFmpeg libraries" FORCE)
endforeach()
Include(FindPkgConfig REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBVA libva)
pkg_check_modules(CUDA cuda)
pkg_check_modules(FFNVCODEC ffnvcodec)

View File

@@ -1,51 +0,0 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_Catch2 QUIET Catch2)
find_path(Catch2_INCLUDE_DIR
NAMES catch.hpp
PATHS ${PC_Catch2_INCLUDE_DIRS} ${CONAN_CATCH2_ROOT}
PATH_SUFFIXES catch2
)
if(Catch2_INCLUDE_DIR)
file(STRINGS "${Catch2_INCLUDE_DIR}/catch.hpp" _Catch2_version_lines
REGEX "#define[ \t]+CATCH_VERSION_(MAJOR|MINOR|PATCH)")
string(REGEX REPLACE ".*CATCH_VERSION_MAJOR +\([0-9]+\).*" "\\1" _Catch2_version_major "${_Catch2_version_lines}")
string(REGEX REPLACE ".*CATCH_VERSION_MINOR +\([0-9]+\).*" "\\1" _Catch2_version_minor "${_Catch2_version_lines}")
string(REGEX REPLACE ".*CATCH_VERSION_PATCH +\([0-9]+\).*" "\\1" _Catch2_version_patch "${_Catch2_version_lines}")
set(Catch2_VERSION "${_Catch2_version_major}.${_Catch2_version_minor}.${_Catch2_version_patch}")
unset(_Catch2_version_major)
unset(_Catch2_version_minor)
unset(_Catch2_version_patch)
unset(_Catch2_version_lines)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Catch2
FOUND_VAR Catch2_FOUND
REQUIRED_VARS
Catch2_INCLUDE_DIR
Catch2_VERSION
VERSION_VAR Catch2_VERSION
)
if(Catch2_FOUND)
set(Catch2_INCLUDE_DIRS ${Catch2_INCLUDE_DIR})
set(Catch2_DEFINITIONS ${PC_Catch2_CFLAGS_OTHER})
endif()
if(Catch2_FOUND AND NOT TARGET Catch2::Catch2)
add_library(Catch2::Catch2 UNKNOWN IMPORTED)
set_target_properties(Catch2::Catch2 PROPERTIES
IMPORTED_LOCATION "${Catch2_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_Catch2_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Catch2_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
Catch2_INCLUDE_DIR
)

19
externals/find-modules/FindOpus.cmake vendored Normal file
View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_search_module(opus IMPORTED_TARGET GLOBAL opus)
if (opus_FOUND)
add_library(Opus::opus ALIAS PkgConfig::opus)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Opus
REQUIRED_VARS
opus_LINK_LIBRARIES
opus_FOUND
VERSION_VAR opus_VERSION
)

View File

@@ -1,71 +0,0 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_fmt QUIET fmt)
find_path(fmt_INCLUDE_DIR
NAMES format.h
PATHS ${PC_fmt_INCLUDE_DIRS} ${CONAN_INCLUDE_DIRS_fmt}
PATH_SUFFIXES fmt
)
find_library(fmt_LIBRARY
NAMES fmt
PATHS ${PC_fmt_LIBRARY_DIRS} ${CONAN_LIB_DIRS_fmt}
)
if(fmt_INCLUDE_DIR)
set(_fmt_version_file "${fmt_INCLUDE_DIR}/core.h")
if(NOT EXISTS "${_fmt_version_file}")
set(_fmt_version_file "${fmt_INCLUDE_DIR}/format.h")
endif()
if(EXISTS "${_fmt_version_file}")
# parse "#define FMT_VERSION 60200" to 6.2.0
file(STRINGS "${_fmt_version_file}" fmt_VERSION_LINE
REGEX "^#define[ \t]+FMT_VERSION[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+FMT_VERSION[ \t]+([0-9]+)$"
"\\1" fmt_VERSION "${fmt_VERSION_LINE}")
foreach(ver "fmt_VERSION_PATCH" "fmt_VERSION_MINOR" "fmt_VERSION_MAJOR")
math(EXPR ${ver} "${fmt_VERSION} % 100")
math(EXPR fmt_VERSION "(${fmt_VERSION} - ${${ver}}) / 100")
endforeach()
set(fmt_VERSION
"${fmt_VERSION_MAJOR}.${fmt_VERSION_MINOR}.${fmt_VERSION_PATCH}")
endif()
unset(_fmt_version_file)
unset(fmt_VERSION_LINE)
unset(fmt_VERSION_MAJOR)
unset(fmt_VERSION_MINOR)
unset(fmt_VERSION_PATCH)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(fmt
FOUND_VAR fmt_FOUND
REQUIRED_VARS
fmt_LIBRARY
fmt_INCLUDE_DIR
fmt_VERSION
VERSION_VAR fmt_VERSION
)
if(fmt_FOUND)
set(fmt_LIBRARIES ${fmt_LIBRARY})
set(fmt_INCLUDE_DIRS ${fmt_INCLUDE_DIR})
set(fmt_DEFINITIONS ${PC_fmt_CFLAGS_OTHER})
endif()
if(fmt_FOUND AND NOT TARGET fmt::fmt)
add_library(fmt::fmt UNKNOWN IMPORTED)
set_target_properties(fmt::fmt PROPERTIES
IMPORTED_LOCATION "${fmt_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_fmt_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${fmt_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
fmt_INCLUDE_DIR
fmt_LIBRARY
)

View File

@@ -1,56 +1,19 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_lz4 QUIET lz4)
find_package(PkgConfig)
find_path(lz4_INCLUDE_DIR
NAMES lz4.h
PATHS ${PC_lz4_INCLUDE_DIRS}
)
find_library(lz4_LIBRARY
NAMES lz4
PATHS ${PC_lz4_LIBRARY_DIRS}
)
if(lz4_INCLUDE_DIR)
file(STRINGS "${lz4_INCLUDE_DIR}/lz4.h" _lz4_version_lines
REGEX "#define[ \t]+LZ4_VERSION_(MAJOR|MINOR|RELEASE)")
string(REGEX REPLACE ".*LZ4_VERSION_MAJOR *\([0-9]*\).*" "\\1" _lz4_version_major "${_lz4_version_lines}")
string(REGEX REPLACE ".*LZ4_VERSION_MINOR *\([0-9]*\).*" "\\1" _lz4_version_minor "${_lz4_version_lines}")
string(REGEX REPLACE ".*LZ4_VERSION_RELEASE *\([0-9]*\).*" "\\1" _lz4_version_release "${_lz4_version_lines}")
set(lz4_VERSION "${_lz4_version_major}.${_lz4_version_minor}.${_lz4_version_release}")
unset(_lz4_version_major)
unset(_lz4_version_minor)
unset(_lz4_version_release)
unset(_lz4_version_lines)
if (PKG_CONFIG_FOUND)
pkg_search_module(liblz4 IMPORTED_TARGET GLOBAL liblz4)
if (liblz4_FOUND)
add_library(lz4::lz4 ALIAS PkgConfig::liblz4)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(lz4
FOUND_VAR lz4_FOUND
REQUIRED_VARS
lz4_LIBRARY
lz4_INCLUDE_DIR
VERSION_VAR lz4_VERSION
)
if(lz4_FOUND)
set(lz4_LIBRARIES ${lz4_LIBRARY})
set(lz4_INCLUDE_DIRS ${lz4_INCLUDE_DIR})
set(lz4_DEFINITIONS ${PC_lz4_CFLAGS_OTHER})
endif()
if(lz4_FOUND AND NOT TARGET lz4::lz4)
add_library(lz4::lz4 UNKNOWN IMPORTED)
set_target_properties(lz4::lz4 PROPERTIES
IMPORTED_LOCATION "${lz4_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_lz4_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${lz4_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
lz4_INCLUDE_DIR
lz4_LIBRARY
REQUIRED_VARS
liblz4_LINK_LIBRARIES
liblz4_FOUND
VERSION_VAR liblz4_VERSION
)

View File

@@ -1,51 +0,0 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_nlohmann_json QUIET nlohmann_json)
find_path(nlohmann_json_INCLUDE_DIR
NAMES json.hpp
PATHS ${PC_nlohmann_json_INCLUDE_DIRS}
PATH_SUFFIXES nlohmann
)
if(nlohmann_json_INCLUDE_DIR)
file(STRINGS "${nlohmann_json_INCLUDE_DIR}/json.hpp" _nlohmann_json_version_lines
REGEX "#define[ \t]+NLOHMANN_JSON_VERSION_(MAJOR|MINOR|PATCH)")
string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_MAJOR +\([0-9]+\).*" "\\1" _nlohmann_json_version_major "${_nlohmann_json_version_lines}")
string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_MINOR +\([0-9]+\).*" "\\1" _nlohmann_json_version_minor "${_nlohmann_json_version_lines}")
string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_PATCH +\([0-9]+\).*" "\\1" _nlohmann_json_version_patch "${_nlohmann_json_version_lines}")
set(nlohmann_json_VERSION "${_nlohmann_json_version_major}.${_nlohmann_json_version_minor}.${_nlohmann_json_version_patch}")
unset(_nlohmann_json_version_major)
unset(_nlohmann_json_version_minor)
unset(_nlohmann_json_version_patch)
unset(_nlohmann_json_version_lines)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(nlohmann_json
FOUND_VAR nlohmann_json_FOUND
REQUIRED_VARS
nlohmann_json_INCLUDE_DIR
nlohmann_json_VERSION
VERSION_VAR nlohmann_json_VERSION
)
if(nlohmann_json_FOUND)
set(nlohmann_json_INCLUDE_DIRS ${nlohmann_json_INCLUDE_DIR})
set(nlohmann_json_DEFINITIONS ${PC_nlohmann_json_CFLAGS_OTHER})
endif()
if(nlohmann_json_FOUND AND NOT TARGET nlohmann_json::nlohmann_json)
add_library(nlohmann_json::nlohmann_json UNKNOWN IMPORTED)
set_target_properties(nlohmann_json::nlohmann_json PROPERTIES
IMPORTED_LOCATION "${nlohmann_json_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_nlohmann_json_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${nlohmann_json_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
nlohmann_json_INCLUDE_DIR
)

View File

@@ -1,44 +0,0 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_opus QUIET opus)
find_path(opus_INCLUDE_DIR
NAMES opus.h
PATHS ${PC_opus_INCLUDE_DIRS}
PATH_SUFFIXES opus
)
find_library(opus_LIBRARY
NAMES opus
PATHS ${PC_opus_LIBRARY_DIRS}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(opus
FOUND_VAR opus_FOUND
REQUIRED_VARS
opus_LIBRARY
opus_INCLUDE_DIR
VERSION_VAR opus_VERSION
)
if(opus_FOUND)
set(Opus_LIBRARIES ${opus_LIBRARY})
set(Opus_INCLUDE_DIRS ${opus_INCLUDE_DIR})
set(Opus_DEFINITIONS ${PC_opus_CFLAGS_OTHER})
endif()
if(opus_FOUND AND NOT TARGET Opus::Opus)
add_library(Opus::Opus UNKNOWN IMPORTED GLOBAL)
set_target_properties(Opus::Opus PROPERTIES
IMPORTED_LOCATION "${opus_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_opus_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${opus_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
opus_INCLUDE_DIR
opus_LIBRARY
)

View File

@@ -1,57 +1,19 @@
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(PC_zstd QUIET libzstd)
find_package(PkgConfig)
find_path(zstd_INCLUDE_DIR
NAMES zstd.h
PATHS ${PC_zstd_INCLUDE_DIRS}
)
find_library(zstd_LIBRARY
NAMES zstd
PATHS ${PC_zstd_LIBRARY_DIRS}
)
if(zstd_INCLUDE_DIR)
file(STRINGS "${zstd_INCLUDE_DIR}/zstd.h" _zstd_version_lines
REGEX "#define[ \t]+ZSTD_VERSION_(MAJOR|MINOR|RELEASE)")
string(REGEX REPLACE ".*ZSTD_VERSION_MAJOR *\([0-9]*\).*" "\\1" _zstd_version_major "${_zstd_version_lines}")
string(REGEX REPLACE ".*ZSTD_VERSION_MINOR *\([0-9]*\).*" "\\1" _zstd_version_minor "${_zstd_version_lines}")
string(REGEX REPLACE ".*ZSTD_VERSION_RELEASE *\([0-9]*\).*" "\\1" _zstd_version_release "${_zstd_version_lines}")
set(zstd_VERSION "${_zstd_version_major}.${_zstd_version_minor}.${_zstd_version_release}")
unset(_zstd_version_major)
unset(_zstd_version_minor)
unset(_zstd_version_release)
unset(_zstd_version_lines)
if (PKG_CONFIG_FOUND)
pkg_search_module(libzstd IMPORTED_TARGET GLOBAL libzstd)
if (libzstd_FOUND)
add_library(zstd::zstd ALIAS PkgConfig::libzstd)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(zstd
FOUND_VAR zstd_FOUND
REQUIRED_VARS
zstd_LIBRARY
zstd_INCLUDE_DIR
zstd_VERSION
VERSION_VAR zstd_VERSION
)
if(zstd_FOUND)
set(zstd_LIBRARIES ${zstd_LIBRARY})
set(zstd_INCLUDE_DIRS ${zstd_INCLUDE_DIR})
set(zstd_DEFINITIONS ${PC_zstd_CFLAGS_OTHER})
endif()
if(zstd_FOUND AND NOT TARGET zstd::zstd)
add_library(zstd::zstd UNKNOWN IMPORTED)
set_target_properties(zstd::zstd PROPERTIES
IMPORTED_LOCATION "${zstd_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_zstd_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
)
endif()
mark_as_advanced(
zstd_INCLUDE_DIR
zstd_LIBRARY
REQUIRED_VARS
libzstd_LINK_LIBRARIES
libzstd_FOUND
VERSION_VAR libzstd_VERSION
)

View File

@@ -108,7 +108,7 @@ if (MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") OR APPLE)
target_include_directories(usb INTERFACE "${LIBUSB_INCLUDE_DIRS}")
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
Include(FindPkgConfig)
find_package(PkgConfig)
pkg_check_modules(LIBUDEV REQUIRED libudev)
if (LIBUDEV_FOUND)

View File

@@ -256,4 +256,4 @@ PRIVATE
opus/src
)
add_library(Opus::Opus ALIAS opus)
add_library(Opus::opus ALIAS opus)

View File

@@ -58,13 +58,11 @@ if (MSVC)
# Warnings
/W3
/we4018 # 'expression': signed/unsigned mismatch
/WX
/we4062 # Enumerator 'identifier' in a switch of enum 'enumeration' is not handled
/we4101 # 'identifier': unreferenced local variable
/we4189 # 'identifier': local variable is initialized but not referenced
/we4265 # 'class': class has virtual functions, but destructor is not virtual
/we4267 # 'var': conversion from 'size_t' to 'type', possible loss of data
/we4305 # 'context': truncation from 'type1' to 'type2'
/we4388 # 'expression': signed/unsigned mismatch
/we4389 # 'operator': signed/unsigned mismatch
/we4456 # Declaration of 'identifier' hides previous local declaration
@@ -75,10 +73,13 @@ if (MSVC)
/we4547 # 'operator': operator before comma has no effect; expected operator with side-effect
/we4549 # 'operator1': operator before comma has no effect; did you intend 'operator2'?
/we4555 # Expression has no effect; expected expression with side-effect
/we4715 # 'function': not all control paths return a value
/we4834 # Discarding return value of function with 'nodiscard' attribute
/we4826 # Conversion from 'type1' to 'type2' is sign-extended. This may cause unexpected runtime behavior.
/we5038 # data member 'member1' will be initialized after data member 'member2'
/we5233 # explicit lambda capture 'identifier' is not used
/we5245 # 'function': unreferenced function with internal linkage has been removed
/wd4100 # 'identifier': unreferenced formal parameter
/wd4324 # 'struct_name': structure was padded due to __declspec(align())
)
if (USE_CCACHE)
@@ -99,28 +100,23 @@ if (MSVC)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG /MANIFEST:NO /INCREMENTAL:NO /OPT:REF,ICF" CACHE STRING "" FORCE)
else()
add_compile_options(
-Wall
-Werror=array-bounds
-Werror=implicit-fallthrough
-Werror=all
-Werror=extra
-Werror=missing-declarations
-Werror=missing-field-initializers
-Werror=reorder
-Werror=shadow
-Werror=sign-compare
-Werror=switch
-Werror=uninitialized
-Werror=unused-function
-Werror=unused-result
-Werror=unused-variable
-Wextra
-Wmissing-declarations
-Werror=unused
-Wno-attributes
-Wno-invalid-offsetof
-Wno-unused-parameter
$<$<CXX_COMPILER_ID:Clang>:-Wno-braced-scalar-init>
$<$<CXX_COMPILER_ID:Clang>:-Wno-unused-private-field>
)
if (ARCHITECTURE_x86_64)
add_compile_options("-mcx16")
add_compile_options("-fwrapv")
endif()
if (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL Clang)

View File

@@ -194,6 +194,7 @@ add_library(audio_core STATIC
sink/sink.h
sink/sink_details.cpp
sink/sink_details.h
sink/sink_stream.cpp
sink/sink_stream.h
)
@@ -205,20 +206,11 @@ if (MSVC)
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
/we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch
/we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
/we4456 # Declaration of 'identifier' hides previous local declaration
/we4457 # Declaration of 'identifier' hides function parameter
/we4458 # Declaration of 'identifier' hides class member
/we4459 # Declaration of 'identifier' hides global declaration
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
)
else()
target_compile_options(audio_core PRIVATE
-Werror=conversion
-Werror=ignored-qualifiers
-Werror=shadow
-Werror=unused-variable
$<$<CXX_COMPILER_ID:GNU>:-Werror=unused-but-set-parameter>
$<$<CXX_COMPILER_ID:GNU>:-Werror=unused-but-set-variable>
-Wno-sign-conversion
)

View File

@@ -8,7 +8,7 @@
namespace AudioCore {
AudioCore::AudioCore(Core::System& system) : audio_manager{std::make_unique<AudioManager>(system)} {
AudioCore::AudioCore(Core::System& system) : audio_manager{std::make_unique<AudioManager>()} {
CreateSinks();
// Must be created after the sinks
adsp = std::make_unique<AudioRenderer::ADSP::ADSP>(system, *output_sink);
@@ -47,22 +47,12 @@ AudioRenderer::ADSP::ADSP& AudioCore::GetADSP() {
return *adsp;
}
void AudioCore::PauseSinks(const bool pausing) const {
if (pausing) {
output_sink->PauseStreams();
input_sink->PauseStreams();
} else {
output_sink->UnpauseStreams();
input_sink->UnpauseStreams();
}
void AudioCore::SetNVDECActive(bool active) {
nvdec_active = active;
}
u32 AudioCore::GetStreamQueue() const {
return estimated_queue.load();
}
void AudioCore::SetStreamQueue(u32 size) {
estimated_queue.store(size);
bool AudioCore::IsNVDECActive() const {
return nvdec_active;
}
} // namespace AudioCore

View File

@@ -17,7 +17,7 @@ namespace AudioCore {
class AudioManager;
/**
* Main audio class, sotred inside the core, and holding the audio manager, all sinks, and the ADSP.
* Main audio class, stored inside the core, and holding the audio manager, all sinks, and the ADSP.
*/
class AudioCore {
public:
@@ -58,26 +58,16 @@ public:
AudioRenderer::ADSP::ADSP& GetADSP();
/**
* Pause the sink. Called from the core.
* Toggle NVDEC state, used to avoid stall in playback.
*
* @param pausing - Is this pause due to an actual pause, or shutdown?
* Unfortunately, shutdown also pauses streams, which can cause issues.
* @param active - Set true if nvdec is active, otherwise false.
*/
void PauseSinks(bool pausing) const;
void SetNVDECActive(bool active);
/**
* Get the size of the current stream queue.
*
* @return Current stream queue size.
* Get NVDEC state.
*/
u32 GetStreamQueue() const;
/**
* Get the size of the current stream queue.
*
* @param size - New stream size.
*/
void SetStreamQueue(u32 size);
bool IsNVDECActive() const;
private:
/**
@@ -93,8 +83,8 @@ private:
std::unique_ptr<Sink::Sink> input_sink;
/// The ADSP in the sysmodule
std::unique_ptr<AudioRenderer::ADSP::ADSP> adsp;
/// Current size of the stream queue
std::atomic<u32> estimated_queue{0};
/// Is NVDec currently active?
bool nvdec_active{false};
};
} // namespace AudioCore

View File

@@ -14,7 +14,7 @@ namespace AudioCore {
* Responsible for the input/output events, set by the stream backend when buffers are consumed, and
* waited on by the audio manager. These callbacks signal the game's events to keep the audio buffer
* recycling going.
* In a real Switch this is not a seprate class, and exists entirely within the audio manager.
* In a real Switch this is not a separate class, and exists entirely within the audio manager.
* On the Switch it's implemented more simply through a MultiWaitEventHolder, where it can
* wait on multiple events at once, and the events are not needed by the backend.
*/
@@ -81,7 +81,7 @@ public:
void ClearEvents();
private:
/// Lock, used bythe audio manager
/// Lock, used by the audio manager
std::mutex event_lock;
/// Array of events, one per system type (see Type), last event is used to terminate
std::array<std::atomic<bool>, 4> events_signalled;

View File

@@ -82,7 +82,7 @@ u32 Manager::GetDeviceNames(std::vector<AudioRenderer::AudioDevice::AudioDeviceN
auto input_devices{Sink::GetDeviceListForSink(Settings::values.sink_id.GetValue(), true)};
if (input_devices.size() > 1) {
names.push_back(AudioRenderer::AudioDevice::AudioDeviceName("Uac"));
names.emplace_back("Uac");
return 1;
}
return 0;

View File

@@ -59,9 +59,10 @@ public:
/**
* Get a list of audio in device names.
*
* @oaram names - Output container to write names to.
* @param max_count - Maximum numebr of deivce names to write. Unused
* @param names - Output container to write names to.
* @param max_count - Maximum number of device names to write. Unused
* @param filter - Should the list be filtered? Unused.
*
* @return Number of names written.
*/
u32 GetDeviceNames(std::vector<AudioRenderer::AudioDevice::AudioDeviceName>& names,

View File

@@ -1,14 +1,13 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "audio_core/audio_in_manager.h"
#include "audio_core/audio_manager.h"
#include "audio_core/audio_out_manager.h"
#include "core/core.h"
#include "core/hle/service/audio/errors.h"
namespace AudioCore {
AudioManager::AudioManager(Core::System& system_) : system{system_} {
AudioManager::AudioManager() {
thread = std::jthread([this]() { ThreadFunc(); });
}
@@ -27,7 +26,7 @@ Result AudioManager::SetOutManager(BufferEventFunc buffer_func) {
const auto index{events.GetManagerIndex(Event::Type::AudioOutManager)};
if (buffer_events[index] == nullptr) {
buffer_events[index] = buffer_func;
buffer_events[index] = std::move(buffer_func);
needs_update = true;
events.SetAudioEvent(Event::Type::AudioOutManager, true);
}
@@ -43,7 +42,7 @@ Result AudioManager::SetInManager(BufferEventFunc buffer_func) {
const auto index{events.GetManagerIndex(Event::Type::AudioInManager)};
if (buffer_events[index] == nullptr) {
buffer_events[index] = buffer_func;
buffer_events[index] = std::move(buffer_func);
needs_update = true;
events.SetAudioEvent(Event::Type::AudioInManager, true);
}
@@ -60,19 +59,21 @@ void AudioManager::ThreadFunc() {
running = true;
while (running) {
auto timed_out{events.Wait(l, std::chrono::seconds(2))};
const auto timed_out{events.Wait(l, std::chrono::seconds(2))};
if (events.CheckAudioEventSet(Event::Type::Max)) {
break;
}
for (size_t i = 0; i < buffer_events.size(); i++) {
if (events.CheckAudioEventSet(Event::Type(i)) || timed_out) {
const auto event_type = static_cast<Event::Type>(i);
if (events.CheckAudioEventSet(event_type) || timed_out) {
if (buffer_events[i]) {
buffer_events[i]();
}
}
events.SetAudioEvent(Event::Type(i), false);
events.SetAudioEvent(event_type, false);
}
}
}

View File

@@ -10,22 +10,11 @@
#include <thread>
#include "audio_core/audio_event.h"
#include "core/hle/service/audio/errors.h"
namespace Core {
class System;
}
union Result;
namespace AudioCore {
namespace AudioOut {
class Manager;
}
namespace AudioIn {
class Manager;
}
/**
* The AudioManager's main purpose is to wait for buffer events for the audio in and out managers,
* and call an associated callback to release buffers.
@@ -43,7 +32,7 @@ class AudioManager {
using BufferEventFunc = std::function<void()>;
public:
explicit AudioManager(Core::System& system);
explicit AudioManager();
/**
* Shutdown the audio manager.
@@ -76,14 +65,10 @@ public:
private:
/**
* Main thread, waiting on a manager signal and calling the registered fucntion.
* Main thread, waiting on a manager signal and calling the registered function.
*/
void ThreadFunc();
/// Core system
Core::System& system;
/// Have sessions started palying?
bool sessions_started{};
/// Is the main thread running?
std::atomic<bool> running{};
/// Unused

Some files were not shown because too many files have changed in this diff Show More