From c412bbc09c4e826c42d1ec1cc3523238d90465a9 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Mon, 20 Jan 2014 01:04:48 -0800 Subject: [PATCH 1/2] Don't call SetTexture() in clear mode. It's just a waste of time, the game is probably being lazy. --- GPU/GLES/StateMapping.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index f1c9269381..be115712a3 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -166,7 +166,7 @@ static bool blendColorSimilar(Vec3f a, Vec3f b, float margin = 0.1f) { void TransformDrawEngine::ApplyDrawState(int prim) { // TODO: All this setup is soon so expensive that we'll need dirty flags, or simply do it in the command writes where we detect dirty by xoring. Silly to do all this work on every drawcall. - if (gstate_c.textureChanged) { + if (gstate_c.textureChanged && !gstate.isModeClear()) { if (gstate.isTextureMapEnabled()) { textureCache_->SetTexture(); } From 3e7f749f6dee70175e89a47c3c5623ff035d32d8 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Mon, 20 Jan 2014 01:07:01 -0800 Subject: [PATCH 2/2] Change the self message for separate reporting. --- GPU/GLES/TextureCache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index 6a31974a57..44d3df79eb 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -885,7 +885,7 @@ void TextureCache::SetTexture(bool force) { u32 fb_addr = gstate.getFrameBufRawAddress() | 0x04000000; if (fb_addr == gstate.getTextureAddress(0)) { - WARN_LOG_REPORT(HLE, "Render to self texture (%08x : %ix%i)", fb_addr, w, h); + WARN_LOG_REPORT(HLE, "Texturing from same buffer as target (%08x : %ix%i)", fb_addr, w, h); } GETextureFormat format = gstate.getTextureFormat();