mirror of
https://git.suyu.dev/suyu/suyu
synced 2025-12-08 22:02:07 -06:00
Compare commits
5 Commits
ddutchie/c
...
ci-fijxu-t
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2060ec4055 | ||
|
|
a12955236f | ||
|
|
209c2ac762 | ||
|
|
39b6f9b4c6 | ||
|
|
7e17961259 |
@@ -11,6 +11,8 @@ ccache -s
|
|||||||
mkdir build || true && cd build
|
mkdir build || true && cd build
|
||||||
cmake .. \
|
cmake .. \
|
||||||
-DBoost_USE_STATIC_LIBS=ON \
|
-DBoost_USE_STATIC_LIBS=ON \
|
||||||
|
-DSUYU_USE_PRECOMPILED_HEADERS=OFF \
|
||||||
|
-DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
|
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
|
||||||
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
||||||
@@ -24,6 +26,7 @@ cmake .. \
|
|||||||
-DSUYU_USE_BUNDLED_FFMPEG=ON \
|
-DSUYU_USE_BUNDLED_FFMPEG=ON \
|
||||||
-DSUYU_ENABLE_LTO=ON \
|
-DSUYU_ENABLE_LTO=ON \
|
||||||
-DSUYU_CRASH_DUMPS=ON \
|
-DSUYU_CRASH_DUMPS=ON \
|
||||||
|
-DSUYU_USE_FASTER_LD=ON \
|
||||||
-GNinja
|
-GNinja
|
||||||
|
|
||||||
ninja
|
ninja
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -14,6 +14,7 @@ dist/english_plurals/generated_en.ts
|
|||||||
.idea/
|
.idea/
|
||||||
.vs/
|
.vs/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
.cache/
|
||||||
CMakeLists.txt.user*
|
CMakeLists.txt.user*
|
||||||
|
|
||||||
# *nix related
|
# *nix related
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
stages:
|
stages:
|
||||||
- format
|
- format
|
||||||
- build
|
- build
|
||||||
|
|
||||||
|
variables:
|
||||||
|
# https://docs.gitlab.com/ee/ci/runners/configure_runners.html
|
||||||
|
TRANSFER_METER_FREQUENCY: "2s"
|
||||||
|
ARTIFACT_COMPRESSION_LEVEL: "fast"
|
||||||
|
CACHE_COMPRESSION_LEVEL: "fastest"
|
||||||
|
CACHE_REQUEST_TIMEOUT: 5
|
||||||
|
# Use FASTZIP for faster compression in cache and artifacts
|
||||||
|
# https://docs.gitlab.com/runner/configuration/feature-flags.html#available-feature-flags
|
||||||
|
FF_USE_FASTZIP: true
|
||||||
|
|
||||||
|
# Our Variables
|
||||||
|
CACHE_DIR: "$CI_PROJECT_DIR/ccache"
|
||||||
|
CCACHE_DIR: $CACHE_DIR
|
||||||
|
|
||||||
|
|
||||||
#CLANG FORMAT - CHECKS CODE FOR FORMATTING ISSUES
|
#CLANG FORMAT - CHECKS CODE FOR FORMATTING ISSUES
|
||||||
clang-format:
|
clang-format:
|
||||||
stage: format
|
stage: format
|
||||||
@@ -15,13 +31,20 @@ clang-format:
|
|||||||
# - Linux
|
# - Linux
|
||||||
# - Windows
|
# - Windows
|
||||||
- Parallelized
|
- Parallelized
|
||||||
- Format
|
|
||||||
|
|
||||||
#LINUX BUILD - BUILDS LINUX APPIMAGE
|
#LINUX BUILD - BUILDS LINUX APPIMAGE
|
||||||
build-linux:
|
build-linux:
|
||||||
stage: build
|
stage: build
|
||||||
image: suyuemu/cibuild:linux-x64
|
image: suyuemu/cibuild:linux-x64
|
||||||
resource_group: linux-ci
|
resource_group: linux-ci
|
||||||
|
cache:
|
||||||
|
key: "$CI_COMMIT_REF_NAME-ccache"
|
||||||
|
paths:
|
||||||
|
- $CACHE_DIR
|
||||||
|
before_script:
|
||||||
|
- mkdir -p $CACHE_DIR
|
||||||
|
- chmod -R 777 $CACHE_DIR
|
||||||
|
- ls -la $CACHE_DIR
|
||||||
variables:
|
variables:
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
GIT_SUBMODULE_DEPTH: 1
|
GIT_SUBMODULE_DEPTH: 1
|
||||||
|
|||||||
@@ -3,9 +3,6 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.22)
|
cmake_minimum_required(VERSION 3.22)
|
||||||
|
|
||||||
set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT OFF)
|
|
||||||
set(CMAKE_XCODE_EMIT_RELATIVE_PATH YES)
|
|
||||||
|
|
||||||
project(suyu)
|
project(suyu)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
@@ -71,7 +68,7 @@ option(SUYU_ENABLE_PORTABLE "Allow suyu to enable portable mode if a user folder
|
|||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(SUYU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
CMAKE_DEPENDENT_OPTION(SUYU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" ON)
|
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" OFF)
|
||||||
|
|
||||||
option(USE_CCACHE "Use CCache for faster building" ON)
|
option(USE_CCACHE "Use CCache for faster building" ON)
|
||||||
|
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||||||
|
|
||||||
Please check out the
|
Please check out the
|
||||||
|
|
||||||
* [Contributors's guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing).
|
* [Conributors's guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing).
|
||||||
* [Merge request guidelines](https://gitlab.com/suyu-emu/suyu/-/wikis/Merge-requests)
|
* [Merge request guidelines](https://gitlab.com/suyu-emu/suyu/-/wikis/Merge-requests)
|
||||||
|
|||||||
@@ -72,12 +72,6 @@ class AppletLauncherFragment : Fragment() {
|
|||||||
R.string.mii_edit_applet_description,
|
R.string.mii_edit_applet_description,
|
||||||
R.drawable.ic_mii,
|
R.drawable.ic_mii,
|
||||||
AppletInfo.MiiEdit
|
AppletInfo.MiiEdit
|
||||||
),
|
|
||||||
Applet(
|
|
||||||
R.string.qlaunch_applet,
|
|
||||||
R.string.qlaunch_description,
|
|
||||||
R.drawable.ic_home,
|
|
||||||
AppletInfo.QLaunch
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ enum class AppletInfo(val appletId: Int, val entryId: Long = 0) {
|
|||||||
None(0x00),
|
None(0x00),
|
||||||
Application(0x01),
|
Application(0x01),
|
||||||
OverlayDisplay(0x02),
|
OverlayDisplay(0x02),
|
||||||
QLaunch(0x03, 0x0100000000001000),
|
QLaunch(0x03),
|
||||||
Starter(0x04),
|
Starter(0x04),
|
||||||
Auth(0x0A),
|
Auth(0x0A),
|
||||||
Cabinet(0x0B, 0x0100000000001002),
|
Cabinet(0x0B, 0x0100000000001002),
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
<vector android:alpha="1"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<path android:fillColor="?attr/colorControlNormal"
|
|
||||||
android:pathData="M21.59,11.31 L12.41,2.9a0.55,0.55 0,0 0,-0.75 0L2.47,11.31a0.54,0.54 0,0 0,0.38 0.93H4.41a0.35,0.35 0,0 1,0.35 0.35V20.32a0.54,0.54 0,0 0,0.54 0.54H18.77a0.54,0.54 0,0 0,0.54 -0.54V12.58a0.35,0.35 0,0 1,0.35 -0.35H21.21A0.54,0.54 0,0 0,21.59 11.31ZM15,16.65a0.43,0.43 0,0 1,-0.43 0.43H9.5a0.43,0.43 0,0 1,-0.43 -0.43V12.66a0.43,0.43 0,0 1,0.43 -0.43H14.56a0.43,0.43 0,0 1,0.43 0.43Z"
|
|
||||||
/>
|
|
||||||
</vector>
|
|
||||||
@@ -145,8 +145,6 @@
|
|||||||
<string name="keys_missing_help">https://suyu-emu.org/help/quickstart/#dumping-decryption-keys</string>
|
<string name="keys_missing_help">https://suyu-emu.org/help/quickstart/#dumping-decryption-keys</string>
|
||||||
|
|
||||||
<!-- Applet launcher strings -->
|
<!-- Applet launcher strings -->
|
||||||
<string name="qlaunch_applet">Qlaunch</string>
|
|
||||||
<string name="qlaunch_description">Launch applications from the system home screen</string>
|
|
||||||
<string name="applets">Applet launcher</string>
|
<string name="applets">Applet launcher</string>
|
||||||
<string name="applets_description">Launch system applets using installed firmware</string>
|
<string name="applets_description">Launch system applets using installed firmware</string>
|
||||||
<string name="applets_error_firmware">Firmware not installed</string>
|
<string name="applets_error_firmware">Firmware not installed</string>
|
||||||
|
|||||||
@@ -11,8 +11,6 @@
|
|||||||
#include <dynarmic/frontend/A64/decoder/a64.h>
|
#include <dynarmic/frontend/A64/decoder/a64.h>
|
||||||
#include <dynarmic/frontend/imm.h>
|
#include <dynarmic/frontend/imm.h>
|
||||||
|
|
||||||
#include "common/common_types.h"
|
|
||||||
|
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|||||||
@@ -668,7 +668,7 @@ static bool ValidCryptoRevisionString(std::string_view base, size_t begin, size_
|
|||||||
|
|
||||||
void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys) {
|
void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys) {
|
||||||
if (!Common::FS::Exists(file_path)) {
|
if (!Common::FS::Exists(file_path)) {
|
||||||
LOG_ERROR(Crypto, "Cannot handle key file '{}': File not found",
|
LOG_ERROR(Crypto, "Failed to load key file at '{}': File not found",
|
||||||
file_path.generic_string());
|
file_path.generic_string());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -803,7 +803,8 @@ bool KeyManager::BaseDeriveNecessary() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Common::FS::Exists(suyu_keys_dir / "title.keys")) {
|
if (!Common::FS::Exists(suyu_keys_dir / "title.keys")) {
|
||||||
LOG_WARNING(Crypto, "Could not locate a title.keys file");
|
LOG_ERROR(Crypto, "No title.keys found");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_key_existence(S256KeyType::Header)) {
|
if (check_key_existence(S256KeyType::Header)) {
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr<Ap
|
|||||||
{30, nullptr, "GetHomeButtonReaderLockAccessor"},
|
{30, nullptr, "GetHomeButtonReaderLockAccessor"},
|
||||||
{31, D<&ICommonStateGetter::GetReaderLockAccessorEx>, "GetReaderLockAccessorEx"},
|
{31, D<&ICommonStateGetter::GetReaderLockAccessorEx>, "GetReaderLockAccessorEx"},
|
||||||
{32, D<&ICommonStateGetter::GetWriterLockAccessorEx>, "GetWriterLockAccessorEx"},
|
{32, D<&ICommonStateGetter::GetWriterLockAccessorEx>, "GetWriterLockAccessorEx"},
|
||||||
{40, D<&ICommonStateGetter::GetCradleFwVersion>, "GetCradleFwVersion"},
|
{40, nullptr, "GetCradleFwVersion"},
|
||||||
{50, D<&ICommonStateGetter::IsVrModeEnabled>, "IsVrModeEnabled"},
|
{50, D<&ICommonStateGetter::IsVrModeEnabled>, "IsVrModeEnabled"},
|
||||||
{51, D<&ICommonStateGetter::SetVrModeEnabled>, "SetVrModeEnabled"},
|
{51, D<&ICommonStateGetter::SetVrModeEnabled>, "SetVrModeEnabled"},
|
||||||
{52, D<&ICommonStateGetter::SetLcdBacklighOffEnabled>, "SetLcdBacklighOffEnabled"},
|
{52, D<&ICommonStateGetter::SetLcdBacklighOffEnabled>, "SetLcdBacklighOffEnabled"},
|
||||||
@@ -159,17 +159,6 @@ Result ICommonStateGetter::GetBootMode(Out<PM::SystemBootMode> out_boot_mode) {
|
|||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ICommonStateGetter::GetCradleFwVersion(OutArray<uint32_t, 4> out_version) {
|
|
||||||
LOG_DEBUG(Service_AM, "(STUBBED) called");
|
|
||||||
|
|
||||||
out_version[0] = 0;
|
|
||||||
out_version[1] = 0;
|
|
||||||
out_version[2] = 0;
|
|
||||||
out_version[3] = 0;
|
|
||||||
|
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Result ICommonStateGetter::IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled) {
|
Result ICommonStateGetter::IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled) {
|
||||||
LOG_DEBUG(Service_AM, "called");
|
LOG_DEBUG(Service_AM, "called");
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ private:
|
|||||||
Result GetOperationMode(Out<OperationMode> out_operation_mode);
|
Result GetOperationMode(Out<OperationMode> out_operation_mode);
|
||||||
Result GetPerformanceMode(Out<APM::PerformanceMode> out_performance_mode);
|
Result GetPerformanceMode(Out<APM::PerformanceMode> out_performance_mode);
|
||||||
Result GetBootMode(Out<PM::SystemBootMode> out_boot_mode);
|
Result GetBootMode(Out<PM::SystemBootMode> out_boot_mode);
|
||||||
Result GetCradleFwVersion(OutArray<uint32_t, 4> out_version);
|
|
||||||
Result IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled);
|
Result IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled);
|
||||||
Result SetVrModeEnabled(bool is_vr_mode_enabled);
|
Result SetVrModeEnabled(bool is_vr_mode_enabled);
|
||||||
Result SetLcdBacklighOffEnabled(bool is_lcd_backlight_off_enabled);
|
Result SetLcdBacklighOffEnabled(bool is_lcd_backlight_off_enabled);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
|
|||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
{0, nullptr, "RequestToEnterSleep"},
|
{0, nullptr, "RequestToEnterSleep"},
|
||||||
{1, nullptr, "EnterSleep"},
|
{1, nullptr, "EnterSleep"},
|
||||||
{2, D<&IGlobalStateController::StartSleepSequence>, "StartSleepSequence"},
|
{2, nullptr, "StartSleepSequence"},
|
||||||
{3, D<&IGlobalStateController::StartShutdownSequence>, "StartShutdownSequence"},
|
{3, D<&IGlobalStateController::StartShutdownSequence>, "StartShutdownSequence"},
|
||||||
{4, D<&IGlobalStateController::StartRebootSequence>, "StartRebootSequence"},
|
{4, D<&IGlobalStateController::StartRebootSequence>, "StartRebootSequence"},
|
||||||
{9, nullptr, "IsAutoPowerDownRequested"},
|
{9, nullptr, "IsAutoPowerDownRequested"},
|
||||||
@@ -31,13 +31,6 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
|
|||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
IGlobalStateController::~IGlobalStateController() = default;
|
|
||||||
|
|
||||||
Result IGlobalStateController::StartSleepSequence(u8 a) {
|
|
||||||
LOG_WARNING(Service_AM, "(STUBBED) called, a={}", a);
|
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Result IGlobalStateController::StartShutdownSequence() {
|
Result IGlobalStateController::StartShutdownSequence() {
|
||||||
LOG_INFO(Service_AM, "called");
|
LOG_INFO(Service_AM, "called");
|
||||||
system.Exit();
|
system.Exit();
|
||||||
@@ -50,6 +43,8 @@ Result IGlobalStateController::StartRebootSequence() {
|
|||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IGlobalStateController::~IGlobalStateController() = default;
|
||||||
|
|
||||||
Result IGlobalStateController::LoadAndApplyIdlePolicySettings() {
|
Result IGlobalStateController::LoadAndApplyIdlePolicySettings() {
|
||||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public:
|
|||||||
~IGlobalStateController() override;
|
~IGlobalStateController() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Result StartSleepSequence(u8 a);
|
|
||||||
Result StartShutdownSequence();
|
Result StartShutdownSequence();
|
||||||
Result StartRebootSequence();
|
Result StartRebootSequence();
|
||||||
Result LoadAndApplyIdlePolicySettings();
|
Result LoadAndApplyIdlePolicySettings();
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ IHomeMenuFunctions::IHomeMenuFunctions(Core::System& system_, std::shared_ptr<Ap
|
|||||||
{21, D<&IHomeMenuFunctions::GetPopFromGeneralChannelEvent>, "GetPopFromGeneralChannelEvent"},
|
{21, D<&IHomeMenuFunctions::GetPopFromGeneralChannelEvent>, "GetPopFromGeneralChannelEvent"},
|
||||||
{30, nullptr, "GetHomeButtonWriterLockAccessor"},
|
{30, nullptr, "GetHomeButtonWriterLockAccessor"},
|
||||||
{31, nullptr, "GetWriterLockAccessorEx"},
|
{31, nullptr, "GetWriterLockAccessorEx"},
|
||||||
{40, D<&IHomeMenuFunctions::IsSleepEnabled>, "IsSleepEnabled"},
|
{40, nullptr, "IsSleepEnabled"},
|
||||||
{41, D<&IHomeMenuFunctions::IsRebootEnabled>, "IsRebootEnabled"},
|
{41, D<&IHomeMenuFunctions::IsRebootEnabled>, "IsRebootEnabled"},
|
||||||
{50, nullptr, "LaunchSystemApplet"},
|
{50, nullptr, "LaunchSystemApplet"},
|
||||||
{51, nullptr, "LaunchStarter"},
|
{51, nullptr, "LaunchStarter"},
|
||||||
@@ -64,15 +64,9 @@ Result IHomeMenuFunctions::GetPopFromGeneralChannelEvent(
|
|||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result IHomeMenuFunctions::IsSleepEnabled(Out<bool> out_is_sleep_enabled) {
|
Result IHomeMenuFunctions::IsRebootEnabled(Out<bool> out_is_reboot_enbaled) {
|
||||||
LOG_INFO(Service_AM, "called");
|
LOG_INFO(Service_AM, "called");
|
||||||
*out_is_sleep_enabled = true;
|
*out_is_reboot_enbaled = true;
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Result IHomeMenuFunctions::IsRebootEnabled(Out<bool> out_is_reboot_enabled) {
|
|
||||||
LOG_INFO(Service_AM, "called");
|
|
||||||
*out_is_reboot_enabled = true;
|
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ private:
|
|||||||
Result LockForeground();
|
Result LockForeground();
|
||||||
Result UnlockForeground();
|
Result UnlockForeground();
|
||||||
Result GetPopFromGeneralChannelEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
Result GetPopFromGeneralChannelEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
||||||
Result IsSleepEnabled(Out<bool> out_is_sleep_enabled);
|
Result IsRebootEnabled(Out<bool> out_is_reboot_enbaled);
|
||||||
Result IsRebootEnabled(Out<bool> out_is_reboot_enabled);
|
|
||||||
Result IsForceTerminateApplicationDisabledForDebug(
|
Result IsForceTerminateApplicationDisabledForDebug(
|
||||||
Out<bool> out_is_force_terminate_application_disabled_for_debug);
|
Out<bool> out_is_force_terminate_application_disabled_for_debug);
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
|
|||||||
{24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"},
|
{24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"},
|
||||||
{25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"},
|
{25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"},
|
||||||
{26, nullptr, "FormatSdCardDryRun"},
|
{26, nullptr, "FormatSdCardDryRun"},
|
||||||
{27, D<&FSP_SRV::IsExFatSupported>, "IsExFatSupported"},
|
{27, nullptr, "IsExFatSupported"},
|
||||||
{28, nullptr, "DeleteSaveDataFileSystemBySaveDataAttribute"},
|
{28, nullptr, "DeleteSaveDataFileSystemBySaveDataAttribute"},
|
||||||
{30, nullptr, "OpenGameCardStorage"},
|
{30, nullptr, "OpenGameCardStorage"},
|
||||||
{31, nullptr, "OpenGameCardFileSystem"},
|
{31, nullptr, "OpenGameCardFileSystem"},
|
||||||
@@ -235,14 +235,6 @@ Result FSP_SRV::CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_crea
|
|||||||
save_struct));
|
save_struct));
|
||||||
}
|
}
|
||||||
|
|
||||||
Result FSP_SRV::IsExFatSupported(Out<bool> out_is_supported) {
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
|
||||||
|
|
||||||
*out_is_supported = true;
|
|
||||||
|
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Result FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId(
|
Result FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId(
|
||||||
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct) {
|
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct) {
|
||||||
LOG_DEBUG(Service_FS, "called save_struct = {}", save_struct.DebugInfo());
|
LOG_DEBUG(Service_FS, "called save_struct = {}", save_struct.DebugInfo());
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ private:
|
|||||||
Result OpenSdCardFileSystem(OutInterface<IFileSystem> out_interface);
|
Result OpenSdCardFileSystem(OutInterface<IFileSystem> out_interface);
|
||||||
Result CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_create_struct,
|
Result CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_create_struct,
|
||||||
FileSys::SaveDataAttribute save_struct, u128 uid);
|
FileSys::SaveDataAttribute save_struct, u128 uid);
|
||||||
Result IsExFatSupported(Out<bool> out_is_supported);
|
|
||||||
Result CreateSaveDataFileSystemBySystemSaveDataId(
|
Result CreateSaveDataFileSystemBySystemSaveDataId(
|
||||||
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct);
|
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct);
|
||||||
Result OpenSaveDataFileSystem(OutInterface<IFileSystem> out_interface,
|
Result OpenSaveDataFileSystem(OutInterface<IFileSystem> out_interface,
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ Result ISfMonitorService::Initialize(Out<u32> out_value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result ISfMonitorService::GetGroupInfo(
|
Result ISfMonitorService::GetGroupInfo(
|
||||||
GroupInfo in_group_info, OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
|
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
memcpy(out_group_info, &in_group_info, sizeof(GroupInfo));
|
*out_group_info = GroupInfo{};
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Result Initialize(Out<u32> out_value);
|
Result Initialize(Out<u32> out_value);
|
||||||
Result GetGroupInfo(GroupInfo in_group_info,
|
Result GetGroupInfo(OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
|
||||||
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::LDN
|
} // namespace Service::LDN
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ Result ISfServiceMonitor::Initialize(Out<u32> out_value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result ISfServiceMonitor::GetGroupInfo(
|
Result ISfServiceMonitor::GetGroupInfo(
|
||||||
GroupInfo in_group_info, OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
|
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
memcpy(out_group_info, &in_group_info, sizeof(GroupInfo));
|
*out_group_info = GroupInfo{};
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Result Initialize(Out<u32> out_value);
|
Result Initialize(Out<u32> out_value);
|
||||||
Result GetGroupInfo(GroupInfo in_group_info,
|
Result GetGroupInfo(OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
|
||||||
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::LDN
|
} // namespace Service::LDN
|
||||||
|
|||||||
@@ -507,7 +507,7 @@ void IGeneralService::GetCurrentIpConfigInfo(HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IGeneralService::IsWirelessCommunicationEnabled(HLERequestContext& ctx) {
|
void IGeneralService::IsWirelessCommunicationEnabled(HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_NIFM, "called");
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||||
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|||||||
@@ -509,13 +509,4 @@ struct TvSettings {
|
|||||||
};
|
};
|
||||||
static_assert(sizeof(TvSettings) == 0x20, "TvSettings is an invalid size");
|
static_assert(sizeof(TvSettings) == 0x20, "TvSettings is an invalid size");
|
||||||
|
|
||||||
/// This is nn::settings::system::RebootlessSystemUpdateVersion
|
|
||||||
struct RebootlessSystemUpdateVersion {
|
|
||||||
u32 version;
|
|
||||||
u8 reserved[0x1c];
|
|
||||||
char display_version[0x20];
|
|
||||||
};
|
|
||||||
static_assert(sizeof(RebootlessSystemUpdateVersion) == 0x40,
|
|
||||||
"RebootlessSystemUpdateVersion is an invalid size");
|
|
||||||
|
|
||||||
} // namespace Service::Set
|
} // namespace Service::Set
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_)
|
|||||||
{146, nullptr, "SetConsoleSixAxisSensorAngularVelocityTimeBias"},
|
{146, nullptr, "SetConsoleSixAxisSensorAngularVelocityTimeBias"},
|
||||||
{147, nullptr, "GetConsoleSixAxisSensorAngularAcceleration"},
|
{147, nullptr, "GetConsoleSixAxisSensorAngularAcceleration"},
|
||||||
{148, nullptr, "SetConsoleSixAxisSensorAngularAcceleration"},
|
{148, nullptr, "SetConsoleSixAxisSensorAngularAcceleration"},
|
||||||
{149, C<&ISystemSettingsServer::GetRebootlessSystemUpdateVersion>, "GetRebootlessSystemUpdateVersion"},
|
{149, nullptr, "GetRebootlessSystemUpdateVersion"},
|
||||||
{150, C<&ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime>, "GetDeviceTimeZoneLocationUpdatedTime"},
|
{150, C<&ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime>, "GetDeviceTimeZoneLocationUpdatedTime"},
|
||||||
{151, C<&ISystemSettingsServer::SetDeviceTimeZoneLocationUpdatedTime>, "SetDeviceTimeZoneLocationUpdatedTime"},
|
{151, C<&ISystemSettingsServer::SetDeviceTimeZoneLocationUpdatedTime>, "SetDeviceTimeZoneLocationUpdatedTime"},
|
||||||
{152, C<&ISystemSettingsServer::GetUserSystemClockAutomaticCorrectionUpdatedTime>, "GetUserSystemClockAutomaticCorrectionUpdatedTime"},
|
{152, C<&ISystemSettingsServer::GetUserSystemClockAutomaticCorrectionUpdatedTime>, "GetUserSystemClockAutomaticCorrectionUpdatedTime"},
|
||||||
@@ -1194,16 +1194,6 @@ Result ISystemSettingsServer::SetKeyboardLayout(KeyboardLayout keyboard_layout)
|
|||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ISystemSettingsServer::GetRebootlessSystemUpdateVersion(
|
|
||||||
Out<RebootlessSystemUpdateVersion> out_rebootless_system_update) {
|
|
||||||
LOG_INFO(Service_SET, "(STUBBED) called");
|
|
||||||
|
|
||||||
out_rebootless_system_update->version = 0;
|
|
||||||
strcpy(out_rebootless_system_update->display_version, "0.0.0");
|
|
||||||
|
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
Result ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime(
|
Result ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime(
|
||||||
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point) {
|
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point) {
|
||||||
LOG_INFO(Service_SET, "called");
|
LOG_INFO(Service_SET, "called");
|
||||||
|
|||||||
@@ -136,8 +136,6 @@ public:
|
|||||||
Result SetAppletLaunchFlags(u32 applet_launch_flag);
|
Result SetAppletLaunchFlags(u32 applet_launch_flag);
|
||||||
Result GetKeyboardLayout(Out<KeyboardLayout> out_keyboard_layout);
|
Result GetKeyboardLayout(Out<KeyboardLayout> out_keyboard_layout);
|
||||||
Result SetKeyboardLayout(KeyboardLayout keyboard_layout);
|
Result SetKeyboardLayout(KeyboardLayout keyboard_layout);
|
||||||
Result GetRebootlessSystemUpdateVersion(
|
|
||||||
Out<RebootlessSystemUpdateVersion> out_rebootless_system_update);
|
|
||||||
Result GetDeviceTimeZoneLocationUpdatedTime(
|
Result GetDeviceTimeZoneLocationUpdatedTime(
|
||||||
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point);
|
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point);
|
||||||
Result SetDeviceTimeZoneLocationUpdatedTime(
|
Result SetDeviceTimeZoneLocationUpdatedTime(
|
||||||
|
|||||||
@@ -55,6 +55,10 @@ AppLoader_NAX::LoadResult AppLoader_NAX::Load(Kernel::KProcess& process, Core::S
|
|||||||
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Core::Crypto::KeyManager::KeyFileExists(true)) {
|
||||||
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
|
}
|
||||||
|
|
||||||
return {ResultStatus::ErrorNAXInconvertibleToNCA, {}};
|
return {ResultStatus::ErrorNAXInconvertibleToNCA, {}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,10 @@ AppLoader_NSP::LoadResult AppLoader_NSP::Load(Kernel::KProcess& process, Core::S
|
|||||||
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Core::Crypto::KeyManager::KeyFileExists(true)) {
|
||||||
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
|
}
|
||||||
|
|
||||||
return {ResultStatus::ErrorNSPMissingProgramNCA, {}};
|
return {ResultStatus::ErrorNSPMissingProgramNCA, {}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,10 @@ AppLoader_XCI::LoadResult AppLoader_XCI::Load(Kernel::KProcess& process, Core::S
|
|||||||
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!xci->HasProgramNCA() && !Core::Crypto::KeyManager::KeyFileExists(true)) {
|
||||||
|
return {ResultStatus::ErrorMissingProductionKeyFile, {}};
|
||||||
|
}
|
||||||
|
|
||||||
const auto result = nca_loader->Load(process, system);
|
const auto result = nca_loader->Load(process, system);
|
||||||
if (result.first != ResultStatus::Success) {
|
if (result.first != ResultStatus::Success) {
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -1755,9 +1755,9 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
|
|||||||
if (!ContentManager::AreKeysPresent()) {
|
if (!ContentManager::AreKeysPresent()) {
|
||||||
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
||||||
tr("Encryption keys are missing. "
|
tr("Encryption keys are missing. "
|
||||||
"In order to use this emulator"
|
"You need to provide both your own title.keys "
|
||||||
"you need to provide your own encryption keys"
|
"and your own prod.keys "
|
||||||
"in order to play them."));
|
"in order to play games"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4630,9 +4630,9 @@ void GMainWindow::OnCheckFirmwareDecryption() {
|
|||||||
if (!ContentManager::AreKeysPresent()) {
|
if (!ContentManager::AreKeysPresent()) {
|
||||||
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
||||||
tr("Encryption keys are missing. "
|
tr("Encryption keys are missing. "
|
||||||
"In order to use this emulator"
|
"You need to provide both your own title.keys "
|
||||||
"you need to provide your own encryption keys"
|
"and your own prod.keys "
|
||||||
"in order to play them."));
|
"in order to play games"));
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFirmwareVersion();
|
SetFirmwareVersion();
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ if(LIBVA_FOUND)
|
|||||||
list(APPEND FFmpeg_LIBRARIES ${LIBVA_LIBRARIES})
|
list(APPEND FFmpeg_LIBRARIES ${LIBVA_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(sources
|
add_library(video_core STATIC
|
||||||
buffer_cache/buffer_base.h
|
buffer_cache/buffer_base.h
|
||||||
buffer_cache/buffer_cache_base.h
|
buffer_cache/buffer_cache_base.h
|
||||||
buffer_cache/buffer_cache.cpp
|
buffer_cache/buffer_cache.cpp
|
||||||
@@ -315,67 +315,6 @@ set(sources
|
|||||||
vulkan_common/vulkan.h
|
vulkan_common/vulkan.h
|
||||||
)
|
)
|
||||||
|
|
||||||
if (APPLE)
|
|
||||||
list(REMOVE_ITEM sources
|
|
||||||
renderer_opengl/present/filters.cpp
|
|
||||||
renderer_opengl/present/filters.h
|
|
||||||
renderer_opengl/present/fsr.cpp
|
|
||||||
renderer_opengl/present/fsr.h
|
|
||||||
renderer_opengl/present/fxaa.cpp
|
|
||||||
renderer_opengl/present/fxaa.h
|
|
||||||
renderer_opengl/present/layer.cpp
|
|
||||||
renderer_opengl/present/layer.h
|
|
||||||
renderer_opengl/present/present_uniforms.h
|
|
||||||
renderer_opengl/present/smaa.cpp
|
|
||||||
renderer_opengl/present/smaa.h
|
|
||||||
renderer_opengl/present/util.h
|
|
||||||
renderer_opengl/present/window_adapt_pass.cpp
|
|
||||||
renderer_opengl/present/window_adapt_pass.h
|
|
||||||
renderer_opengl/blit_image.cpp
|
|
||||||
renderer_opengl/blit_image.h
|
|
||||||
renderer_opengl/gl_blit_screen.cpp
|
|
||||||
renderer_opengl/gl_blit_screen.h
|
|
||||||
renderer_opengl/gl_buffer_cache_base.cpp
|
|
||||||
renderer_opengl/gl_buffer_cache.cpp
|
|
||||||
renderer_opengl/gl_buffer_cache.h
|
|
||||||
renderer_opengl/gl_compute_pipeline.cpp
|
|
||||||
renderer_opengl/gl_compute_pipeline.h
|
|
||||||
renderer_opengl/gl_device.cpp
|
|
||||||
renderer_opengl/gl_device.h
|
|
||||||
renderer_opengl/gl_fence_manager.cpp
|
|
||||||
renderer_opengl/gl_fence_manager.h
|
|
||||||
renderer_opengl/gl_graphics_pipeline.cpp
|
|
||||||
renderer_opengl/gl_graphics_pipeline.h
|
|
||||||
renderer_opengl/gl_rasterizer.cpp
|
|
||||||
renderer_opengl/gl_rasterizer.h
|
|
||||||
renderer_opengl/gl_resource_manager.cpp
|
|
||||||
renderer_opengl/gl_resource_manager.h
|
|
||||||
renderer_opengl/gl_shader_cache.cpp
|
|
||||||
renderer_opengl/gl_shader_cache.h
|
|
||||||
renderer_opengl/gl_shader_manager.cpp
|
|
||||||
renderer_opengl/gl_shader_manager.h
|
|
||||||
renderer_opengl/gl_shader_context.h
|
|
||||||
renderer_opengl/gl_shader_util.cpp
|
|
||||||
renderer_opengl/gl_shader_util.h
|
|
||||||
renderer_opengl/gl_state_tracker.cpp
|
|
||||||
renderer_opengl/gl_state_tracker.h
|
|
||||||
renderer_opengl/gl_staging_buffer_pool.cpp
|
|
||||||
renderer_opengl/gl_staging_buffer_pool.h
|
|
||||||
renderer_opengl/gl_texture_cache.cpp
|
|
||||||
renderer_opengl/gl_texture_cache.h
|
|
||||||
renderer_opengl/gl_texture_cache_base.cpp
|
|
||||||
renderer_opengl/gl_query_cache.cpp
|
|
||||||
renderer_opengl/gl_query_cache.h
|
|
||||||
renderer_opengl/maxwell_to_gl.h
|
|
||||||
renderer_opengl/renderer_opengl.cpp
|
|
||||||
renderer_opengl/renderer_opengl.h
|
|
||||||
renderer_opengl/util_shaders.cpp
|
|
||||||
renderer_opengl/util_shaders.h
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_library(video_core STATIC ${sources})
|
|
||||||
|
|
||||||
target_link_libraries(video_core PUBLIC common core)
|
target_link_libraries(video_core PUBLIC common core)
|
||||||
target_link_libraries(video_core PUBLIC glad shader_recompiler stb bc_decoder)
|
target_link_libraries(video_core PUBLIC glad shader_recompiler stb bc_decoder)
|
||||||
|
|
||||||
@@ -408,7 +347,7 @@ if (MSVC)
|
|||||||
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
|
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
if (APPLE OR ARCHITECTURE_arm64)
|
if (APPLE)
|
||||||
# error: declaration shadows a typedef in 'interval_base_set<SubType, DomainT, Compare, Interval, Alloc>'
|
# error: declaration shadows a typedef in 'interval_base_set<SubType, DomainT, Compare, Interval, Alloc>'
|
||||||
# error: implicit conversion loses integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char')
|
# error: implicit conversion loses integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char')
|
||||||
target_compile_options(video_core PRIVATE -Wno-shadow -Wno-unused-local-typedef)
|
target_compile_options(video_core PRIVATE -Wno-shadow -Wno-unused-local-typedef)
|
||||||
|
|||||||
@@ -21,15 +21,9 @@ std::unique_ptr<VideoCore::RendererBase> CreateRenderer(
|
|||||||
auto& device_memory = system.Host1x().MemoryManager();
|
auto& device_memory = system.Host1x().MemoryManager();
|
||||||
|
|
||||||
switch (Settings::values.renderer_backend.GetValue()) {
|
switch (Settings::values.renderer_backend.GetValue()) {
|
||||||
#ifdef __APPLE__
|
|
||||||
// do nothing for now, include metal in here at later date.
|
|
||||||
#else
|
|
||||||
// openGL, not supported on Apple so not bothering to include if macos
|
|
||||||
case Settings::RendererBackend::OpenGL:
|
case Settings::RendererBackend::OpenGL:
|
||||||
return std::make_unique<OpenGL::RendererOpenGL>(emu_window, device_memory, gpu,
|
return std::make_unique<OpenGL::RendererOpenGL>(emu_window, device_memory, gpu,
|
||||||
std::move(context));
|
std::move(context));
|
||||||
#endif
|
|
||||||
// common renderers
|
|
||||||
case Settings::RendererBackend::Vulkan:
|
case Settings::RendererBackend::Vulkan:
|
||||||
return std::make_unique<Vulkan::RendererVulkan>(emu_window, device_memory, gpu,
|
return std::make_unique<Vulkan::RendererVulkan>(emu_window, device_memory, gpu,
|
||||||
std::move(context));
|
std::move(context));
|
||||||
|
|||||||
@@ -15,11 +15,7 @@
|
|||||||
#define VK_USE_PLATFORM_WAYLAND_KHR
|
#define VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
#include <MoltenVK/mvk_vulkan.h>
|
|
||||||
#else
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
// Sanitize macros
|
// Sanitize macros
|
||||||
#undef CreateEvent
|
#undef CreateEvent
|
||||||
|
|||||||
@@ -1364,7 +1364,6 @@ void Device::CollectToolingInfo() {
|
|||||||
LOG_INFO(Render_Vulkan, "Attached debugging tool: {}", name);
|
LOG_INFO(Render_Vulkan, "Attached debugging tool: {}", name);
|
||||||
has_renderdoc = has_renderdoc || name == "RenderDoc";
|
has_renderdoc = has_renderdoc || name == "RenderDoc";
|
||||||
has_nsight_graphics = has_nsight_graphics || name == "NVIDIA Nsight Graphics";
|
has_nsight_graphics = has_nsight_graphics || name == "NVIDIA Nsight Graphics";
|
||||||
has_radeon_gpu_profiler = has_radeon_gpu_profiler || name == "Radeon GPU Profiler";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -592,7 +592,7 @@ public:
|
|||||||
|
|
||||||
/// Returns true when a known debugging tool is attached.
|
/// Returns true when a known debugging tool is attached.
|
||||||
bool HasDebuggingToolAttached() const {
|
bool HasDebuggingToolAttached() const {
|
||||||
return has_renderdoc || has_nsight_graphics || has_radeon_gpu_profiler;
|
return has_renderdoc || has_nsight_graphics;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @returns True if compute pipelines can cause crashing.
|
/// @returns True if compute pipelines can cause crashing.
|
||||||
@@ -821,7 +821,6 @@ private:
|
|||||||
bool has_broken_parallel_compiling{}; ///< Has broken parallel shader compiling.
|
bool has_broken_parallel_compiling{}; ///< Has broken parallel shader compiling.
|
||||||
bool has_renderdoc{}; ///< Has RenderDoc attached
|
bool has_renderdoc{}; ///< Has RenderDoc attached
|
||||||
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
|
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
|
||||||
bool has_radeon_gpu_profiler{}; ///< Has Radeon GPU Profiler attached.
|
|
||||||
bool supports_d24_depth{}; ///< Supports D24 depth buffers.
|
bool supports_d24_depth{}; ///< Supports D24 depth buffers.
|
||||||
bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting.
|
bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting.
|
||||||
bool must_emulate_scaled_formats{}; ///< Requires scaled vertex format emulation
|
bool must_emulate_scaled_formats{}; ///< Requires scaled vertex format emulation
|
||||||
|
|||||||
Reference in New Issue
Block a user