Commit graph

411 commits

Author SHA1 Message Date
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.
2021-04-08 23:49:32 +02:00
MerryMage 0fbd7752c3 arm_dynarmic: Increase size of code cache 2021-04-02 18:09:15 +01:00
bunnei 94d77d0e39
Merge pull request #6129 from degasus/cmake_libzip
externals/cmake: Fix case spelling of libzip.
2021-04-01 23:06:36 -07:00
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.
2021-04-02 00:30:13 +02:00
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.
2021-04-01 13:23:12 -07:00
MerryMage a527e5f0cd externals: Update dynarmic to c28f13af
AVX-512 bugfixes
2021-03-27 21:34:20 +00:00
Morph df9899eed6 externals/libusb/CMakeLists: Add /utf-8 compile option for MSVC 2021-03-15 10:51:46 -04:00
Lioncash de21c9e330 external: Update dynarmic 2021-03-08 00:44:54 -05:00
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
2021-03-05 02:05:05 -05:00
Kelebek1 d31dbb1bc1 Implement glDepthRangeIndexeddNV 2021-02-24 22:26:53 +00:00
lat9nq 0c24ae300c externals: Update dynarmic to latest
Updates dynarmic to its latest commit. Includes a fix for argument
limits while compiling with Clang 12.
2021-02-18 14:44:49 -05:00
lat9nq 1a2e7c4dbd ffmpeg: Checkout tag n4.3.1
Target a specific release version rather than some random development
commit.
2021-02-06 03:19:07 -05:00
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.
2021-02-06 03:17:36 -05:00
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.
2021-02-05 15:39:19 -05:00
lat9nq 82dd376ba2 externals: Add submodule ffmpeg 2021-02-05 13:41:45 -05:00
bunnei 15d3376399 externals: Dynarmic: Update to latest to include A32 ISB hook.
- Fixes perf. issues with Megadimension Neptunia VII.
2021-01-29 16:36:45 -08:00
MerryMage 2350b76a91 externals: Update dynarmic to 0f27368f 2021-01-26 23:46:49 +00:00
MerryMage 8a5356357f externals: Update dynarmic to 3806284cb 2021-01-02 20:42:11 +00:00
MerryMage 57c9da1b39 dynarmic: Add Unsafe_InaccurateNaN optimization 2021-01-02 20:13:21 +00:00
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.
2020-12-29 19:30:52 -03:00
ReinUsesLisp 1b9e08ab78 cmake: Always enable Vulkan
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
2020-12-24 21:07:24 -03:00
Vitor Kiguchi a1e7360273 Update cubeb and request a persistent stream session 2020-12-05 22:26:41 +01:00
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.
2020-11-03 20:22:05 -05:00
Lioncash ee21b5378b microprofile: Silence warning in headers
Silences a truncation warning by making the truncation explicit and
documenting the reason for it.
2020-11-03 15:07:13 -05:00
Lioncash 4a4b685a04 common: Enable warnings as errors
Cleans up common so that we can enable warnings as errors.
2020-11-02 15:50:58 -05:00
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.
2020-10-28 23:16:06 -06:00
bunnei 663e221f99
Merge pull request #4845 from lioncash/inih
externals: Track upstream inih
2020-10-28 09:58:58 -07:00
Lioncash 9a44c1ea27 externals: Update inih to r52 2020-10-27 19:52:48 -04:00
liushuyu eb84e0f63a
externals: auto detect system OpenSSL 2020-10-27 14:20:20 -06:00
liushuyu 8e673cbb08
web_backend: fix a regression introduced in 39c8d18
* A regression was in 39c8d18 and token verification function was
  broken.
* The reason being `httplib` now requires OpenSSL 1.1+ API while
  LibreSSL 2.x provided OpenSSL 1.0 compatible API.
* The bundled LibreSSL has been updated to 3.2.2 so it now provides
  OpenSSL 1.1 compatible API now.
* Also the path hint has been added so that it will find the correct
  path to the CA certs on *nix systems.
* An option is provided so that *nix system distributions/providers can
  use their own SSL implementations when compiling Yuzu/Citra to
  (hopefully) complies with their maintenance guidelines.
* LURLParse is also removed since `httplib` can handle
  `scheme:host:port` string itself now.
