GPU: Clear shaders on use flag change.

This commit is contained in:
Unknown W. Brackets 2022-12-13 22:04:00 -08:00
parent de3c2783f4
commit 5749b5a825
3 changed files with 24 additions and 0 deletions

View file

@ -157,6 +157,14 @@ void GPU_D3D11::BeginFrame() {
framebufferManagerD3D11_->BeginFrame(); framebufferManagerD3D11_->BeginFrame();
gstate_c.Dirty(DIRTY_PROJTHROUGHMATRIX); gstate_c.Dirty(DIRTY_PROJTHROUGHMATRIX);
if (gstate_c.useFlagsChanged) {
// TODO: It'd be better to recompile them in the background, probably?
// This most likely means that saw equal depth changed.
WARN_LOG(G3D, "Shader use flags changed, clearing all shaders");
shaderManagerD3D11_->ClearShaders();
gstate_c.useFlagsChanged = false;
}
} }
void GPU_D3D11::CopyDisplayToOutput(bool reallyDirty) { void GPU_D3D11::CopyDisplayToOutput(bool reallyDirty) {

View file

@ -155,6 +155,14 @@ void GPU_DX9::BeginFrame() {
shaderManagerDX9_->DirtyShader(); shaderManagerDX9_->DirtyShader();
framebufferManager_->BeginFrame(); framebufferManager_->BeginFrame();
if (gstate_c.useFlagsChanged) {
// TODO: It'd be better to recompile them in the background, probably?
// This most likely means that saw equal depth changed.
WARN_LOG(G3D, "Shader use flags changed, clearing all shaders");
shaderManagerDX9_->ClearCache(true);
gstate_c.useFlagsChanged = false;
}
} }
void GPU_DX9::CopyDisplayToOutput(bool reallyDirty) { void GPU_DX9::CopyDisplayToOutput(bool reallyDirty) {

View file

@ -271,6 +271,14 @@ void GPU_GLES::InitClear() {
void GPU_GLES::BeginHostFrame() { void GPU_GLES::BeginHostFrame() {
GPUCommon::BeginHostFrame(); GPUCommon::BeginHostFrame();
drawEngine_.BeginFrame(); drawEngine_.BeginFrame();
if (gstate_c.useFlagsChanged) {
// TODO: It'd be better to recompile them in the background, probably?
// This most likely means that saw equal depth changed.
WARN_LOG(G3D, "Shader use flags changed, clearing all shaders");
shaderManagerGL_->ClearCache(true);
gstate_c.useFlagsChanged = false;
}
} }
void GPU_GLES::EndHostFrame() { void GPU_GLES::EndHostFrame() {