about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix')
-rw-r--r--nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix62
1 files changed, 28 insertions, 34 deletions
diff --git a/nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix b/nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix
index e845603f4cc2..d8fe6311076f 100644
--- a/nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix
+++ b/nixpkgs/pkgs/applications/emulators/yuzu/mainline.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , nix-update-script
 , wrapQtAppsHook
-, alsa-lib
+, autoconf
 , boost
 , catch2_3
 , cmake
@@ -11,58 +11,46 @@
 , cpp-jwt
 , cubeb
 , discord-rpc
-, doxygen
 , enet
-, ffmpeg
 , fmt
 , glslang
-, httplib
-, inih
-, libjack2
 , libopus
-, libpulseaudio
 , libusb1
 , libva
-, libzip
 , lz4
 , nlohmann_json
+, nv-codec-headers-12
 , nx_tzdb
-, perl
 , pkg-config
-, python3
 , qtbase
 , qtmultimedia
 , qttools
 , qtwayland
 , qtwebengine
-, rapidjson
 , SDL2
-, sndio
-, speexdsp
-, udev
 , vulkan-headers
 , vulkan-loader
+, yasm
 , zlib
 , zstd
 }:
 stdenv.mkDerivation(finalAttrs: {
   pname = "yuzu";
-  version = "1676";
+  version = "1704";
 
   src = fetchFromGitHub {
     owner = "yuzu-emu";
     repo = "yuzu-mainline";
     rev = "mainline-0-${finalAttrs.version}";
-    hash = "sha256-vRrliVuGXI/Dpmdkbj+P5hshzPzB6nijrXQfLXHaGqk=";
+    hash = "sha256-8vIwWahl5JmFlOfMRuec1LiYz4F6mPEH4+p2e1IRBdU=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
     cmake
-    doxygen
-    perl
+    glslang
     pkg-config
-    python3
+    qttools
     wrapQtAppsHook
   ];
 
@@ -71,7 +59,6 @@ stdenv.mkDerivation(finalAttrs: {
     # don't get picked up by accident
     vulkan-headers
 
-    alsa-lib
     boost
     catch2_3
     cpp-jwt
@@ -79,30 +66,31 @@ stdenv.mkDerivation(finalAttrs: {
     discord-rpc
     # intentionally omitted: dynarmic - prefer vendored version for compatibility
     enet
-    ffmpeg
+
+    # vendored ffmpeg deps
+    autoconf
+    yasm
+    libva  # for accelerated video decode on non-nvidia
+    nv-codec-headers-12  # for accelerated video decode on nvidia
+    # end vendored ffmpeg deps
+
     fmt
-    glslang
-    httplib
-    inih
-    libjack2
+    # intentionally omitted: gamemode - loaded dynamically at runtime
+    # intentionally omitted: httplib - upstream requires an older version than what we have
     libopus
-    libpulseaudio
     libusb1
-    libva
-    libzip
     # intentionally omitted: LLVM - heavy, only used for stack traces in the debugger
     lz4
     nlohmann_json
     qtbase
     qtmultimedia
-    qttools
     qtwayland
     qtwebengine
-    rapidjson
+    # intentionally omitted: renderdoc - heavy, developer only
     SDL2
-    sndio
-    speexdsp
-    udev
+    # not packaged in nixpkgs: simpleini
+    # intentionally omitted: stb - header only libraries, vendor uses git snapshot
+    # not packaged in nixpkgs: vulkan-memory-allocator
     # intentionally omitted: xbyak - prefer vendored version for compatibility
     zlib
     zstd
@@ -126,6 +114,9 @@ stdenv.mkDerivation(finalAttrs: {
     "-DYUZU_USE_EXTERNAL_SDL2=OFF"
     "-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=OFF"
 
+    # don't use system ffmpeg, yuzu uses internal APIs
+    "-DYUZU_USE_BUNDLED_FFMPEG=ON"
+
     # don't check for missing submodules
     "-DYUZU_CHECK_SUBMODULES=OFF"
 
@@ -139,6 +130,9 @@ stdenv.mkDerivation(finalAttrs: {
     "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
   ];
 
+  # Does some handrolled SIMD
+  env.NIX_CFLAGS_COMPILE = "-msse4.1";
+
   # Fixes vulkan detection.
   # FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate
   qtWrapperArgs = [
@@ -154,7 +148,7 @@ stdenv.mkDerivation(finalAttrs: {
 
     # provide pre-downloaded tz data
     mkdir -p build/externals/nx_tzdb
-    ln -sf ${nx_tzdb} build/externals/nx_tzdb/${nx_tzdb.version}.zip
+    ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb
   '';
 
   # This must be done after cmake finishes as it overwrites the file