Commit Graph

292 Commits

Author SHA1 Message Date
278198f5f5 vk_shader_gen_spv: Implement shadow plane sampling 2022-12-25 22:31:27 +02:00
7e3a0f524c externals: Update sirit 2022-12-25 22:29:05 +02:00
e90add52d2 cmake: Fork sirit
* Upstream is missing some required instructions
2022-12-25 22:29:04 +02:00
3c6ca2cc82 renderer_vulkan: Begin new fragment shader SPIR-V emitter 2022-12-25 22:29:04 +02:00
52251e3908 renderer_vulkan: Scheduler and presentation rewrite
* This commit ports yuzu's async scheduler replacing our older and crummier version
  Commands are recorded by the scheduler and processed by a separate worker thread.

* Queue submission is also moved to the worker thread which should alliviate slowdowns related to vkQueueSubmit stalls

* Fragment shader compilation and queue submission are also moved to that thread to reduce stutters
2022-12-25 22:23:46 +02:00
921444c2c9 externals: Update vulkan-headers 2022-12-25 22:23:46 +02:00
e54a92c252 code: Address build issues 2022-12-25 22:18:04 +02:00
c611592db6 citra_qt: Add physical device selection dialog 2022-12-25 22:18:04 +02:00
9675811bbe renderer_vulkan: Add experimental Vulkan renderer 2022-12-25 22:07:46 +02:00
945faf8e92 externals: Add vulkan headers and vma 2022-12-25 22:02:59 +02:00
8d35118f63 renderer_opengl: Add driver class to report info/bugs 2022-12-25 22:02:11 +02:00
553c85456e rasterizer_cache: Add staging buffer cache for uploads/downloads
*  In addition bump context version to 4.4 to enforce ARB_buffer_storage and use EXT_buffer_storage for GLES which is support on many mobile devices
2022-12-25 22:02:11 +02:00
2238e6c3ef externals: Update dynarmic to 7a926d689bcc1cc39dd26d5bba379dffcc6815a3 2022-11-22 22:52:37 +00:00
3b6ffd9c27 Add MSVC binaries for Windows on releases (#6190)
* Improve directory creation in WindowsCopyFiles.cmake

* Release msvc compiled binaries as an alternative to mingw releases

* msvc: do not ship .pdb files

* msvc: Copy necessary files to the release

* windows-msvc: enable compatibility reporting

translation was disabled because the bundled qt doesn't have
the necessary component

Co-authored-by: Michał Janiszewski <janisozaur@users.noreply.github.com>
2022-11-19 22:22:10 +02:00
bb05d8c12a src/CMakeLists: Enforce multiple warnings on MSVC (#5692) 2022-11-09 23:14:28 +01:00
7801907288 externals: Update dynarmic (#6175) 2022-11-05 11:19:50 +05:30
1ddea27ac8 code: Cleanup and warning fixes from the Vulkan PR (#6163)
Co-authored-by: emufan4568 <geoster3d@gmail.com>
Co-authored-by: Kyle Kienapfel <Docteh@users.noreply.github.com>
2022-11-04 23:32:57 +01:00
0fb792d216 bump dynarmic: fix moving imm to fpr 2022-10-27 18:47:52 +05:30
fbe06234b1 Core: Port Exclusive memory impl from yuzu
core\arm\dynarmic\arm_dynarmic.cpp: fix build

core\arm\dynarmic\arm_dynarmic.cpp: Fixes

CPP 20
2022-10-23 13:19:33 +05:30
98d3b9c776 externals\CMakeLists.txt: add fmt before dynarmic 2022-10-23 13:19:32 +05:30
4a590d1fcb xbyak: Correct xbyak include directory
xbyak is intended to be installed in /usr/local/include/xbyak.
Since we desire not to install xbyak before using it, we copy the headers
to the appropriate directory structure and use that instead
Co-authored-by: merry <git@mary.rs>
2022-10-23 13:19:32 +05:30
726964ff20 bump xbyak 2022-10-23 13:19:32 +05:30
e5f30fdbf8 bump dynarmic
bump dynarmic

bump dynarmic

bump dynarmic
2022-10-23 13:19:32 +05:30
76f8d08d66 externals: track a stable version of sdl, 2.24.1 (#6150) 2022-10-06 03:06:12 +02:00
3e692eb383 externals: Upgrade httplib (#6147) 2022-10-06 03:01:37 +02:00
cbd5d1c15c Upgrade codebase to C++ 20 + fix warnings + update submodules (#6115) 2022-09-21 18:36:12 +02:00
9268b7d48e Merge branch 'master' into tex-cache 2022-09-01 19:50:32 +05:30
12f84e18dc externals: Upgrade glad to latest version
* Also change some mentions to OpenGL 3.3 to 4.3
2022-08-22 23:44:03 +03:00
a90b0daebe Look at version_major.h when for newer ffmpeg libs
In ffmpeg 5.1, it seems most (or all) of these libraries use a separate
version_major.h, so the logic to check minimum version didn't work
without looking at the major version file.
2022-08-20 20:40:26 -04:00
243548afc4 bump dynarmic
workaround MSCV compile error
2022-07-03 13:56:33 +05:30
f71e853054 externals: Update cpp-jwt to e12ef062 (#6051)
Resolves compilation errors when compiling with C++20
2022-06-25 14:41:57 +05:30
46c6e5c4c0 externals: Update libressl to 3.5.2 (#6021)
Resolves compiler errors in VS 2022
2022-05-15 11:01:54 +05:30
d65f50e512 Bump libressl to latest commit 2022-03-26 10:00:34 +05:30
25ad002e6e Update teakra (#5961)
Co-authored-by: Trung Le <trung.le@ruby-joural.com>
2022-02-24 21:02:40 +05:30
cdbd72e79c Fix build on powerpc64le (#5947)
After cryptopp update, build again fails.
2022-02-08 22:07:21 +05:30
bae1c31406 Merge pull request #5718 from liushuyu/httpc
externals: update httplib and libressl
2022-02-05 02:59:18 -07:00
d35a7a8e23 Merge pull request #5804 from weihuoya/minorfx
Minor fx
2022-01-30 21:51:11 +05:30
7fa64af3d6 externals: update enet 2022-01-14 10:36:49 +08:00
af24f75c18 externals: update httplib and libressl ...
* In older `httplib`, SSL connections were not handled correctly and
  will have issues with proxy servers. Also, keep alive directives were
  not available back then, which is probably necessary to implement
  HTTP_C service correctly.
* Another 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.
2022-01-13 19:32:50 -07:00
4b04175c5d cryptopp: enable SIMD flags on i386
externals/cryptopp/cryptopp/rijndael_simd.cpp:460:20: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'Rijndael_UncheckedSetKey_SSE4_AESNI' that is compiled without support for 'sse2'
    __m128i temp = _mm_loadu_si128(M128_CAST(userKey+keyLen-16));
                   ^
externals/cryptopp/cryptopp/rijndael_simd.cpp:469:50: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
        rk[keyLen/4] = rk[0] ^ _mm_extract_epi32(_mm_aeskeygenassist_si128(temp, 0), 3) ^ *(rc++);
                                                 ^
externals/cryptopp/cryptopp/rijndael_simd.cpp:481:20: error: '__builtin_ia32_vec_set_v4si' needs target feature sse4.1
            temp = _mm_insert_epi32(temp, rk[11], 3);
                   ^
[...]
2022-01-06 23:57:05 +00:00
60d1def6f8 Update cryptopp to 8.5.0 (#5669)
* Update cryptopp to 8.3.0

Modified the CMakeLists.txt based on the noloader/cryptopp-cmake
8.3.0 CMakeLists.txt.

* Update cryptopp to version 8.5.0
2022-01-05 20:05:07 +05:30
1911c9791e Add libyuv (#5623)
* Add libyuv

* Only use libyuv on Android

Co-authored-by: Marshall Mohror <mohror64@gmail.com>
2021-12-12 20:22:30 +05:30
64b502aad3 Merge pull request #5810 from vitor-k/discord
Port yuzu-emu/yuzu#6484: "update submodule discord-rpc to latest [now deprecated]"
2021-11-20 21:01:27 +05:30
219eaabbcf Fix build on powerpc64le (#5884)
Without compiling ppc-simd.cpp, linking fails with:
: && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -Wl,--as-needed -fstack-protector-strong -L/usr/local/lib src/tests/CMakeFiles/tests.dir/common/bit_field.cpp.o src/tests/CMakeFiles/tests.dir/common/param_package.cpp.o src/tests/CMakeFiles/tests.dir/core/arm/arm_test_common.cpp.o src/tests/CMakeFiles/tests.dir/core/arm/dyncom/arm_dyncom_vfp_tests.cpp.o src/tests/CMakeFiles/tests.dir/core/core_timing.cpp.o src/tests/CMakeFiles/tests.dir/core/file_sys/path_parser.cpp.o src/tests/CMakeFiles/tests.dir/core/hle/kernel/hle_ipc.cpp.o src/tests/CMakeFiles/tests.dir/core/memory/memory.cpp.o src/tests/CMakeFiles/tests.dir/core/memory/vm_manager.cpp.o src/tests/CMakeFiles/tests.dir/audio_core/decoder_tests.cpp.o src/tests/CMakeFiles/tests.dir/tests.cpp.o -o bin/Release/tests  src/common/libcommon.a  src/core/libcore.a  src/video_core/libvideo_core.a  src/audio_core/libaudio_core.a  src/core/libcore.a  src/video_core/libvideo_core.a  src/audio_core/libaudio_core.a  externals/soundtouch/libSoundTouch.a  externals/teakra/src/libteakra.a  /usr/local/lib/libSDL2main.a  /usr/local/lib/libSDL2.so  externals/cubeb/libcubeb.a  -lpthread  externals/cryptopp/libcryptopp.a  src/web_service/libweb_service.a  src/network/libnetwork.a  externals/enet/libenet.a  externals/libressl/tls/libtls.a  externals/libressl/ssl/libssl.a  externals/libressl/crypto/libcrypto.a  externals/lurlparser/liblurlparser.a  /usr/local/lib/libavformat.so  /usr/local/lib/libavcodec.so  /usr/local/lib/libswscale.so  /usr/local/lib/libswresample.so  /usr/local/lib/libavutil.so  src/common/libcommon.a  externals/fmt/libfmt.a  externals/zstd/build/cmake/lib/libzstd.a
 -pthread  /usr/local/lib/libboost_serialization.a  externals/glad/libglad.a && :
ld: error: undefined symbol: CryptoPP::CPU_ProbeAltivec()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a

ld: error: undefined symbol: CryptoPP::CPU_ProbePower7()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a

ld: error: undefined symbol: CryptoPP::CPU_ProbePower8()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeAES()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA256()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA512()
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(CryptoPP::DetectPowerpcFeatures()) in archive externals/cryptopp/libcryptopp.a
>>> referenced by cpu.cpp
>>>               cpu.cpp.o:(_GLOBAL__I_000260) in archive externals/cryptopp/libcryptopp.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
2021-10-31 14:47:20 -05:00
a5d01c0c15 fix build on glibc 2.34 (#5872)
* fix build on glibc 2.34

* bump Catch to latest tag and update dynarmic
2021-10-23 18:54:36 +05:30
62236b7257 Update dynarmic (#5814) 2021-07-11 20:16:10 +05:30
de9d640de4 update submodule discord-rpc to latest [now deprecated] 2021-07-06 23:56:27 -03:00
18ad3bafb6 Update dynarmic
this should allow the cpu jit to run on builds compiled for the M1
2021-05-12 17:30:19 -03:00
63589f4a1b Re-update catch and dynarmic 2021-04-29 01:34:07 -03:00
48fad3a903 libusb: Add /utf-8 compile option for MSVC. 2021-04-24 02:22:13 -04:00