diff --git a/README.md b/README.md index bec47682..b343d461 100644 --- a/README.md +++ b/README.md @@ -58,10 +58,9 @@ I'd appreciate if someone is willing to contribute. But if you are releasing som - This is where floating point performance maxed out. - ≥ 2193 MHz will _ENABLE OVERVOLTING_. - - GPU: 1497 MHz @ 1170 mV (overvolting from 1050 mV) - - Not tested. Not sure if it has any benefit over 1267 MHz. GPU (OpenGL) benchmark is required. - - ≥ 1344 MHz _cannot be set without official chargers_. - - ≥ 1420 MHz will _ENABLE OVERVOLTING_. + - GPU: 1305 MHz (no overvolting, less than official threshold 1050 mV) + - Tested with deko3d compute shaders converted from [Maxwell SASS assembly](https://gist.github.com/KazushiMe/82b6bd89621f451b51c9b1ccd2202b97). Single-precision floating point (FP32 FFMA) performance maxes out at 1305 MHz. + - 1305 MHz CANNOT be set without charger connected. - DRAM: Overvolting - [Use this to set DRAM bus voltage](https://gist.github.com/KazushiMe/6bb0fcbefe0e03b1274079522516d56d). diff --git a/Source/Atmosphere/stratosphere/loader/source/ldr_oc_patch.hpp b/Source/Atmosphere/stratosphere/loader/source/ldr_oc_patch.hpp index 8a234d46..7c097e93 100644 --- a/Source/Atmosphere/stratosphere/loader/source/ldr_oc_patch.hpp +++ b/Source/Atmosphere/stratosphere/loader/source/ldr_oc_patch.hpp @@ -94,12 +94,12 @@ namespace pcv { constexpr u32 NewMaxCpuClock = 2397000; /* GPU */ - constexpr u32 GpuVoltageLimitOffsets[] = { - // 0xE3044, - // 0xF1E94, - 0xF1EE4, - }; - constexpr u32 NewGpuVoltageLimit = 1170; // default max 1050mV + // constexpr u32 GpuVoltageLimitOffsets[] = { + // // 0xE3044, + // // 0xF1E94, + // 0xF1EE4, + // }; + // constexpr u32 NewGpuVoltageLimit = 1170; // default max 1050mV constexpr u32 GpuTablesFreeSpace[] = { // 0xE3410, @@ -120,13 +120,7 @@ namespace pcv { // { 1152000, {}, { 1204812, -9908, -830, 0, 1469, 110 } }, // { 1228800, {}, { 1277303, -11675, -859, 0, 3722, 313 } }, // { 1267200, {}, { 1335531, -12567, -867, 0, 3681, 559 } }, - { 1305600, {}, { 955000 } }, - { 1344000, {}, { 990000 } }, - { 1382400, {}, { 1030000 } }, - { 1420800, {}, { 1075000 } }, - { 1459200, {}, { 1120000 } }, - { 1497600, {}, { 1170000 } }, - // { 1536000, {}, { 1250000 } }, + { 1305600, {}, { 1374130, -13725, -859, 0, 4442, 576 } }, }; static_assert(sizeof(NewGpuTables) <= sizeof(gpu_cvb_pll_table_t)*15); diff --git a/Source/Atmosphere/stratosphere/loader/source/ldr_patcher.cpp b/Source/Atmosphere/stratosphere/loader/source/ldr_patcher.cpp index d787d1f0..cb06823f 100644 --- a/Source/Atmosphere/stratosphere/loader/source/ldr_patcher.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/ldr_patcher.cpp @@ -176,9 +176,6 @@ namespace ams::ldr { std::memcpy(reinterpret_cast(mapped_nso + pcv::CpuVoltageOldTableCoeff[i][j]), &pcv::NewCpuVoltageScaled, sizeof(pcv::NewCpuVoltageScaled)); } - /* Patch max GPU voltage on Mariko */ - std::memcpy(reinterpret_cast(mapped_nso + pcv::GpuVoltageLimitOffsets[i]), &pcv::NewGpuVoltageLimit, sizeof(pcv::NewGpuVoltageLimit)); - for (u32 j = 0; j < sizeof(pcv::MtcTable_1600[i])/sizeof(u32); j++) { pcv::MarikoMtcTable* mtc_table_new = reinterpret_cast(mapped_nso + pcv::MtcTable_1600[i][j]); pcv::MarikoMtcTable* mtc_table_old = reinterpret_cast(mapped_nso + pcv::MtcTable_1600[i][j] - pcv::MtcTableOffset); diff --git a/Source/sys-clk-OC/README.md b/Source/sys-clk-OC/README.md index 5c116876..4d8a00b3 100644 --- a/Source/sys-clk-OC/README.md +++ b/Source/sys-clk-OC/README.md @@ -28,13 +28,7 @@ Switch sysmodule allowing you to set cpu/gpu clocks according to the running app ### GPU clocks -* 1??? → unknown max for Mariko -* 1497 -* 1459 -* 1420 -* 1382 -* 1344 -* 1305 +* 1305 → OC max for Mariko * 1267 → official max for Mariko * 1228 * 1152 @@ -55,7 +49,7 @@ Switch sysmodule allowing you to set cpu/gpu clocks according to the running app ### MEM clocks -**Only 1331 and Max could be set in sys-clk-OC.** +**Only 1600 and Max could be set in sys-clk-OC.** From Hekate Minerva module [sys_sdrammtc.c](https://github.com/CTCaer/hekate/blob/197ed8c319bd4132e4d7571ce037d4a27f806bba/modules/hekate_libsys_minerva/sys_sdrammtc.c#L67) diff --git a/Source/sys-clk-OC/common/src/clock_table.c b/Source/sys-clk-OC/common/src/clock_table.c index be3962f5..bf63a7f2 100644 --- a/Source/sys-clk-OC/common/src/clock_table.c +++ b/Source/sys-clk-OC/common/src/clock_table.c @@ -70,11 +70,5 @@ uint32_t sysclk_g_freq_table_gpu_hz[] = { 1228800000, 1267200000, 1305600000, - 1344000000, - 1382400000, - 1420800000, - 1459200000, - 1497600000, - // 1536000000, 0, };