sysclk: fix resolution driver again
This commit is contained in:
@@ -623,15 +623,15 @@ void ClockManager::HandleGovernor(uint32_t targetHz) {
|
|||||||
isVRREnabled = newVrrGovernorState;
|
isVRREnabled = newVrrGovernorState;
|
||||||
|
|
||||||
if(newCpuGovernorState == false && lastCpuGovernorState == true) {
|
if(newCpuGovernorState == false && lastCpuGovernorState == true) {
|
||||||
svcSleepThread(50'000'000); // thread syncing. probably a cleaner way to do this but hey, it works!
|
svcSleepThread(100'000'000); // thread syncing. probably a cleaner way to do this but hey, it works!
|
||||||
Board::ResetToStockCpu();
|
Board::ResetToStockCpu();
|
||||||
}
|
}
|
||||||
if(newGpuGovernorState == false && lastGpuGovernorState == true) {
|
if(newGpuGovernorState == false && lastGpuGovernorState == true) {
|
||||||
svcSleepThread(50'000'000);
|
svcSleepThread(100'000'000);
|
||||||
Board::ResetToStockGpu();
|
Board::ResetToStockGpu();
|
||||||
}
|
}
|
||||||
if (newVrrGovernorState == false && lastVrrGovernorState == true) {
|
if (newVrrGovernorState == false && lastVrrGovernorState == true) {
|
||||||
svcSleepThread(50'000'000);
|
svcSleepThread(100'000'000);
|
||||||
Board::ResetToStockDisplay();
|
Board::ResetToStockDisplay();
|
||||||
}
|
}
|
||||||
if(newCpuGovernorState != lastCpuGovernorState || newGpuGovernorState != lastGpuGovernorState || newVrrGovernorState != lastVrrGovernorState) {
|
if(newCpuGovernorState != lastCpuGovernorState || newGpuGovernorState != lastGpuGovernorState || newVrrGovernorState != lastVrrGovernorState) {
|
||||||
|
|||||||
@@ -110,19 +110,6 @@ u8 SaltyNXIntegration::GetFPS() {
|
|||||||
return NxFps ? NxFps->FPS : 254;
|
return NxFps ? NxFps->FPS : 254;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct resolutionCalls { // classes are bad :)
|
|
||||||
uint16_t width;
|
|
||||||
uint16_t height;
|
|
||||||
uint16_t calls;
|
|
||||||
};
|
|
||||||
|
|
||||||
resolutionCalls m_resolutionRenderCalls[8] = {0};
|
|
||||||
|
|
||||||
int compare (const void* elem1, const void* elem2) {
|
|
||||||
if ((((resolutionCalls*)(elem1))->calls) > (((resolutionCalls*)(elem2))->calls)) return -1;
|
|
||||||
else return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
u16 SaltyNXIntegration::GetResolutionHeight() {
|
u16 SaltyNXIntegration::GetResolutionHeight() {
|
||||||
if (!SharedMemoryUsed)
|
if (!SharedMemoryUsed)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -141,13 +128,10 @@ u16 SaltyNXIntegration::GetResolutionHeight() {
|
|||||||
searchSharedMemoryBlock(base);
|
searchSharedMemoryBlock(base);
|
||||||
}
|
}
|
||||||
if(NxFps) {
|
if(NxFps) {
|
||||||
NxFps -> renderCalls[0].calls = 0xFFFF;
|
NxFps->renderCalls[0].calls = 0xFFFF;
|
||||||
svcSleepThread(10*1000);
|
svcSleepThread(10*1000);
|
||||||
|
|
||||||
memcpy(&m_resolutionRenderCalls, &(NxFps->renderCalls), sizeof(m_resolutionRenderCalls));
|
return NxFps->renderCalls[0].height == 0 ? NxFps->viewportCalls[0].height : NxFps->renderCalls[0].height;
|
||||||
qsort(m_resolutionRenderCalls, 8, sizeof(resolutionCalls), compare);
|
|
||||||
|
|
||||||
return NxFps->viewportCalls[0].height;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user