Skip to content

Commit

Permalink
Merge pull request #10957 from unknownbrackets/depal-bounds2
Browse files Browse the repository at this point in the history
 GPU: Dirty tex when clearing or rendering to self
  • Loading branch information
hrydgard committed Jun 6, 2018
2 parents a08fb8b + 61fc1cd commit 03175b7
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 0 deletions.
3 changes: 3 additions & 0 deletions GPU/D3D11/StateMappingD3D11.cpp
Expand Up @@ -426,6 +426,9 @@ void DrawEngineD3D11::ApplyDrawState(int prim) {
if (gstate_c.IsDirty(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS) && !gstate.isModeClear() && gstate.isTextureMapEnabled()) {
textureCache_->SetTexture();
gstate_c.Clean(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS);
} else if (gstate.getTextureAddress(0) == ((gstate.getFrameBufRawAddress() | 0x04000000) & 0x3FFFFFFF)) {
// This catches the case of clearing a texture.
gstate_c.Dirty(DIRTY_TEXTURE_IMAGE);
}
}

Expand Down
3 changes: 3 additions & 0 deletions GPU/Directx9/StateMappingDX9.cpp
Expand Up @@ -103,6 +103,9 @@ void DrawEngineDX9::ApplyDrawState(int prim) {
if (gstate_c.IsDirty(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS) && !gstate.isModeClear() && gstate.isTextureMapEnabled()) {
textureCache_->SetTexture();
gstate_c.Clean(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS);
} else if (gstate.getTextureAddress(0) == ((gstate.getFrameBufRawAddress() | 0x04000000) & 0x3FFFFFFF)) {
// This catches the case of clearing a texture.
gstate_c.Dirty(DIRTY_TEXTURE_IMAGE);
}

// Start profiling here to skip SetTexture which is already accounted for
Expand Down
3 changes: 3 additions & 0 deletions GPU/GLES/DrawEngineGLES.cpp
Expand Up @@ -311,6 +311,9 @@ void DrawEngineGLES::DoFlush() {
textureCache_->SetTexture();
gstate_c.Clean(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS);
textureNeedsApply = true;
} else if (gstate.getTextureAddress(0) == ((gstate.getFrameBufRawAddress() | 0x04000000) & 0x3FFFFFFF)) {
// This catches the case of clearing a texture.
gstate_c.Dirty(DIRTY_TEXTURE_IMAGE);
}

GEPrimitiveType prim = prevPrim_;
Expand Down
3 changes: 3 additions & 0 deletions GPU/Vulkan/DrawEngineVulkan.cpp
Expand Up @@ -570,6 +570,9 @@ void DrawEngineVulkan::DoFlush() {
textureCache_->SetTexture();
gstate_c.Clean(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS);
textureNeedsApply = true;
} else if (gstate.getTextureAddress(0) == ((gstate.getFrameBufRawAddress() | 0x04000000) & 0x3FFFFFFF)) {
// This catches the case of clearing a texture.
gstate_c.Dirty(DIRTY_TEXTURE_IMAGE);
}

GEPrimitiveType prim = prevPrim_;
Expand Down

0 comments on commit 03175b7

Please sign in to comment.