Commit Graph

433 Commits (56be24d50ad6c94375a395f2ac53c88e5221e8aa)

Author SHA1 Message Date
Alexandre Bouvier c8b358dba2 cmake: make tests optional 3 years ago
liushuyu b590e5572d
externals/dynarmic: update to latest revision ...
... to resolve compilation errors with fmt 8.1
3 years ago
bunnei 6af82fd070
Merge pull request #7610 from Tatsh/more-system-libs
Add support for linking against system Opus
3 years ago
Morph af89f7683d externals: Update dynarmic to 28714ee7
Reduces compilation times on MSVC.
3 years ago
bunnei 36df305b13
Merge pull request #7599 from FernandoS27/primrestart-vulkan
Vulkan: Fix Primitive Restart and implement Logical Operations
3 years ago
Andrew Udvare 78759d98dc
Add support for linking against system opus 3 years ago
bunnei 2030522d86
Merge pull request #7587 from liushuyu/fix-linux-decoding
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
3 years ago
Fernando Sahmkow 6430fc29a9 Vulkan: Implement VK_EXT_primitive_topology_list_restart 3 years ago
Andrew Udvare 9b3611eb8d
externals/SDL: update SDL to version with Wayland build fix 3 years ago
Andrew Udvare e610485cd2
externals/CMakeLists: fix detection/init of Switch controllers in SDL 2.0.18
Enable SDL_THREADS and SDL_ATOMIC
Also set SDL_WAYLAND=OFF due to build issue

Closes #7572
3 years ago
liushuyu 476637d143
externals/ffmpeg: set the cmake variable twice ...
... to avoid leaving variable undefined in the current scope
3 years ago
liushuyu 3ae9258efe externals: fix a regression when using MSVC 3 years ago
liushuyu 3f765ea9a4 video_core/codecs: (re-spin) refactor ffmpeg searching and handling 3 years ago
bunnei 2f32133ad5
Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake" 3 years ago
liushuyu dd72e4dce4
CI: fix CI on Linux 3 years ago
liushuyu f91b6fbbcb ffmpeg: move the whole tree into externals/ffmpeg/ffmpeg ...
* this resolves the todo items in the CMakeLists.txt
* a version requirement check for ffmpeg is added to catch issues early
* for future-proof reasons, nasm/yasm is now only required when build on
  x86/AMD64 systems
3 years ago
Mai M 4e2fb9e51a
Merge pull request #7554 from Tachi107/build-remove-unicorn
build: remove remaining bits of Unicorn
3 years ago
bunnei a2f842ce54
Merge pull request #7527 from Tachi107/cubeb-result_of
build: update cubeb and remove the result_of comment
3 years ago
Andrea Pappacoda eec9aace60
build: remove remaining bits of Unicorn
Unicorn has been removed in fc6db97a09
3 years ago
Narr the Reg 133504b74b input_common: Update SDL to 2.0.18 3 years ago
Andrea Pappacoda f4587c596f
build: update cubeb and remove the result_of comment
Cubeb doesn't use result_of anymore, it has been dropped in commit
mozilla/cubeb@75d9d125ee
3 years ago
Marshall Mohror bb03675485 Vulkan: Reimplement FSR constant generation functions to avoid GCC warnings 3 years ago
Marshall Mohror dcc5b4f6b0 Presentation: Only use FP16 in scaling shaders on supported devices in Vulkan 3 years ago
ameerj 77b0812d69 externals: Add only included ffx-fsr headers
The submodule adds a lot of unneeded bloat due its addition of samples that contain large media files that are difficult to compress.
3 years ago
Morph 74a6222b3e externals: Update dynarmic to cce7e4ee 3 years ago
Morph 5f6cd32c9e externals: Remove libzip 3 years ago
Merry af6290ed12 dynarmic: Update and enable DYNARMIC_IGNORE_ASSERTS 4 years ago
Merry 1770503185 xbyak: Update include path 4 years ago
german77 fe2e710003 externals: Update sdl2 to 2.0.16 4 years ago
Ameer J a086ee6a00
Merge pull request #6565 from lat9nq/bundle-ffmpeg
cmake, ci: Build bundled FFmpeg with yuzu
4 years ago
ReinUsesLisp c67d64365a shader: Remove old shader management 4 years ago
ReinUsesLisp b5d7279d87 spirv: Initial bindings support 4 years ago
ReinUsesLisp 1b0cf2309c shader: Add support for forward declarations 4 years ago
ReinUsesLisp 9170200a11 shader: Initial implementation of an AST 4 years ago
ReinUsesLisp 2930dccecc spirv: Initial SPIR-V support 4 years ago
lat9nq d3748cad73 emu_window_sdl2_vk: Use the generated SDL config
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.

This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
4 years ago
lat9nq ef70054367 cmake: Specify the compiler on autotools externals
Enables CCache on externals if available.
4 years ago
Ameer J bab400daaf
Merge pull request #6459 from lat9nq/ubuntu-fixes
cmake: Improve Linux dependency checking for externals
4 years ago
MerryMage f54f29198f libusb: Apple is a POSIX system 4 years ago
Lioncash c3fe071723 externals: Update dynarmic to allow fmt compilation to succeed 4 years ago
bunnei 0485b8e84b
Merge pull request #6499 from FernandoS27/we-were-on-a-break
Update dynarmic and add new unsafe CPU option.
4 years ago
Fernando Sahmkow 2298508465 Update dynarmic and add new unsafe CPU option. 4 years ago
Vortex e704da9192 externals: httplib: replace custom httplib header with upstream as submodule.
This also includes a minor change to web_service.cpp - to fix compatibility with upstream changes.
4 years ago
Vortex 8a83e3412a update submodule discord-rpc to latest [now deprecated] 4 years ago
bunnei abb0124b84
Merge pull request #6418 from clementgallet/sdl-audio-backend
Audio: SDL2 audio backend
4 years ago
lat9nq 932c0184a7 cmake: Fix find_program usage for 3.15
yuzu requires CMake 3.15 yet find_program was using REQUIRED, which is
only available on 3.18 and later. Instead, we check for
"<VAR>-NOTFOUND".

In addition, check for additional requirements before building libusb or
FFmpeg with autotools. Otherwise, CMake configuration will pass yet
compilation will fail.
4 years ago
lat9nq 2817ef1a53 externals: Don't set FOUND or VERSION on LIBUSB
Fixes an issue where libusb.h wouldn't be found when building yuzu on
MSVC.

This only affects the "traditional" CMake pathway for linking libusb to
yuzu AKA MSVC. For autotools we still want to set these variables before
configuring SDL.
4 years ago
Markus Wick 621f3f5f47 core: Make use of fastmem 4 years ago
lat9nq f738c6b231 externals: Update SDL to 2f248a2a 4 years ago
bunnei c1b8e59ea0
Merge pull request #6407 from lat9nq/fix-libusb-2
cmake: Use autotools for libusb linking generally on GNU, and cleanup
4 years ago
Clément Gallet c7c99905f4 Add SDL2 audio backend 4 years ago
ReinUsesLisp 71a3c60d95 externals: Update dynarmic 4 years ago
lat9nq 7395cd3124 externals: libusb: Call program names not full paths 4 years ago
lat9nq 890acfa2c0 externals: libusb: Link libusb statically on Linux
Turns out that this is possible. Also addresses my own review comment.
4 years ago
lat9nq ddc47e6df8 cmake: General improvements to libusb linking
Delegates libusb external communication to externals/CMakeLists.txt
Ensures an interface library `usb` for every pathway
input_common just links to the `usb` library now
externals/libusb/CMakeLists.txt sets variables to override SDL2's libusb
finding
Other minor cleanup
4 years ago
lat9nq 55dd027115 cmake: Use autotools to build libusb generally for GNU
Building libusb was also broken on GCC (and maybe Clang) on our
CMakeLists after upgrading to 1.0.24, but it was not being checked
because our 18.04 container had libusb installed on it.
This builds on the MinGW work from earlier and extends it to the rest of
the GNU toolchains. In addition we make use of pkg-config when present
to find libusb. pkg-config is preferrable because we can specify a
minimum required version.
4 years ago
lat9nq 185e405bc1 externals: Use defaults for building SDL2 on WIN32
Whatever those settings do breaks controller detection on Windows, at
least with the MinGW container. If-guard it against WIN32 and just let
SDL2 configure using its defaults, aside from static linking.
4 years ago
lat9nq 1914a1d21c externals: libusb: Use autotools for MinGW
After updating to 1.0.24, MinGW fails to build libusb as a result of
numerous errors. So we build libusb their way and let them update the
nontrivial stuff.

This only applies to MinGW: the old path is still in use for Linux
toolchains as well as MSVC.

This will dynamically link libusb, since I hit build errors with the old
way we used to resolve the conflict with SDL2.
4 years ago
bunnei 95f45112e9
Merge pull request #6344 from german77/update-libusb
Update libusb to 1.0.24
4 years ago
Markus Wick d2d7a5060f externals: Update dynarmic.
The new version supports fastmem on a64.
4 years ago
german77 3a6e2922a2 Update libusb to 1.0.24 4 years ago
Morph 9edfd88a8a
Merge pull request #6293 from v1993/master
On Linux, build SDL2 from externals with HIDAPI support
4 years ago
Ameer J 904584e4ba
Merge pull request #6300 from Morph1984/mbedtls
externals: Update mbedtls to 8c88150ca
4 years ago
lat9nq 0ecb6c6647 externals: Checkout 79e8d17024 for FFmpeg
6b6b9e593d does not exist on FFmpeg master, and tag n4.3.1 requires
manually fetching all of FFmpeg's tags. `git` reports that the commit
does not exist initially and can be confusing as a result. Instead,
checkout the immediately previous commit from n4.3.1 on their master
branch.
4 years ago
Morph 02547439b1 externals: Update mbedtls to 8c88150ca 4 years ago
v1993 fa647cc0b9
Only build SDL2 subsystems that we use
While at it, use better way to enable HIDAPI.
4 years ago
v1993 648bef235e
On Linux, build SDL2 from externals with HIDAPI support 4 years ago
lat9nq b021e09fc0 externals: Use SDL2 statically
Building it as a shared library causes issues distributing it to an
AppImage, since linuxdeploy expects the executable to only dynamically
link to system libraries. Additionally, simply dynamically linking to a
library in the binary directory is bound to cause issues.

Solution is to use SDL's CMake switches and build it statically. We also
alias `SDL2` to `SDL2-static` on the external submodule for
compatibility with the rest of the project.
4 years ago
lat9nq 751cc687bb externals: Update SDL to 107db2d8
In light of 72a49c2bbc, the SDL submodule also needs updated. Updates
to the same commit used by the SDL package in ext-windows-bin.
4 years ago
lat9nq de69a5266f cmake: Use SDL 2.0.14 and fix CMake scope issue
Forces using SDL 2.0.14. Upgrades the SDL external to that version. Adds
a message when switching to the external.

Fixes an error where input_common only links to SDL when SDL2_FOUND is
set, but externals/CMakeLists cannot set that variable to the required
scope. Switch to using ENABLE_SDL2, which we can use since we now
include the SDL source.
4 years ago
lat9nq 12e58917c0 externals: Add SDL 2.0.12
Since Bintray is (soon to be) no more, there needs to be a way to
acquire SDL2. Since 20.04's version is older than our minimum required
version (2.0.12), add it as an external.
4 years ago
MerryMage a208c7b059 externals: Update dynarmic to b2a4da5e 4 years ago
Markus Wick 5096ed5e0a externals: Search for shared opus installation.
We had used conan for opus before, but there was a bug in the AVX detection.
However we still had the Findopus.cmake file within the repository, but not used.

