Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion core/libs/prx/libSceAgcDriver/Execution/src/Pm4.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "prx/libSceAgcDriver/Execution/include/Pm4.hpp"
#include "prx/libSceAgcDriver/Execution/include/GuestMemory.hpp"
#include "prx/libc/include/General.hpp"
#include "prx/libc/include/PreciseWait.hpp"
#include <algorithm>
#include <thread>
#include <chrono>
Expand Down Expand Up @@ -811,7 +812,7 @@ void Execute(std::span<const std::uint32_t> packet, QueueState& queue) {
const auto start = std::chrono::steady_clock::now();
bool warned = false;
while (!WaitSatisfied(packet)) {
std::this_thread::sleep_for(std::chrono::microseconds(50));
PreciseSleepUs(50);
if (!warned && std::chrono::steady_clock::now() - start > std::chrono::seconds(5)) {
warned = true;
std::fprintf(stderr, "[gpu] WAIT_REG_MEM at 0x%llx still waiting after 5s (function %u ref 0x%x mask 0x%x)\n",
Expand Down
3 changes: 2 additions & 1 deletion core/libs/prx/libSceFont/src/State.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <unordered_map>
#include <unordered_set>

#include "prx/libc/include/PreciseWait.hpp"
#include "prx/libSceFont/include/FontInternal.hpp"

namespace {
Expand Down Expand Up @@ -56,7 +57,7 @@ Font::FontState::~FontState() {
}

void Font::Backoff() {
std::this_thread::sleep_for(std::chrono::microseconds(30));
PreciseSleepUs(30);
}

std::uint32_t Font::AcquireWordLock(std::uint32_t& word) {
Expand Down
5 changes: 3 additions & 2 deletions core/libs/prx/libkernel/Aio/src/Aio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <thread>
#include "SceTypes.hpp"
#include "prx/libc/include/General.hpp"
#include "prx/libc/include/PreciseWait.hpp"
#include "prx/libc/include/GuestArena.hpp"
#include "prx/libkernel/KernelErrors.hpp"

Expand Down Expand Up @@ -277,7 +278,7 @@ int APS5_VABI sceKernelAioWaitRequests(int32_t* id, int32_t num, int32_t* state,
const auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now() - start).count();
if (elapsed > static_cast<std::int64_t>(*usec)) return SCE_KERNEL_ERROR_ETIMEDOUT;
}
std::this_thread::sleep_for(std::chrono::microseconds(10));
PreciseSleepUs(10);
}
}

Expand All @@ -302,7 +303,7 @@ int APS5_VABI sceKernelAioWaitRequest(int32_t id, int32_t* state, uint32_t* usec
return SCE_KERNEL_ERROR_ETIMEDOUT;
}
}
std::this_thread::sleep_for(std::chrono::microseconds(10));
PreciseSleepUs(10);
}
}

Expand Down
3 changes: 2 additions & 1 deletion core/libs/prx/libkernel/Apr/src/Apr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include <cstddef>
#include "SceTypes.hpp"
#include "prx/libc/include/General.hpp"
#include "prx/libc/include/PreciseWait.hpp"
#include "prx/libc/include/GuestArena.hpp"
#include "prx/libkernel/Apr/include/AprCommandBuffer.hpp"
#include "prx/libkernel/DirectMemory/DirectMemory.hpp"
Expand Down Expand Up @@ -585,7 +586,7 @@ void _execute(const Apr::CommandBufferObject& buffer) {
return std::atomic_ref<std::uint64_t>(*reinterpret_cast<std::uint64_t*>(command.address)).load(std::memory_order_acquire);
};
const std::uint64_t reference = (command.reference & command.mask) << unused;
while (!_waitSatisfied(command.compare, (current() & command.mask) << unused, reference)) std::this_thread::sleep_for(std::chrono::microseconds(50));
while (!_waitSatisfied(command.compare, (current() & command.mask) << unused, reference)) PreciseSleepUs(50);
break;
}
case Apr::Opcode::WriteKernelEventQueue: {
Expand Down
Loading