Commit graph

395 commits

Author SHA1 Message Date
Reg Tiangha
8b9f234daa externals: Update vma to 3.1.0 2024-06-29 11:28:40 +00:00
Reg Tiangha
2e011e99c3
externals: update openal-soft to HEAD 2024-05-22 09:13:51 -06:00
Reg Tiangha
e08fd85420
externals: update zstd to v1.5.6-HEAD 2024-05-22 09:12:29 -06:00
Reg Tiangha
766c9faac1
externals: update vulkan-headers from vulkan-sdk-1.3.275 to vulkan-sdk-1.3.283 2024-05-22 09:11:39 -06:00
Reg Tiangha
7d8f12fad7
externals: update vma to HEAD 2024-05-22 09:10:01 -06:00
Reg Tiangha
1484d31711
externals: update sdl2 from 2.30.2 to 2.30.3 2024-05-22 09:09:03 -06:00
Reg Tiangha
2e43cf2fbb
externals: update libyuv to HEAD 2024-05-22 09:08:16 -06:00
Reg Tiangha
240d112a61
externals: update glslang from 14.1.0 to 14.2.0 2024-05-22 09:07:05 -06:00
Reg Tiangha
e31faa5e62
externals: update faad2 to HEAD 2024-05-22 09:06:23 -06:00
Reg Tiangha
85dbafe507
externals: update enet to v1.3.18 2024-05-22 09:05:17 -06:00
Reg Tiangha
0f9c02c019
externals: update cubeb to HEAD 2024-05-22 09:03:32 -06:00
Reg Tiangha
d1ccbdf1ee
externals: update catch2 from v3.5.4 to v3.6.0 2024-05-22 09:01:56 -06:00
Reg Tiangha
f758720785
externals: update libyuv to HEAD 2024-04-11 08:45:20 -06:00
Reg Tiangha
56b4070db0
externals: update cubeb to HEAD 2024-04-11 08:41:07 -06:00
Reg Tiangha
f643399d1b
externals: update openal-soft to HEAD 2024-04-11 08:40:19 -06:00
Reg Tiangha
34667b9231
externals: update sdl2 from 2.30.1 to 2.30.2-HEAD 2024-04-11 08:38:55 -06:00
Reg Tiangha
96da5b6667
externals: update catch2 from v3.5.3 to v3.5.4 2024-04-11 08:26:08 -06:00
Reg Tiangha
f9a44c30b6 externals: allow external SPIR-V Optimization 2024-04-07 19:37:27 +01:00
Reg Tiangha
870e32be6f externals: update glslang from 12.2.0 to 14.1.0-HEAD 2024-04-07 19:37:27 +01:00
Reg Tiangha
7455bec491 externals: update vulkan-headers from vulkan-sdk-1.3.275.0 to v1.3.281 2024-04-07 19:37:27 +01:00
Reg Tiangha
1e70329772 externals: update vma to HEAD 2024-04-07 19:37:27 +01:00
OpenSauce
6cf2c37392
The big rebrand commit
- Rebranded executable files to reference Lime instead of Citra
- Rebranded many files in the source tree to reference Lime instead of Citra
- Rebranded many resource files to reference Lime instead of Citra
- Rebranded all instances of Citra's reverse DNS to Lime's reverse DNS
- Other small misc rebrands
2024-03-31 16:50:40 +01:00
Reg Tiangha
0a30d6fdd8
Update various submodules (#26)
* externals: update catch2 from v3.3.2 to v3.5.3

* externals: update zstd from v1.5.5 to v1.5.6

* externals: update xbyak from v6.68 to v7.06

* externals: update soundtouch from 2.3.2 to 2.3.3

* externals: update oaknut from 2.0.2 to HEAD

* externals: update sdl2 from 2.25.5 to 2.30.1

* externals: update cubeb to HEAD

* externals: update openal-soft from 1.23.1 to HEAD

* externals: update nihstro to HEAD

* externals: update lodepng to HEAD

* externals: update libyuv to HEAD

* externals: update faad2 from 2.11.0 to HEAD

* externals: update enet to HEAD

* externals: update cpp-jwt to HEAD

* externals: update inih from r56 to r58

* externals: update libusb from 1.0.27-rc2 to 1.0.27

* externals: update getopt from 1.0-2015.06.19 to 1.1-2022.09.25

* externals: update httplib from v0.11.2 to v0.14.3

* externals: update json from 3.11.2 to 3.11.3

* externals: update fmt from 10.1.1 to 10.2.1

* externals: update dynarmic from 6.6.2 to 6.7.0-HEAD
2024-03-31 01:01:49 -03:00
RyzenDew
12b838cc7f
Revert "Update icons and strings" 2024-03-08 01:55:15 -04:00
Angelo Trotta
6601120c01 Fix default qt_theme
- Fixed error when compiling caused by the Lime image change and renaming.
- Updated compatibility list UI to reflect changes from Citra to Lime
2024-03-07 11:08:01 +01:00
Castor215
749a721aa2
externals: disable system cpp-httplib if it is a shared object (#7446)
Co-authored-by: Castor216 <davidjamescastor215@proton.me>
2024-02-17 06:39:38 -08:00
Steveice10
19784355f9
build: Improve support for Windows cross-compilation. (#7389)
* build: Improve support for Windows cross-compilation.

* build: Move linuxdeploy download to bundle target execution time.
2024-02-05 10:09:50 -08:00
Steveice10
c978c074db
build: Update and re-enable cubeb on macOS. (#7405) 2024-02-01 15:29:14 -08:00
Steveice10
9f5d5c6ddd
externals: Remove broken android-ifaddrs. (#7410) 2024-02-01 06:39:13 -08:00
merry
63feac6bb3
externals: Update dynarmic to 6.6.1, Update oaknut to 2.0.1 (#7398) 2024-01-30 19:50:39 -08:00
Steveice10
82294425e3
build: Add flags to toggle specific renderer backends. (#7375) 2024-01-21 23:29:46 -08:00
Steveice10
2ce0a9e899
renderer_vulkan: Update to support MoltenVK 1.2.7 (#7335) 2024-01-09 11:33:47 -08:00
Daniel López Guimaraes
dccb8f6b17
gamemode: Fix compile issues (#7276)
The Linux build fails to compile because gamemode will try to link
against `common` when it's not needed.
2023-12-22 19:29:44 +05:30
Tobias
c7e9f8449e
Port yuzu-emu/yuzu#11946: "Enable (Feral Interactive) Gamemode on Linux" (#7245) 2023-12-20 06:08:07 -08:00
SuperSamus
98f17f8f04
externals: fix find Crypto++ (#7189)
Co-authored-by: Martino Fontana <tinozzo123@gmail.com>
2023-11-20 04:07:41 -08:00
Castor215
ba702043f0
externals: allow user to use system Catch2 (#7190) 2023-11-18 15:54:27 -08:00
SuperSamus
2a4c60c1dd
externals: fix find OpenAL (#7188) 2023-11-18 15:54:18 -08:00
Castor215
6f05dd9d1d
externals: allow user to use system Vulkan headers (#7155) 2023-11-12 13:02:23 -08:00
Castor215
b74c91457e
externals: allow user to use system VulkanMemoryAllocator (#7149) 2023-11-11 11:52:28 -08:00
Castor215
80ac6c03b5
externals: allow user to use system openal (#7145) 2023-11-10 13:15:02 -08:00
Steveice10
d4f31bc617
video_core: Fix fragment shader interlock usage on OpenGL. (#7144) 2023-11-10 13:14:52 -08:00
Castor215
fcc0fd671a
externals: allow user to use system lodepng (#7138) 2023-11-08 15:39:24 -08:00
Steveice10
4dd6e12e46
externals: Update faad2 and remove SBR configuration workaround. (#7128) 2023-11-07 18:12:03 -08:00
Wunk
e13735b624
video_core: Implement an arm64 shader-jit backend (#7002)
* externals: Add oaksim submodule

Used for emitting ARM64 assembly

* common: Implement aarch64 ABI

Utilize oaknut to implement a stack frame.

* tests: Allow shader-jit tests for x64 and a64

Run the shader-jit tests for both x86_64 and arm64 targets

* video_core: Initialize arm64 shader-jit backend

Passes all current unit tests!

* shader_jit_a64: protect/unprotect memory when jit-ing

Required on MacOS. Memory needs to be fully unprotected and then
re-protected when writing or there will be memory access errors on
MacOS.

* shader_jit_a64: Fix ARM64-Imm overflow

These conditionals were throwing exceptions since the immediate values
were overflowing the available space in the `EOR` instructions. Instead
they are generated from `MOV` and then `EOR`-ed after.

* shader_jit_a64: Fix Geometry shader conditional

* shader_jit_a64: Replace `ADRL` with `MOVP2R`

Fixes some immediate-generation exceptions.

* common/aarch64: Fix CallFarFunction

* shader_jit_a64: Optimize `SantitizedMul`

Co-authored-by: merryhime <merryhime@users.noreply.github.com>

* shader_jit_a64: Fix address register offset behavior

Based on https://github.com/citra-emu/citra/pull/6942
Passes unit tests.

* shader_jit_a64: Fix `RET` address offset

A64 stack is 16-byte aligned rather than 8. So a direct port of the x64
code won't work. Fixes weird branches into invalid memory for any
shaders with subroutines.

* shader_jit_a64: Increase max program size

Tuned for A64 program size.

* shader_jit_a64: Use `UBFX` for extracting loop-state

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit_a64: Optimize `SUB+CMP` to `SUBS`

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit_a64: Optimize `CMP+B` to `CBNZ`

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit_a64: Use `FMOV` for `ONE` vector

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit_a64: Remove x86-specific documentation

* shader_jit_a64: Use `UBFX` to extract exponent

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit_a64: Remove redundant MIN/MAX `SRC2`-NaN check

Special handling only needs to check SRC1 for NaN, not SRC2.
It would work as follows in the four possible cases:

No NaN: No special handling needed.
Only SRC1 is NaN: The special handling is triggered because SRC1 is NaN, and SRC2 is picked.
Only SRC2 is NaN: FMAX automatically picks SRC2 because it always picks the NaN if there is one.
Both SRC1 and SRC2 are NaN: The special handling is triggered because SRC1 is NaN, and SRC2 is picked.

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit/tests:: Add catch-stringifier for vec2f/vec3f

* shader_jit/tests: Add Dest Mask unit test

* shader_jit_a64: Fix Dest-Mask `BSL` operand order

Passes the dest-mask unit tests now.

* shader_jit_a64: Use `MOVI` for DestEnable mask

Accelerate certain cases of masking with MOVI as well

Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>

* shader_jit/tests: Add source-swizzle unit test

This is not expansive. Generating all `4^4` cases seems to make Catch2
crash. So I've added some component-masking(non-reordering) tests based
on the Dest-Mask unit-test and some additional ones to test
broadcasts/splats and component re-ordering.

* shader_jit_a64: Fix swizzle index generation

This was still generating `SHUFPS` indices and not the ones that we wanted for the `TBL` instruction. Passes all unit tests now.

* shader_jit/tests: Add `ShaderSetup` constructor to `ShaderTest`

Rather than using the direct output of `CompileShaderSetup` allow a
`ShaderSetup` object to be passed in directly.  This enabled the ability
emit assembly that is not directly supported by nihstro.

* shader_jit/tests: Add `CALL` unit-test

Tests nested `CALL` instructions to eventually reach an `EX2`
instruction.

EX2 is picked in particular since it is implemented as an even deeper
dispatch and ensures subroutines are properly implemented between `CALL`
instructions and implementation-calls.

* shader_jit_a64: Fix nested `BL` subroutines

`lr` was getting writen over by nested calls to `BL`, causing undefined
behavior with mixtures of `CALL`, `EX2`, and `LG2` instructions.

Each usage of `BL` is now protected with a stach push/pop to preserve
and restore teh `lr` register to allow nested subroutines to work
properly.

* shader_jit/tests: Allocate generated tests on heap

Each of these generated shader-test objects were causing the stack to
overflow.  Allocate each of the generated tests on the heap and use
unique_ptr so they only exist within the life-time of the `REQUIRE`
statement.

* shader_jit_a64: Preserve `lr` register from external function calls

`EMIT` makes an external function call, and should be preserving `lr`

* shader_jit/tests: Add `MAD` unit-test

The Inline Asm version requires an upstream fix:
https://github.com/neobrain/nihstro/issues/68

Instead, the program code is manually configured and added.

* shader_jit/tests: Fix uninitialized instructions

These `union`-type instruction-types were uninitialized, causing tests
to indeterminantly fail at times.

* shader_jit_a64: Remove unneeded `MOV`

Residue from the direct-port of x64 code.

* shader_jit_a64: Use `std::array` for `instr_table`

Add some type-safety and const-correctness around this type as well.

* shader_jit_a64: Avoid c-style offset casting

Add some more const-correctness to this function as well.

* video_core: Add arch preprocessor comments

* common/aarch64: Use X16 as the veneer register

https://developer.arm.com/documentation/102374/0101/Procedure-Call-Standard

* shader_jit/tests: Add uniform reading unit-test

Particularly to ensure that addresses are being properly truncated

* common/aarch64: Use `X0` as `ABI_RETURN`

`X8` is used as the indirect return result value in the case that the
result is bigger than 128-bits. Principally `X0` is the general-case
return register though.

* common/aarch64: Add veneer register note

`LR` is generally overwritten by `BLR` anyways, and would also be a safe
veneer to utilize for far-calls.

* shader_jit_a64: Remove unneeded scratch register from `SanitizedMul`

* shader_jit_a64: Fix CALLU condition

Should be `EQ` not `NE`. Fixes the regression on Kid Icarus.
No known regressions anymore!

---------

Co-authored-by: merryhime <merryhime@users.noreply.github.com>
Co-authored-by: JosJuice <JosJuice@users.noreply.github.com>
2023-11-05 21:40:31 +01:00
Steveice10
27bad3a699
audio_core: Replace AAC decoders with single FAAD2-based decoder. (#7098) 2023-11-04 14:56:13 -07:00
Castor215
89d5d4a2b6
externals: allow user to use system cubeb (#7107) 2023-11-02 17:33:40 -07:00
Castor215
8d811913a5
externals: allow user to use system cryptopp (#7105) 2023-11-01 17:57:10 -07:00
Castor215
d3ce43782d
externals: allow users to use system libenet (#7100) 2023-10-31 14:01:50 -07:00
Castor215
4ac10c4a9d
externals: allow users to use system Zstandard (#7083) 2023-10-21 16:10:02 -07:00
Castor215
2416258117
externals: add overarching USE_SYSTEM_LIBS variable (#7078) 2023-10-20 17:02:20 -07:00