This patch reenables the Findopus helper and prefer the system wide installation of opus.
4 years ago
MerryMage 0fbd7752c3 arm_dynarmic: Increase size of code cache 4 years ago
bunnei 94d77d0e39
Merge pull request #6129 from degasus/cmake_libzip
externals/cmake: Fix case spelling of libzip.
4 years ago
Markus Wick d3e87d70ec externals: Fix case spelling of libzip.
CMake is case senstive, so Libzip vs LIBZIP was a bug.
Upstream calls themself libzip, so let's pick this naming.
4 years ago
bunnei 7ff7e65926 externals: dynarmic: Update to latest rev. to increase code size.
- The current limits are being hit in yuzu with some games.
- This should fix the slowdowns in newer updates for Super Smash Bros. Ultimate.
4 years ago
MerryMage a527e5f0cd externals: Update dynarmic to c28f13af
AVX-512 bugfixes
4 years ago
Morph df9899eed6 externals/libusb/CMakeLists: Add /utf-8 compile option for MSVC 4 years ago
Lioncash de21c9e330 external: Update dynarmic 4 years ago
Morph 6faabd6d69 externals: Update mbedtls to 2.16.9
mbedtls 2.16 is the last version which has licensing for GPL 2.0. This updates mbedtls to our own fork of mbedtls 2.16
4 years ago
Kelebek1 d31dbb1bc1 Implement glDepthRangeIndexeddNV 4 years ago
lat9nq 0c24ae300c externals: Update dynarmic to latest
Updates dynarmic to its latest commit. Includes a fix for argument
limits while compiling with Clang 12.
4 years ago
lat9nq 1a2e7c4dbd ffmpeg: Checkout tag n4.3.1
Target a specific release version rather than some random development
commit.
4 years ago
lat9nq 527188391c CMakeLists: Use bundled FFmpeg as a fallback
Sets YUZU_USE_BUNDLED_FFMPEG as a CMake dependent option that is OFF on
Linux and ON for WIN32 targets. If FFmpeg is not found when
YUZU_USE_BUNDLED_FFMPEG is OFF, the bundled module/binaries are used
instead.

Reverts earlier changes to FindFFmpeg a bit, mostly to keep parity with
it's Citra version a bit. Now _FFmpeg_ALL_COMPONENTS lists all
components. We overwrite FFmpeg_LIBRARIES and FFmpeg_INCLUDE_DIR after
using the module.
4 years ago
lat9nq 1d19eac415 CMake: Port citra-emu/citra FindFFmpeg.cmake
Also renames related CMake variables to match both the Find*FFmpeg* and
variables defined within the file. Fixes odd errors produced by the old
FindFFmpeg.

Citra's FindFFmpeg is slightly modified here: adds Citra's copyright at
the beginning, renames FFmpeg_INCLUDES to FFmpeg_INCLUDE_DIR, disables a
few components in _FFmpeg_ALL_COMPONENTS, and adds the missing avutil
component to the comment above.
4 years ago
lat9nq 82dd376ba2 externals: Add submodule ffmpeg 4 years ago
bunnei 15d3376399 externals: Dynarmic: Update to latest to include A32 ISB hook.
- Fixes perf. issues with Megadimension Neptunia VII.
4 years ago
MerryMage 2350b76a91 externals: Update dynarmic to 0f27368f 4 years ago
MerryMage 8a5356357f externals: Update dynarmic to 3806284cb 4 years ago
MerryMage 57c9da1b39 dynarmic: Add Unsafe_InaccurateNaN optimization 4 years ago
ReinUsesLisp 3f048c8646 externals: Update Dynarmic
Keeps yuzu up to date with the latest changes and introduces a change
needed for a lock-free optimization our side.
4 years ago
ReinUsesLisp 1b9e08ab78 cmake: Always enable Vulkan
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
4 years ago
Vitor Kiguchi a1e7360273 Update cubeb and request a persistent stream session 4 years ago
Lioncash fc6db97a09 core: Remove usage of unicorn
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.

This also allows us to remove our dependency on Python.
4 years ago
Lioncash ee21b5378b microprofile: Silence warning in headers
Silences a truncation warning by making the truncation explicit and
documenting the reason for it.
4 years ago
Lioncash 4a4b685a04 common: Enable warnings as errors
Cleans up common so that we can enable warnings as errors.
4 years ago
liushuyu cf63eacc1a
web_service: follow-up fix to #4842 ...
* The web_service http request is now fixed on Windows (R) platform.
* The issue is due to a complicated race-condition in `httplib`, a detailed
  explanation is available at https://github.com/yhirose/cpp-httplib/pull/701
* A pending Pull Request on `httplib` has been applied to remedy the
  said race-condition.
* The socket availability check is removed due to a behavioral chice of
  `httplib` that a socket will not be created before any actual request
  is sent.
4 years ago
bunnei 663e221f99
Merge pull request #4845 from lioncash/inih
externals: Track upstream inih
4 years ago
Lioncash 9a44c1ea27 externals: Update inih to r52 4 years ago