2020-10-27 02:57:19 -06:00
ameerj eb67a45ca8 video_core: NVDEC Implementation
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.

The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.

To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.

Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.

Async GPU is not properly implemented at the moment.

Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-26 23:07:36 -04:00
bunnei 3d592972dc
Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
Lioncash be1954e04c core: Fix clang build
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.

Fixes #4795
2020-10-17 19:50:39 -04:00
Lioncash 39c8d18feb core/CMakeLists: Make some warnings errors
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.

This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
2020-10-13 13:16:49 -04:00
bunnei 94a25b75a0
Merge pull request #4611 from lioncash/xbyak2
externals: Update Xbyak to 5.96
2020-09-03 20:24:27 -04:00
Lioncash 91cbe52122 externals: Work around libusb duplicate GUID errors
Given we have two libraries that seem to use the same identifier, we can
alter one of them so that the variable is used in place, effectively
changing the used identifier, but without altering the source of
libusb.
2020-09-02 19:32:19 -04:00
bunnei e11a77d2c6
Merge pull request #4584 from lioncash/libusb
externals: Track upstream libusb directly
2020-09-01 23:47:52 -04:00
bunnei 2579a7199b
Merge pull request #4587 from yuzu-emu/tsan-microprofiler
externals/microprofile: Fix data race in g_bUseLock
2020-08-31 21:20:08 -04:00
Lioncash a5dcccfdd2 externals: Update Xbyak to 5.96
I made a request on the Xbyak issue tracker to allow some constructors
to be constexpr in order to avoid static constructors from needing to
execute for some of our register constants.

This request was implemented, so this updates Xbyak so that we can make
use of it.
2020-08-30 05:09:48 -04:00
Lioncash 045255a0a0 externals: Track upstream libusb
We can place the external in an inner folder and manage the custom files
necessary to integrate it with CMake directly. This allows us to
directly change how we use it with our build system, as opposed to
needing to change a fork.
2020-08-26 02:45:11 -04:00
ReinUsesLisp 3dcaaa18be externals/microprofile: Fix data race in g_bUseLock
As reported by tsan, g_bUseLock had a data race. Fix this using an
atomic boolean.
2020-08-26 02:47:54 +00:00
Lioncash 58ee9b4197 externals: Untrack non-upstream variant of libusb
We shouldn't be tracking personal forks of repositories when upstream
can be managed directly.
2020-08-25 22:19:15 -04:00
Lioncash c024e5c69a externals: Update Xbyak to 5.95
5.95 contains a potentially backward-compatibility breaking change, so
we should be updating to this to ensure that our code remains
forward-compatible.
2020-08-25 18:16:52 -04:00
bunnei 4efaecf125
Merge pull request #4572 from lioncash/xbyak
externals: Update xbyak to v5.941
2020-08-25 11:24:32 -04:00
Lioncash 3121acdf4e externals: Update xbyak to v5.941
Keeps the tracked submodule up to date with the latest release.
2020-08-23 22:47:41 -04:00
Lioncash ec8d72a567 microprofile: Don't memset through std::atomic types
Two of the members of the MicroProfileThreadLog contains two std::atomic
instances. Given these aren't trivially-copyable types, we shouldn't be
memsetting the structure, given implementation details can contain other
members within it.

To avoid potential undefined behavior on platforms, we can use aggregate
initialization to zero out the members while still having well-defined
behavior.

