Sync GPU state after loading (fix FE terrain bug)
This commit is contained in:
parent
7b3a8e9bf5
commit
a210e7e2bd
|
@ -44,6 +44,7 @@
|
||||||
#include "core/rpc/rpc_server.h"
|
#include "core/rpc/rpc_server.h"
|
||||||
#include "core/settings.h"
|
#include "core/settings.h"
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
|
#include "video_core/renderer_base.h"
|
||||||
#include "video_core/video_core.h"
|
#include "video_core/video_core.h"
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
@ -586,6 +587,7 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
Service::GSP::SetGlobalModule(*this);
|
Service::GSP::SetGlobalModule(*this);
|
||||||
memory->SetDSP(*dsp_core);
|
memory->SetDSP(*dsp_core);
|
||||||
cheat_engine->Connect();
|
cheat_engine->Connect();
|
||||||
|
VideoCore::g_renderer->Sync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,5 +87,7 @@ public:
|
||||||
|
|
||||||
virtual void LoadDiskResources(const std::atomic_bool& stop_loading,
|
virtual void LoadDiskResources(const std::atomic_bool& stop_loading,
|
||||||
const DiskResourceLoadCallback& callback) {}
|
const DiskResourceLoadCallback& callback) {}
|
||||||
|
|
||||||
|
virtual void SyncEntireState() {}
|
||||||
};
|
};
|
||||||
} // namespace VideoCore
|
} // namespace VideoCore
|
||||||
|
|
|
@ -28,3 +28,7 @@ void RendererBase::RefreshRasterizerSetting() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RendererBase::Sync() {
|
||||||
|
rasterizer->SyncEntireState();
|
||||||
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void RefreshRasterizerSetting();
|
void RefreshRasterizerSetting();
|
||||||
|
void Sync();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
|
Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
|
||||||
|
|
|
@ -61,6 +61,9 @@ public:
|
||||||
u32 pixel_stride, ScreenInfo& screen_info) override;
|
u32 pixel_stride, ScreenInfo& screen_info) override;
|
||||||
bool AccelerateDrawBatch(bool is_indexed) override;
|
bool AccelerateDrawBatch(bool is_indexed) override;
|
||||||
|
|
||||||
|
/// Syncs entire status to match PICA registers
|
||||||
|
void SyncEntireState() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct SamplerInfo {
|
struct SamplerInfo {
|
||||||
using TextureConfig = Pica::TexturingRegs::TextureConfig;
|
using TextureConfig = Pica::TexturingRegs::TextureConfig;
|
||||||
|
@ -132,9 +135,6 @@ private:
|
||||||
GLvec3 view;
|
GLvec3 view;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Syncs entire status to match PICA registers
|
|
||||||
void SyncEntireState();
|
|
||||||
|
|
||||||
/// Syncs the clip enabled status to match the PICA register
|
/// Syncs the clip enabled status to match the PICA register
|
||||||
void SyncClipEnabled();
|
void SyncClipEnabled();
|
||||||
|
|
||||||
|
|
Reference in New Issue