mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-25 19:44:57 +00:00
to ensure that we're not unlocking submits too early
This commit is contained in:
parent
8f9436080e
commit
fcea53820b
@ -1455,6 +1455,7 @@ int PS4_SYSV_ABI sceGnmSubmitDone() {
|
|||||||
if (!liverpool->IsGpuIdle()) {
|
if (!liverpool->IsGpuIdle()) {
|
||||||
submission_lock = true;
|
submission_lock = true;
|
||||||
}
|
}
|
||||||
|
liverpool->NotifySubmitDone();
|
||||||
return ORBIS_OK;
|
return ORBIS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,11 @@ void Liverpool::Process(std::stop_token stoken) {
|
|||||||
--num_submits;
|
--num_submits;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
num_submits.notify_all();
|
|
||||||
|
if (submit_done) {
|
||||||
|
num_submits.notify_all();
|
||||||
|
submit_done = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -777,6 +777,10 @@ public:
|
|||||||
return num_submits == 0;
|
return num_submits == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NotifySubmitDone() {
|
||||||
|
submit_done = true;
|
||||||
|
}
|
||||||
|
|
||||||
void BindRasterizer(Vulkan::Rasterizer* rasterizer_) {
|
void BindRasterizer(Vulkan::Rasterizer* rasterizer_) {
|
||||||
rasterizer = rasterizer_;
|
rasterizer = rasterizer_;
|
||||||
}
|
}
|
||||||
@ -841,6 +845,7 @@ private:
|
|||||||
Vulkan::Rasterizer* rasterizer{};
|
Vulkan::Rasterizer* rasterizer{};
|
||||||
std::jthread process_thread{};
|
std::jthread process_thread{};
|
||||||
std::atomic<u32> num_submits{};
|
std::atomic<u32> num_submits{};
|
||||||
|
std::atomic<bool> submit_done{};
|
||||||
};
|
};
|
||||||
|
|
||||||
static_assert(GFX6_3D_REG_INDEX(ps_program) == 0x2C08);
|
static_assert(GFX6_3D_REG_INDEX(ps_program) == 0x2C08);
|
||||||
|
Loading…
Reference in New Issue
Block a user