While we're at it we can also silence some sign conversion warnings.
2020-08-23 21:19:01 -04:00
MerryMage 836ec9176a dynarmic: Add unsafe optimizations 2020-08-16 14:15:39 +01:00
MerryMage 0193202964 configuration: Add settings to enable/disable specific CPU optimizations 2020-07-11 14:34:09 +01:00
bunnei 5311b562aa
Merge pull request #4266 from jbeich/freebsd
gcadapter: unbreak build on FreeBSD
2020-07-08 16:30:26 -04:00
bunnei 35f7740b6c
Merge pull request #4150 from ReinUsesLisp/dynamic-state-impl
vulkan: Use VK_EXT_extended_dynamic_state when available
2020-07-07 10:58:09 -04:00
Jan Beich 2af7e40ce6 cmake: unbreak system libusb support
Reference libusb doesn't support DragonFly and FreeBSD because those
ship a different libusb implementation (supports 0.1, 1.0, 2.0 API).

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(usbi_connect_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(usbi_disconnect_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_write
>>> referenced by core.c
>>>               core.c.o:(usbi_signal_event) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_read
>>> referenced by core.c
>>>               core.c.o:(usbi_clear_event) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_open) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_backend
>>> referenced by core.c
>>>               core.c.o:(libusb_open) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_read
>>> referenced by core.c
>>>               core.c.o:(libusb_close) in archive externals/libusb/libusb.a

ld: error: undefined symbol: usbi_write
>>> referenced by core.c
>>>               core.c.o:(libusb_close) in archive externals/libusb/libusb.a

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
c++: error: linker command failed with exit code 1 (use -v to see invocation)
2020-07-07 10:13:18 +00:00
Ameer f829932ed1 Fix merge conflicts? 2020-07-04 00:59:40 -04:00
David Marcec d5dfe34c49 externals: Track opus as submodule instead of using conan
Supersedes #4068 see for details.
2020-07-01 15:09:33 +10:00
Fernando Sahmkow 4105f38022 SVC: Implement 32-bits wrappers and update Dynarmic. 2020-06-27 11:36:27 -04:00
Fernando Sahmkow b8df61c642 ARM: Update Dynarmic and Setup A32 according to latest interface. 2020-06-27 11:36:26 -04:00
Fernando Sahmkow 39ddce1ab5 Externals: Update Dynarmic. 2020-06-27 11:36:19 -04:00
Fernando Sahmkow 3714f2e471 ARMInterface/Externals: Update dynarmic and fit to latest version. 2020-06-27 11:36:13 -04:00
ReinUsesLisp 7527402a46 vk_device: Enable VK_EXT_extended_dynamic_state when available 2020-06-26 20:55:15 -03:00
Ameer 8ccc8cb252 update libusb dependency 2020-06-22 17:05:57 -04:00
ameerj f5d2a1e8bd Update src/input_common/main.cpp
Co-authored-by: LC <mathew1800@gmail.com>

update libusb submodule (hopefully windows build error fixed)
2020-06-22 17:05:50 -04:00
Ameer 18a42d3815 Add libusb dependency 2020-06-21 12:39:15 -04:00
bunnei 2a3d4cad63
externals: Revert to libressl, as build is broken with find_package(OpenSSL). (#4093)
* externals: Revert to libressl, as build is broken with find_package(OpenSLL).

* fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL).

* fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL).
2020-06-16 21:46:19 -04:00
MerryMage 256cb2979b CMakeLists: xbyak comes before dynarmic 2020-06-15 22:37:27 +01:00
ReinUsesLisp 866c1165af vk_shader_decompiler: Implement atomic image operations
Implement atomic operations on images.
On GLSL these are atomicImage* functions (e.g. atomicImageAdd).
2020-06-02 02:20:02 -03:00
David Marcec d0bdd26c26 Add xbyak external 2020-05-30 10:55:27 +10:00
ReinUsesLisp 5d0986a53b shader/other: Implement BAR.SYNC 0x0
Trivially implement this particular case of BAR. Unless games use OpenCL
or CUDA barriers, we shouldn't hit any other case here.
2020-05-21 23:20:43 -03:00
Markus Wick 290bc20e79 Add version check to Findnlohmann_json.cmake 2020-05-09 12:47:59 +02:00
Markus Wick c96a8867f0 Add version check for catch2 2020-05-09 12:47:59 +02:00
Markus Wick 0e2a7ca91b Add version check to Findfmt 2020-05-09 12:47:59 +02:00
Markus Wick ef1f596595 Fix libzip version check 2020-05-09 12:47:59 +02:00
Markus Wick c5c60e04dd Check for the zstd version 2020-05-09 12:43:42 +02:00
James Rowe bc30a591ba
Replace externals with Conan (#3735)
* Remove git submodules that will be loaded through conan

* Move custom Find modules to their own folder

* Use conan for downloading missing external dependencies

* CI: Change the yuzu source folder user to the user that the containers run on

* Attempt to remove dirty mingw build hack

* Install conan on the msvc build

* Only set release build type when using not using multi config generator

* Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries

* Add workaround for submodules that use legacy CMAKE variables

* Re-add USE_BUNDLED_QT on the msvc build bot
2020-05-08 17:09:29 -04:00
ReinUsesLisp 0d735a905d externals: Update Vulkan-Headers 2020-05-04 16:40:38 -03:00
bunnei 3a13552db8
Merge pull request #3827 from ogniK5377/cubeb-616d773
externals: Update cubeb to 616d773
2020-04-30 22:02:30 -04:00
bunnei c7b5a87c90
Merge pull request #3799 from ReinUsesLisp/iadd-cc
shader: Implement P2R CC, IADD Rd.CC and IADD.X
2020-04-30 12:56:36 -04:00
David Marcec 38ec6e14d9 externals: Update cubeb to 616d773
Support for 6 audio channels
2020-04-30 00:33:02 +10:00
MerryMage b7a69501cd externals: Update dynarmic to e7166e8b 2020-04-29 14:25:53 +01:00
ReinUsesLisp 255197e643 shader/arithmetic_integer: Implement CC for IADD 2020-04-25 22:55:26 -03:00
bunnei 2409fedacf
Merge pull request #3697 from lioncash/declarations
CMakeLists: Enable -Wmissing-declarations on Linux builds
2020-04-23 02:18:52 -04:00
H27CK 52e66779e7 Set _FORTIFY_SOURCE=0 if building Opus with mingw-w64 2020-04-22 08:20:12 +02:00
MerryMage a3a12deecc dynarmic: Add option to disable CPU JIT optimizations 2020-04-20 13:36:26 +01:00
Lioncash cdc5449df0 externals: Update fmt to 6.2.0
Keeps the library up to date.
2020-04-17 17:19:13 -04:00
bunnei b160804db0 externals: Update to latest dynarmic.
- Adds memory alignment fixes.
2020-04-17 00:59:28 -04:00
Lioncash e2d8be1ca2 General: Resolve warnings related to missing declarations 2020-04-16 23:43:34 -04:00
Markus Wick b520978043 externals: Use shared libraries if possible
This is mostly done by pkgconfig.
I've focused on the larger and more stable libraries.
2020-04-16 17:03:17 +02:00
Markus Wick fedf750e1b externals: Move LibreSSL linking to httplib.
Neither core nor web_services use OpenSSL nor LibreSSL.
However they need to link them as it's a requirement of httplib.
So let's declare this within httplib instead of core and web_services.
2020-04-16 16:46:33 +02:00
ReinUsesLisp 2905142f47 renderer_vulkan: Drop Vulkan-Hpp 2020-04-10 22:49:02 -03:00
ReinUsesLisp ba9674862d microprofile: Silence sign comparison warning 2020-03-18 20:03:19 -03:00
Fernando Sahmkow 448856695a Microprofile: Allow accessing token. 2020-03-12 10:50:48 -04:00
Brian Clinkenbeard d31156931d
fix issue with windows getnameinfo() 2020-02-19 16:16:49 -08:00
Brian Clinkenbeard 7f6c686d55 update httplib to latest commit 2020-02-18 17:11:40 -08:00
Brian Clinkenbeard 9e42025e5b update httplib README 2020-02-17 22:54:09 -08:00
Brian Clinkenbeard 76b55c3624 0.4.2 works too 2020-02-17 22:53:25 -08:00
Brian Clinkenbeard 293d4d553a update httplib to 0.2.6 2020-02-17 20:13:24 -08:00
Brian Clinkenbeard 68043dd233 use config mode for finding SDL2 with CMake 2020-02-10 19:56:33 -08:00
ReinUsesLisp b2c976ad0e vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
Also updates sirit to include atomic instructions.
2020-01-19 16:40:31 -03:00
Markus Wick 0986caa8d8 core/memory + arm/dynarmic: Use a global offset within our arm page table.
This saves us two x64 instructions per load/store instruction.

TODO: Clean up our memory code. We can use this optimization here as well.
2020-01-01 12:24:54 +01:00
ReinUsesLisp abb33d4aec
vk_shader_decompiler: Update sirit and implement Texture AOFFI 2019-12-19 01:42:13 -03:00
bunnei 285705b5f4 externals: Update boost-ext to include safe_numerics.
- This is useful to me for an upcoming change.
2019-12-14 03:04:42 -05:00
ReinUsesLisp 425a254fa2
shader: Implement MEMBAR.GL
Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V.
2019-12-10 16:45:03 -03:00
ReinUsesLisp ecbfa416f0
vk_shader_decompiler: Misc changes
Update Sirit and its usage in vk_shader_decompiler. Highlights:
- Implement tessellation shaders
- Implement geometry shaders
- Implement some missing features
- Use native half float instructions when available.
2019-12-09 23:51:57 -03:00
ReinUsesLisp 7ea362e134
externals: Update Vulkan-Headers 2019-12-08 22:08:19 -03:00
bunnei 3e0e4f146b
Merge pull request #3091 from lioncash/core-conversion
core: Make most implicit type conversion warnings errors on MSVC
2019-11-15 12:08:50 -05:00
Lioncash 47a6bb2d5b externals: Update httplib
Since the introduction of this library, numerous improvements have been
made. Notably, many of the warnings we would get by simply including the
library header have now been fixed. This makes it much easier to make
conversion warning an error.
2019-11-12 08:31:27 -05:00
ReinUsesLisp fa0d65fc7b microprofile: Silence conversion warnings 2019-11-08 22:48:42 +00:00
Lioncash 1643af431c externals: Track upstream libzip
Stops relying on a fork for providing zip handling and instead tracks
the upstream branch but keeps any necessary build-related changes in the
source tree directly without modifying the libzip target itself.
2019-10-29 19:52:40 -04:00
Lioncash c2486f77e4 externals: Amend zlib submodule
Supplies CMakeLists.txt file that avoids pulling in zlib's tests into
the tree. This avoids needing to explicitly opt these tests out from
ctest.
2019-10-29 16:58:23 -04:00
Lioncash 611236c883 externals: Track upstream opus
Tracks upstream opus, allowing the library to be easily updated. While
we're at it, we incorporate the CMakeLists.txt so that we have easy
control over the requirements of the build.
2019-10-23 20:58:54 -04:00
Zach Hilman d6d6a87bde externals: Move OSS font data to file_sys in core 2019-10-13 13:46:10 -04:00
Lioncash e29492d114 CMakeLists: Make libzip excluded from the ALL target
Likewise, we also only want to link in the libraries that we actually
make use of (so we don't need to worry about linking in test targets).
2019-10-04 05:02:01 -04:00
Lioncash 80bdb44ead externals: Use upstream zlib
We don't need to depend on a custom fork for this. We can add the
library as is, and then make it excluded from the ALL target, so we only
link in the libraries that we actually make use of.
2019-10-04 05:01:57 -04:00
Zach Hilman bcf1eafb8b boxcat: Implement events global field 2019-09-30 17:28:23 -04:00
Zach Hilman 84b6059012 externals: Add zlib and libzip libraries to handle ZIP file parsing 2019-09-30 17:18:38 -04:00
Ethan 3e5790de79 externals: Update fmt to master 2019-09-26 00:34:37 +02:00
David Marcec d961d5479e Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"
This reverts commit fa1c60c33e, reversing
changes made to e34899067b.
2019-09-22 17:47:25 +10:00
David fa1c60c33e
Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1
system_archive: Move shared font data to system_archive and fix extended font data
2019-09-22 16:09:22 +10:00
Zach Hilman 361a8fa318 externals: Move OSS font data to file_sys in core 2019-09-21 19:21:22 -04:00
Ethan 8b76444916 externals: Update dynarmic to master 2019-09-21 16:54:06 +02:00
ReinUsesLisp 78d078e183 externals: Update Vulkan headers 2019-09-13 01:54:00 -03:00
Ethan 46a962eb5d externals: update fmt to 6.0.0 2019-08-29 21:32:58 +02:00
James Rowe f0c75573b1 Revert "externals: Update FMT to 6.0.0"
This reverts commit ca4ca8a6dc.
2019-08-29 12:23:34 -06:00
Ethan ca4ca8a6dc externals: Update FMT to 6.0.0 2019-08-29 19:37:46 +02:00
ReinUsesLisp a4c5e3e339 vk_shader_decompiler: Misc fixes
Fix missing OpSelectionMerge instruction. This caused devices loses on
most hardware, Intel didn't care.

Fix [-1;1] -> [0;1] depth conversions.

Conditionally use VK_EXT_scalar_block_layout. This allows us to use
non-std140 layouts on UBOs.

Update external Vulkan headers.
2019-05-26 01:48:04 -03:00
ReinUsesLisp f4c15db9e8 externals: Update glad to support OpenGL 4.6 compatibility profile
Now that we have an OpenGL compatibility profile we might want to use
OpenGL compatibility symbols that are not available in our current glad.

This commit has been generated with https://glad.dav1d.de/ with all
extensions enabled and OpenGL 4.6 compatibility profile.
2019-05-21 20:52:00 -03:00
Lioncash 0964444529 externals: Update dynarmic to master
Better instruction support has been added since the last update.
2019-05-07 10:39:25 -04:00
ReinUsesLisp 970d9e57c8 video_core: Add sirit as optional dependency with Vulkan
sirit is a runtime assembler for SPIR-V
2019-04-10 14:20:25 -03:00
unknown d85c1141b9 externals: Add libzstd_static to externals CMakeLists.txt 2019-03-29 18:22:07 +01:00
unknown 93de7a7b40 externals: Add Zstandard v1.3.8 2019-03-29 18:22:07 +01:00
Lioncash 6abc56672c externals: Update opus to latest master
Prevents yuzu from getting 2000+ warnings in MSVC in a future change.
2019-03-16 04:10:41 -04:00
Lioncash e56f32a071 externals: Update cubeb to 6f2420de8f155b10330cf973900ac7bdbfee589d
Keeps the audio library we use up to date.
2019-02-27 01:21:51 -05:00
ReinUsesLisp b675c97cdd vk_memory_manager: Implement memory manager
A memory manager object handles the memory allocations for a device. It
allocates chunks of Vulkan memory objects and then suballocates.
2019-02-19 03:42:28 -03:00
ReinUsesLisp afb8af9853 gitmodules: Add Vulkan headers dependency 2019-02-12 18:33:02 -03:00
Lioncash 614de1dba7 externals: Update fmt to 5.3.0
Updates fmt from 5.2.1 to 5.3.0
2018-12-29 21:33:32 -05:00
bunnei d01bf170c4
Merge pull request #1725 from FernandoS27/gl43
Update OpenGL's backend version from 3.3 to 4.3
2018-11-23 23:56:57 -05:00
FernandoS27 377c60645c Update OpenGL's backend version from 3.3 to 4.3 2018-11-21 11:43:17 -04:00
Lioncash 3533d33ff5 common: Remove dependency on xbyak
Xbyak is currently entirely unused. Rather than carting it along, remove
it and get rid of a dependency. If it's ever needed in the future, then
it can be re-added (and likely be more up to date at that point in
time).
2018-11-21 03:43:41 -05:00
Michał Janiszewski 44c80e5d8b
Handle missing git info when building 2018-10-29 23:39:33 +01:00
Zach Hilman 89ad82ce5c externals/mbedtls: Enable CMAC module
Required for keyblob verification
2018-10-07 13:15:11 -04:00
Weiyi Wang a45b86f0fb Update fmt to 5.2.1
It seems to fix msvc warnings
2018-10-06 15:39:31 +02:00
fearlessTobi aa48468862 Review comments - part 3 2018-10-02 15:30:48 +02:00
fearlessTobi 120d8f3bf7 Address more review comments 2018-10-02 15:30:48 +02:00
fearlessTobi 4d139943f2 Port web_service from Citra 2018-10-02 15:30:48 +02:00
fearlessTobi 5f30f95e94 Add submodules 2018-10-02 15:30:48 +02:00
MerryMage 3031aa9d27 externals: Update dynarmic to 4e6848d
4e6848d A32/ir_emitter: Bugfix: ExceptionRaised was producing incorrect PC
41ba9fd value: Move ImmediateToU64() to be a part of Value's interface
c6a6271 reg_alloc: Emit AVX instructions where able
aedd32a abi: Emit AVX instructions where able
f2d9337 a64_exclusive_monitor: Loosen memory ordering requirements
7ca709d travis: Make macOS builds use Xcode 10
14dd45e Fix VShift terminology
88554c4 emit_x64_vector: AVX512 implementation of EmitVectorLogicalVShiftS16
ab4e316 emit_x64_vector: AVX512 implementation of EmitVectorLogicalVShiftS64
0ea84f3 emit_x64_vector: AVX2 implementation of EmitVectorLogicalVShiftS32
c77a2c5 emit_x64_vector: AVX512 implementation of EmitVectorLogicalVShiftU16()
e9441fd emit_x64_vector: AVX2 implementation of EmitVectorLogicalVShiftU64()
0e9c33c emit_x64_vector: AVX2 implementation of EmitVectorLogicalVShiftU32()
8f85274 emit_x64_vector: SSSE3 variant of EmitVectorCountLeadingZeros8()
be05e75 Merge pull request #397 from VelocityRa/dec-shift-fix
bc328fc decoders: Cast to correctly-sized type before shifting
9c3d2d1 a64_emit_x64: Lowercase PAGE_SIZE
f538d29 emit_x64_vector_floating_point: SSE4.1 implementation of EmitFPVectorToFixed
1603a6e emit_x64_vector_floating_point: EmitFPVectorRoundInt: Use FCODE
2e1ccaf emit_x64_vector: AVX implementation for EmitVectorCountLeadingZeros8
555bfda emit_x64_vector: SSE implementation of EmitVectorCountLeadingZeros16
71c2589 externals: Update Xbyak to 5.73
1ec1b2f Squashed 'externals/xbyak/' changes from 1de435ed..42462ef9
2018-09-30 19:45:27 +01:00
MerryMage 321eb0b6b0 externals: Update dynarmic to 171d116
171d116 A64: Implement SCVTF, UCVTF (vector, fixed-point), scalar variant
f221bb0 emit_x64_floating_point: Reduce fallback LUT code in EmitFPToFixed
eb123e2 A64: Implement FCVTZS, FCVTZU, UCVTF, SCVTF (vector, fixed-point), vector variant
487d37a A64: Implement UQSHL's vector immediate and register variants
f698933 ir: Add opcodes for unsigned saturating left shifts
7148e66 A64/translate/impl: Make signatures consistent for unimplemented by-element SIMD variants
fdde4ca A64: Implement BRK
b1490db A64/imm: Add full range of comparison operators to Imm template
1ec40ef IR: Add fbits argument to FPVectorFrom{Signed,Unsigned}Fixed
d6d5e98 A64: Implement SCVTF, UCVTF (scalar, fixed-point)
6513595 opcodes.inc: Align columns to a tabstop of 4
6b0d2b5 IR: Add fbits argument to FixedToFP-related opcodes
c4b3831 A64: Implement SQSHL's vector immediate variant
e0d8d2d A64: Implement SQSHL's vector register variant
5327625 ir: Add opcodes for left signed saturated shifts
9705252 branch: Make variables const where applicable
650946e move_wide: Make variables const where applicable
62b3a6d load_store_register_unprivileged: Make variables const where applicable
3add1c7 load_store_register_immediate: Place conditional bodies on their own line
2fc4088 load_store_load_literal: Make variables const where applicable
b2c1462 data_processing_logical: Move datasize declarations after early-exit conditionals
028028f data_processing_conditional_select: Make variables const where applicable
c66042d data_processing_addsub: Move datasize declarations after early-exit conditionals
6bc546e data_processing_bitfield: Move datasize variables after early-exit conditionals
2aad5fa A64: Implement CLS's vector variant
6c877ff emit_x64_vector: Make EmitVectorUnsignedSaturatedAccumulateSigned() internally linked
4b5926d perf_map: Use std::string_view instead of std::string for PerfMapRegister()
7445947 A64: Implement SQRDMULH (vector), vector variant
03b80f2 A64: Implement SQDMULL (vector), vector variant
4a2c596 IR: Add VectorSignedSaturatedDoublingMultiplyLong
59dc33e emit_x64_vector: Changes to VectorSignedSaturatedDoublingMultiply
bbaebeb IR: Implement Vector{Signed,Unsigned}Multiply{16,32}
baac5a8 backend_x64/a64_interface: Re-enable the constant folding pass
e78ca19 emit_x64_vector_floating_point: Hardware FMA implementation for RSqrtStepFused
8a5ae9a emit_x64_vector_floating_point: Hardware FMA implementation of FPVectorRecipStepFused
39818f9 emit_x64_floating_point: Hardware FMA implementation of FPRSqrtStepFused
3d0a0b4 emit_x64_floating_point: Hardware FMA implementation of FPRecipStepFused{32,64}
2293dff emit_x64_vector: SSE implementation of VectorSignedSaturatedAccumulateUnsigned{8,16,32}
2047683 emit_x64_vector: Correct static asserts for < 64-bit type checks in saturated accumulate fallbacks
55e9e40 emit_x64_vector: EmitVectorSignedSaturatedAccumulateUnsigned64: SSE implementation
1076651 emit_x64_vector: Simplify fpsr_qc related code
4039030 A64: Implement CLZ's vector variant
0bb908f ir: Add opcodes for vector CLZ operations
3b13259 A64/translate: VectorZeroUpper for V(64) stores
1931d44 simd_two_register_misc: FNEG (vector) with Q == 0 had dirty upper
a0790f0 emit_x64_vector: Remove unnecessary [[maybe_unused]] attributes
b0e1eb5 A64: Implement USQADD's scalar and vector variants
28424c7 ir: Add opcodes form unsigned saturated accumulations of signed values
9923ea0 A64: Implement SUQADD's scalar and vector variants
4c0adbb ir: Add opcodes for signed saturated accumulations of unsigned values
799bfed A64: Implement SMLAL{2}, SMLSL{2}, UMLAL{2}, and UMLSL{2}'s vector by-element variants
94451ec A64: Implement UMULL{2}'s vector by-element variant
45867de A64: Implement SMULL{2}'s vector by-element variant
0235793 ir/value: Replace includes with forward declarations
450f721 ir/cond: Migrate to C++17 nested namespace specifiers
e649988 CMakeLists: Add missing cond.h header to file listing
d20e769 A64: Implement URSQRTE
4f3bde5 ir: Add opcodes for performing unsigned reciprocal square root estimates
cfeeaec A64: Implement URECPE
622b60e ir: Add opcodes for unsigned reciprocal estimate
d17599a Update Xbyak to 5.71
f7c26e9 Squashed 'externals/xbyak/' changes from 671fc805..1de435ed
8782b69 travis: Make macOS build with Xcode 9.4.1
b575b23 A64: Implement SQNEG's scalar and vector variant
06062a9 A64: Add opcodes for signed saturating negations
1c40579 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtract()
e335050 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtractLower()
8b13421 A64: Implement SQDMULH's by-element scalar variant
9122a6e A64: Implement SQDMULH's by-element vector variant
176e60e backend/x64: Do not clear fast_dispatch_table if not enabled
2018-09-19 20:31:39 +01:00
bunnei 926dd41587
Merge pull request #1163 from FearlessTobi/add-audio-stretching
audio_core: Add audio stretching support
2018-09-12 18:23:54 -04:00
Lioncash 46ba1bc40f externals: Place font data within cpp files
This places the font data within cpp files, which mitigates the
possibility of the font data being duplicated within the binary if it's
referred to in more than one translation unit in the future. It also
stores the data within a std::array, which is more flexible when it
comes to operating with the standard library.

Furthermore, it makes the data arrays const. This is what we want, as it
allows the compiler to store the data within the read-only segment. As
it is, having several large sections of mutable data like this just
leaves spots in memory that we can accidentally write to (via accidental
overruns, what have you) and actually have it work. This ensures the
font data remains the same no matter what.
2018-09-11 04:25:33 -04:00
Tobias 3bac3051fc Use open-source shared fonts if no dumped file is available (#1269)
* Add open-source shared fonts

* Address review comments
2018-09-10 21:31:01 -04:00
James Rowe 5ff72a48a7 Externals: Update xbyak 2018-09-08 16:53:52 -06:00
fearlessTobi a6efff8b02 Add audio stretching support 2018-09-08 18:26:23 +01:00