0
0
mirror of https://github.com/Ishan09811/pine.git synced 2025-04-24 08:55:10 +00:00

Implement JIT Fastmem option

This commit is contained in:
Ishan09811 2024-07-24 20:21:13 +05:30 committed by GitHub
parent b3aec03fe4
commit 7ddd9b6384
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 22 additions and 5 deletions

View File

@ -50,7 +50,7 @@ namespace skyline {
enableFastGpuReadbackHack = ktSettings.GetBool("enableFastGpuReadbackHack");
enableFastReadbackWrites = ktSettings.GetBool("enableFastReadbackWrites");
disableSubgroupShuffle = ktSettings.GetBool("disableSubgroupShuffle");
isAudioOutputDisabled = ktSettings.GetBool("isAudioOutputDisabled");
enableJitFastmem = ktSettings.GetBool("enableJitFastmem");
logLevel = ktSettings.GetInt<skyline::AsyncLogger::LogLevel>("logLevel");
validationLayer = ktSettings.GetBool("validationLayer");
};

View File

@ -73,6 +73,9 @@ namespace skyline {
Setting<bool> disableFrameThrottling; //!< Allow the guest to submit frames without any blocking calls
Setting<bool> disableShaderCache; //!< Prevents cached shaders from being loaded and disables caching of new shaders
// CPU
Setting<bool> enableJitFastmem;
// GPU
Setting<std::string> gpuDriver; //!< The label of the GPU driver to use
Setting<std::string> gpuDriverLibraryName; //!< The name of the GPU driver library to use

View File

@ -29,8 +29,8 @@ namespace skyline::jit {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
config.unsafe_optimizations = true;
config.fastmem_pointer = state.process->memory.base.data();
config.fastmem_exclusive_access = true;
config.fastmem_pointer = *state.settings->enableJitFastmem ? state.process->memory.base.data() : nullptr;
config.fastmem_exclusive_access = *state.settings->enableJitFastmem;
config.define_unpredictable_behaviour = true;

View File

@ -45,6 +45,7 @@ class EmulationSettings private constructor(context : Context, prefName : String
// CPU
var cpuBackend by sharedPreferences(context, 0, prefName = prefName)
var enableJitFastmem by sharedPreferences(context, false, prefName = prefName)
// GPU
var gpuDriver by sharedPreferences(context, SYSTEM_GPU_DRIVER, prefName = prefName)

View File

@ -24,6 +24,9 @@ data class NativeSettings(
var systemRegion : Int,
var isInternetEnabled : Boolean,
// CPU
var enableJitFastmem : Boolean,
// GPU
var gpuDriver : String,
var gpuDriverLibraryName : String,
@ -52,6 +55,7 @@ data class NativeSettings(
pref.systemLanguage,
pref.systemRegion,
pref.isInternetEnabled,
pref.enableJitFastmem,
if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else pref.gpuDriver,
if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else GpuDriverHelper.getLibraryName(context, pref.gpuDriver),
pref.forceTripleBuffering,

View File

@ -89,7 +89,7 @@
</string-array>
<string-array name="cpu_backends">
<item>Native code execution (NCE)</item>
<item>Dynarmic</item>
<item>Dynarmic (32Bit)</item>
</string-array>
<string-array name="audio_sinks">
<item>Auto</item>

View File

@ -131,6 +131,9 @@
<!-- Settings - CPU -->
<string name="cpu">CPU</string>
<string name="cpu_backend">CPU backend</string>
<string name="enable_jit_fastmem">Enable JIT Fastmem</string>
<string name="enable_jit_fastmem_disabled">JIT fastmem is disabled</string>
<string name="enable_jit_fastmem_enabled"> JIT fastmem is enabled</string>
<!-- Settings - GPU -->
<string name="gpu">GPU</string>
<string name="gpu_driver_config">GPU Driver Configuration</string>

View File

@ -105,13 +105,19 @@
app:key="cpu_backend"
app:title="@string/cpu_backend"
app:useSimpleSummaryProvider="true" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:summaryOff="enable_jit_fastmem_disabled"
android:summaryOn="enable_jit_fastmem_enabled"
app:key="enable_jit_fastmem"
app:title="@string/enable_jit_fastmem" />
</PreferenceCategory>
<PreferenceCategory
android:key="category_gpu"
android:title="@string/gpu">
<emu.skyline.preference.GpuDriverPreference
app:key="gpu_driver"
app:title="@string/gpu_driver_config" />
app:title="@sstring/gpu_driver_config" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:summaryOff="@string/triple_buffering_disabled"