Call all flush callbacks prior to CommandExecutor submission

The flush callbacks inside `CommandExecutor` weren't being called prior to submission as they should've been, this fixes that by calling them. It additionally removes the requirement to manually flush Maxwell3D at the end of `ChannelGpfifo` pushbuffers as it's a flush callback and will automatically be called by `Submit`.

Co-authored-by: Billy Laws <blaws05@gmail.com>
This commit is contained in:
PixelyIon 2022-07-07 17:52:57 +05:30
parent e65707cd9d
commit ffaefc82d3
No known key found for this signature in database
GPG Key ID: 11BC6C3201BC2C05
2 changed files with 6 additions and 1 deletions

View File

@ -316,6 +316,9 @@ namespace skyline::gpu::interconnect {
} }
void CommandExecutor::Submit() { void CommandExecutor::Submit() {
for (const auto &callback : flushCallbacks)
callback();
if (!nodes.empty()) { if (!nodes.empty()) {
TRACE_EVENT("gpu", "CommandExecutor::Submit"); TRACE_EVENT("gpu", "CommandExecutor::Submit");
SubmitInternal(); SubmitInternal();
@ -330,6 +333,9 @@ namespace skyline::gpu::interconnect {
} }
void CommandExecutor::SubmitWithFlush() { void CommandExecutor::SubmitWithFlush() {
for (const auto &callback : flushCallbacks)
callback();
if (!nodes.empty()) { if (!nodes.empty()) {
TRACE_EVENT("gpu", "CommandExecutor::SubmitWithFlush"); TRACE_EVENT("gpu", "CommandExecutor::SubmitWithFlush");
SubmitInternal(); SubmitInternal();

View File

@ -336,7 +336,6 @@ namespace skyline::soc::gm20b {
break; break;
} }
channelCtx.maxwell3D->FlushEngineState();
channelCtx.executor.Submit(); channelCtx.executor.Submit();
} }