From 8b398bbbb747f0c12eb4c29a345647feed5ce962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 10 Dec 2020 10:28:48 +0100 Subject: [PATCH] Minor code simplification --- GPU/D3D11/TextureCacheD3D11.cpp | 11 +++++------ GPU/Directx9/TextureCacheDX9.cpp | 3 ++- GPU/GLES/TextureCacheGLES.cpp | 7 ++++--- GPU/Vulkan/TextureCacheVulkan.cpp | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/GPU/D3D11/TextureCacheD3D11.cpp b/GPU/D3D11/TextureCacheD3D11.cpp index 4b1336c870..c3d65164e9 100644 --- a/GPU/D3D11/TextureCacheD3D11.cpp +++ b/GPU/D3D11/TextureCacheD3D11.cpp @@ -518,16 +518,15 @@ void TextureCacheD3D11::BuildTexture(TexCacheEntry *const entry) { maxLevel = 0; } - DXGI_FORMAT dstFmt = GetDestFormat(GETextureFormat(entry->format), gstate.getClutPaletteFormat()); - + int level = 0; if (IsFakeMipmapChange()) { // NOTE: Since the level is not part of the cache key, we assume it never changes. - u8 level = std::max(0, gstate.getTexLevelOffset16() / 16); - LoadTextureLevel(*entry, replaced, level, maxLevel, scaleFactor, dstFmt); - } else { - LoadTextureLevel(*entry, replaced, 0, maxLevel, scaleFactor, dstFmt); + level = std::max(0, gstate.getTexLevelOffset16() / 16); } + DXGI_FORMAT dstFmt = GetDestFormat(GETextureFormat(entry->format), gstate.getClutPaletteFormat()); + LoadTextureLevel(*entry, replaced, level, maxLevel, scaleFactor, dstFmt); + ID3D11ShaderResourceView *textureView = DxView(entry); if (!textureView) { return; diff --git a/GPU/Directx9/TextureCacheDX9.cpp b/GPU/Directx9/TextureCacheDX9.cpp index 9bc34c3326..978c740bd3 100644 --- a/GPU/Directx9/TextureCacheDX9.cpp +++ b/GPU/Directx9/TextureCacheDX9.cpp @@ -474,11 +474,12 @@ void TextureCacheDX9::BuildTexture(TexCacheEntry *const entry) { maxLevel = 0; } - u8 level = 0; + int level = 0; if (IsFakeMipmapChange()) { // NOTE: Since the level is not part of the cache key, we assume it never changes. level = std::max(0, gstate.getTexLevelOffset16() / 16); } + LoadTextureLevel(*entry, replaced, level, maxLevel, scaleFactor, dstFmt); LPDIRECT3DTEXTURE9 &texture = DxTex(entry); diff --git a/GPU/GLES/TextureCacheGLES.cpp b/GPU/GLES/TextureCacheGLES.cpp index 50bac49ab8..35354618a9 100644 --- a/GPU/GLES/TextureCacheGLES.cpp +++ b/GPU/GLES/TextureCacheGLES.cpp @@ -521,11 +521,12 @@ void TextureCacheGLES::BuildTexture(TexCacheEntry *const entry) { // be as good quality as the game's own (might even be better in some cases though). // Always load base level texture here - u8 level = 0; + int level = 0; if (IsFakeMipmapChange()) { // NOTE: Since the level is not part of the cache key, we assume it never changes. level = std::max(0, gstate.getTexLevelOffset16() / 16); } + LoadTextureLevel(*entry, replaced, level, scaleFactor, dstFmt); // Mipmapping is only enabled when texture scaling is disabled. @@ -560,6 +561,8 @@ void TextureCacheGLES::BuildTexture(TexCacheEntry *const entry) { texMaxLevel = 0; } + render_->FinalizeTexture(entry->textureName, texMaxLevel, genMips); + if (maxLevel == 0) { entry->status |= TexCacheEntry::STATUS_BAD_MIPS; } else { @@ -568,8 +571,6 @@ void TextureCacheGLES::BuildTexture(TexCacheEntry *const entry) { if (replaced.Valid()) { entry->SetAlphaStatus(TexCacheEntry::TexStatus(replaced.AlphaStatus())); } - - render_->FinalizeTexture(entry->textureName, texMaxLevel, genMips); } Draw::DataFormat TextureCacheGLES::GetDestFormat(GETextureFormat format, GEPaletteFormat clutFormat) const { diff --git a/GPU/Vulkan/TextureCacheVulkan.cpp b/GPU/Vulkan/TextureCacheVulkan.cpp index 08443f7dc3..bc9afe39d6 100644 --- a/GPU/Vulkan/TextureCacheVulkan.cpp +++ b/GPU/Vulkan/TextureCacheVulkan.cpp @@ -916,6 +916,8 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) { prevStage = VK_PIPELINE_STAGE_TRANSFER_BIT; VK_PROFILE_END(vulkan, cmdInit, VK_PIPELINE_STAGE_TRANSFER_BIT); } + entry->vkTex->EndCreate(cmdInit, false, computeUpload ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + VK_PROFILE_END(vulkan, cmdInit, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT); if (maxLevel == 0) { entry->status |= TexCacheEntry::STATUS_BAD_MIPS; @@ -925,8 +927,6 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) { if (replaced.Valid()) { entry->SetAlphaStatus(TexCacheEntry::TexStatus(replaced.AlphaStatus())); } - entry->vkTex->EndCreate(cmdInit, false, prevStage, layout); - VK_PROFILE_END(vulkan, cmdInit, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT); } }