mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
GPU: Clear shaders on use flag change.
This commit is contained in:
parent
de3c2783f4
commit
5749b5a825
3 changed files with 24 additions and 0 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue