Make sure UpdateCmdInfo is called "in sync" with settings changes. Fixes #9438.

(well, at least the software skinning part. not sure if there are more).
This commit is contained in:
Henrik Rydgård 2017-03-17 10:48:43 +01:00
parent 17a250df7a
commit 20f9ae3114
6 changed files with 20 additions and 3 deletions

View File

@ -297,6 +297,11 @@ void GPU_D3D11::DumpNextFrame() {
dumpNextFrame_ = true;
}
void GPU_D3D11::BeginHostFrame() {
GPUCommon::BeginHostFrame();
UpdateCmdInfo();
}
void GPU_D3D11::BeginFrame() {
ScheduleEvent(GPU_EVENT_BEGIN_FRAME);
gstate_c.Dirty(DIRTY_PROJTHROUGHMATRIX);
@ -315,7 +320,6 @@ void GPU_D3D11::EndHostFrame() {
void GPU_D3D11::BeginFrameInternal() {
if (resized_) {
UpdateCmdInfo();
drawEngine_.Resized();
textureCacheD3D11_->NotifyConfigChanged();
resized_ = false;

View File

@ -86,6 +86,7 @@ public:
std::vector<std::string> DebugGetShaderIDs(DebugShaderType shader) override;
std::string DebugGetShaderString(std::string id, DebugShaderType shader, DebugShaderStringType stringType) override;
void BeginHostFrame() override;
void EndHostFrame() override;
protected:

View File

@ -264,6 +264,11 @@ void GPU_DX9::DumpNextFrame() {
dumpNextFrame_ = true;
}
void GPU_DX9::BeginHostFrame() {
GPUCommon::BeginHostFrame();
UpdateCmdInfo();
}
void GPU_DX9::BeginFrame() {
ScheduleEvent(GPU_EVENT_BEGIN_FRAME);
}
@ -275,7 +280,6 @@ void GPU_DX9::ReapplyGfxStateInternal() {
void GPU_DX9::BeginFrameInternal() {
if (resized_) {
UpdateCmdInfo();
drawEngine_.Resized();
textureCacheDX9_->NotifyConfigChanged();
resized_ = false;

View File

@ -87,6 +87,8 @@ public:
std::vector<std::string> DebugGetShaderIDs(DebugShaderType shader) override;
std::string DebugGetShaderString(std::string id, DebugShaderType shader, DebugShaderStringType stringType) override;
void BeginHostFrame() override;
protected:
void FastRunLoop(DisplayList &list) override;
void FinishDeferred() override;

View File

@ -423,6 +423,11 @@ void GPU_GLES::DumpNextFrame() {
dumpNextFrame_ = true;
}
void GPU_GLES::BeginHostFrame() {
GPUCommon::BeginHostFrame();
UpdateCmdInfo();
}
void GPU_GLES::BeginFrame() {
ScheduleEvent(GPU_EVENT_BEGIN_FRAME);
}
@ -473,7 +478,6 @@ void GPU_GLES::ReapplyGfxStateInternal() {
void GPU_GLES::BeginFrameInternal() {
if (resized_) {
CheckGPUFeatures();
UpdateCmdInfo();
drawEngine_.Resized();
textureCacheGL_->NotifyConfigChanged();
}

View File

@ -91,6 +91,8 @@ public:
std::vector<std::string> DebugGetShaderIDs(DebugShaderType shader) override;
std::string DebugGetShaderString(std::string id, DebugShaderType shader, DebugShaderStringType stringType) override;
void BeginHostFrame() override;
protected:
void FastRunLoop(DisplayList &list) override;
void FinishDeferred() override;