mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-18 14:13:13 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cbd739de3 | |||
| d546a04479 | |||
| 82ed947bb5 | |||
| 774ec0a942 | |||
| 073ecd36af | |||
| a55ffc9225 |
@@ -444,6 +444,11 @@ if (NOT YUZU_STATIC_ROOM)
|
|||||||
if (NOT TARGET Opus::opus)
|
if (NOT TARGET Opus::opus)
|
||||||
add_library(Opus::opus ALIAS opus)
|
add_library(Opus::opus ALIAS opus)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
# KosmicKrisp
|
||||||
|
AddJsonPackage(kosmickrisp)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT TARGET Boost::headers)
|
if(NOT TARGET Boost::headers)
|
||||||
|
|||||||
@@ -114,5 +114,14 @@
|
|||||||
"QUAZIP_INSTALL OFF",
|
"QUAZIP_INSTALL OFF",
|
||||||
"QUAZIP_ENABLE_QTEXTCODEC OFF"
|
"QUAZIP_ENABLE_QTEXTCODEC OFF"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"kosmickrisp": {
|
||||||
|
"package": "KosmicKrisp",
|
||||||
|
"repo": "crueter-ci/KosmicKrisp",
|
||||||
|
"hash": "4709fb3735ed40048cab9a64abed9a661517dada92b6e8928d578e947fdd6af21b3da4887822f4c3ad3055c6641f9a63243e10e2dd2bba00379618dcc0cda4be",
|
||||||
|
"git_version": "26.0.6",
|
||||||
|
"tag": "v%VERSION%",
|
||||||
|
"artifact": "KosmicKrisp-%VERSION%.tar.zst",
|
||||||
|
"bundled": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
-14
@@ -389,17 +389,3 @@ if (ANDROID)
|
|||||||
|
|
||||||
add_library(oboe::oboe ALIAS oboe)
|
add_library(oboe::oboe ALIAS oboe)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (APPLE)
|
|
||||||
# moltenvk
|
|
||||||
if (NOT YUZU_USE_BUNDLED_MOLTENVK)
|
|
||||||
find_library(MOLTENVK_LIBRARY MoltenVK)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# TODO: kosmickrisp?
|
|
||||||
if (NOT MOLTENVK_LIBRARY OR YUZU_USE_BUNDLED_MOLTENVK)
|
|
||||||
AddJsonPackage(moltenvk)
|
|
||||||
|
|
||||||
set(MOLTENVK_LIBRARY "${moltenvk_SOURCE_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib" CACHE STRING "" FORCE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|||||||
Vendored
-8
@@ -174,14 +174,6 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"skip_updates": "true"
|
"skip_updates": "true"
|
||||||
},
|
},
|
||||||
"moltenvk": {
|
|
||||||
"repo": "V380-Ori/Ryujinx.MoltenVK",
|
|
||||||
"tag": "v%VERSION%-ryujinx",
|
|
||||||
"git_version": "1.4.1",
|
|
||||||
"artifact": "MoltenVK-macOS.tar",
|
|
||||||
"hash": "5695b36ca5775819a71791557fcb40a4a5ee4495be6b8442e0b666d0c436bec02aae68cc6210183f7a5c986bdbec0e117aecfad5396e496e9c2fd5c89133a347",
|
|
||||||
"bundled": true
|
|
||||||
},
|
|
||||||
"gamemode": {
|
"gamemode": {
|
||||||
"repo": "FeralInteractive/gamemode",
|
"repo": "FeralInteractive/gamemode",
|
||||||
"sha": "ce6fe122f3",
|
"sha": "ce6fe122f3",
|
||||||
|
|||||||
@@ -866,10 +866,17 @@ void EmitIR<IR::Opcode::VectorMaxS32>(oaknut::CodeGenerator& code, EmitContext&
|
|||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::VectorMaxS64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::VectorMaxS64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
|
#ifdef __APPLE__
|
||||||
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
||||||
code.CMGT(Qresult->D2(), Qa->D2(), Qb->D2());
|
code.CMGT(Qresult->D2(), Qa->D2(), Qb->D2());
|
||||||
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
(void)code;
|
||||||
|
(void)ctx;
|
||||||
|
(void)inst;
|
||||||
|
UNREACHABLE();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@@ -889,10 +896,17 @@ void EmitIR<IR::Opcode::VectorMaxU32>(oaknut::CodeGenerator& code, EmitContext&
|
|||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::VectorMaxU64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::VectorMaxU64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
|
#ifdef __APPLE__
|
||||||
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
||||||
code.CMHI(Qresult->D2(), Qa->D2(), Qb->D2());
|
code.CMHI(Qresult->D2(), Qa->D2(), Qb->D2());
|
||||||
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
(void)code;
|
||||||
|
(void)ctx;
|
||||||
|
(void)inst;
|
||||||
|
UNREACHABLE();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@@ -912,10 +926,17 @@ void EmitIR<IR::Opcode::VectorMinS32>(oaknut::CodeGenerator& code, EmitContext&
|
|||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::VectorMinS64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::VectorMinS64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
|
#ifdef __APPLE__
|
||||||
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
||||||
code.CMGT(Qresult->D2(), Qb->D2(), Qa->D2());
|
code.CMGT(Qresult->D2(), Qb->D2(), Qa->D2());
|
||||||
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
(void)code;
|
||||||
|
(void)ctx;
|
||||||
|
(void)inst;
|
||||||
|
UNREACHABLE();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@@ -935,10 +956,17 @@ void EmitIR<IR::Opcode::VectorMinU32>(oaknut::CodeGenerator& code, EmitContext&
|
|||||||
|
|
||||||
template<>
|
template<>
|
||||||
void EmitIR<IR::Opcode::VectorMinU64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
void EmitIR<IR::Opcode::VectorMinU64>(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) {
|
||||||
|
#ifdef __APPLE__
|
||||||
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) {
|
||||||
code.CMHI(Qresult->D2(), Qb->D2(), Qa->D2());
|
code.CMHI(Qresult->D2(), Qb->D2(), Qa->D2());
|
||||||
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
code.BSL(Qresult->B16(), Qa->B16(), Qb->B16());
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
(void)code;
|
||||||
|
(void)ctx;
|
||||||
|
(void)inst;
|
||||||
|
UNREACHABLE();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
|
|||||||
@@ -24,10 +24,7 @@ std::shared_ptr<Common::DynamicLibrary> OpenLibrary(
|
|||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
const auto libvulkan_filename =
|
const auto libvulkan_filename =
|
||||||
Common::FS::GetBundleDirectory() / "Contents/Frameworks/libvulkan.1.dylib";
|
Common::FS::GetBundleDirectory() / "Contents/Frameworks/libvulkan.1.dylib";
|
||||||
const auto libmoltenvk_filename =
|
const char* library_paths[] = {std::getenv("LIBVULKAN_PATH"), libvulkan_filename.c_str()};
|
||||||
Common::FS::GetBundleDirectory() / "Contents/Frameworks/libMoltenVK.dylib";
|
|
||||||
const char* library_paths[] = {std::getenv("LIBVULKAN_PATH"), libvulkan_filename.c_str(),
|
|
||||||
libmoltenvk_filename.c_str()};
|
|
||||||
// Check if a path to a specific Vulkan library has been specified.
|
// Check if a path to a specific Vulkan library has been specified.
|
||||||
for (const auto& library_path : library_paths) {
|
for (const auto& library_path : library_paths) {
|
||||||
if (library_path && library->Open(library_path)) {
|
if (library_path && library->Open(library_path)) {
|
||||||
|
|||||||
+13
-5
@@ -389,14 +389,22 @@ if (APPLE)
|
|||||||
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
|
||||||
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
||||||
|
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib")
|
set(KK_LIBS
|
||||||
find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED)
|
"${KosmicKrisp_SOURCE_DIR}/lib/libMoltenVK.dylib"
|
||||||
message(STATUS "Using MoltenVK at ${MOLTENVK_LIBRARY}.")
|
"${KosmicKrisp_SOURCE_DIR}/lib/libvulkan.1.dylib"
|
||||||
|
"${KosmicKrisp_SOURCE_DIR}/lib/libvulkan_kosmickrisp.dylib")
|
||||||
|
|
||||||
set_source_files_properties(${MOLTENVK_LIBRARY} PROPERTIES
|
set_source_files_properties(${KK_LIBS} PROPERTIES
|
||||||
MACOSX_PACKAGE_LOCATION Frameworks
|
MACOSX_PACKAGE_LOCATION Frameworks
|
||||||
XCODE_FILE_ATTRIBUTES "CodeSignOnCopy")
|
XCODE_FILE_ATTRIBUTES "CodeSignOnCopy")
|
||||||
target_sources(yuzu PRIVATE ${MOLTENVK_LIBRARY})
|
|
||||||
|
target_sources(yuzu PRIVATE ${KK_LIBS})
|
||||||
|
|
||||||
|
add_custom_command(TARGET yuzu POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||||
|
"${KosmicKrisp_SOURCE_DIR}/vulkan"
|
||||||
|
"$<TARGET_FILE_DIR:yuzu>/../Resources/vulkan"
|
||||||
|
COMMENT "Copying Vulkan ICDs")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
# compile as a win32 gui application instead of a console application
|
# compile as a win32 gui application instead of a console application
|
||||||
target_link_libraries(yuzu PRIVATE Qt6::EntryPointPrivate)
|
target_link_libraries(yuzu PRIVATE Qt6::EntryPointPrivate)
|
||||||
|
|||||||
Reference in New Issue
Block a user