diff --git a/src/Cafe/GraphicPack/GraphicPack2.cpp b/src/Cafe/GraphicPack/GraphicPack2.cpp index 365e6e3ea..b581316e8 100644 --- a/src/Cafe/GraphicPack/GraphicPack2.cpp +++ b/src/Cafe/GraphicPack/GraphicPack2.cpp @@ -878,9 +878,6 @@ bool GraphicPack2::Activate() if (m_gfx_vendor.has_value()) { auto vendor = g_renderer->GetVendor(); - if (vendor == GfxVendor::IntelLegacy || vendor == GfxVendor::IntelNoLegacy) - vendor = GfxVendor::Intel; - if (m_gfx_vendor.value() != vendor) return false; } diff --git a/src/Cafe/HW/Latte/Core/LatteConst.h b/src/Cafe/HW/Latte/Core/LatteConst.h index 04c7b8883..ebe741e9b 100644 --- a/src/Cafe/HW/Latte/Core/LatteConst.h +++ b/src/Cafe/HW/Latte/Core/LatteConst.h @@ -82,8 +82,6 @@ #define GLVENDOR_UNKNOWN (0) #define GLVENDOR_AMD (1) // AMD/ATI #define GLVENDOR_NVIDIA (2) -#define GLVENDOR_INTEL_LEGACY (3) -#define GLVENDOR_INTEL_NOLEGACY (4) #define GLVENDOR_INTEL (5) #define GLVENDOR_APPLE (6) diff --git a/src/Cafe/HW/Latte/Core/LatteTextureLegacy.cpp b/src/Cafe/HW/Latte/Core/LatteTextureLegacy.cpp index b9ccbac41..50aa4d876 100644 --- a/src/Cafe/HW/Latte/Core/LatteTextureLegacy.cpp +++ b/src/Cafe/HW/Latte/Core/LatteTextureLegacy.cpp @@ -229,21 +229,16 @@ void LatteTexture_updateTexturesForStage(LatteDecompilerShader* shaderContext, u // if this texture is bound multiple times then use alternative views if (textureView->lastTextureBindIndex == LatteGPUState.textureBindCounter) { - // Intel driver has issues with textures that have multiple views bound and used by a shader, causes a softlock in BotW - // therefore we disable this on Intel - if (LatteGPUState.glVendor != GLVENDOR_INTEL_NOLEGACY) + LatteTextureViewGL* textureViewGL = (LatteTextureViewGL*)textureView; + // get next unused alternative texture view + while (true) { - LatteTextureViewGL* textureViewGL = (LatteTextureViewGL*)textureView; - // get next unused alternative texture view - while (true) - { - textureViewGL = textureViewGL->GetAlternativeView(); - if (textureViewGL->lastTextureBindIndex != LatteGPUState.textureBindCounter) - break; - } - textureView = textureViewGL; + textureViewGL = textureViewGL->GetAlternativeView(); + if (textureViewGL->lastTextureBindIndex != LatteGPUState.textureBindCounter) + break; } - } + textureView = textureViewGL; + } textureView->lastTextureBindIndex = LatteGPUState.textureBindCounter; rendererGL->renderstate_updateTextureSettingsGL(shaderContext, textureView, textureIndex + glBackendBaseTexUnit, word4, textureIndex, isDepthSampler); } diff --git a/src/Cafe/HW/Latte/Core/LatteThread.cpp b/src/Cafe/HW/Latte/Core/LatteThread.cpp index 60b32ec42..bd312d936 100644 --- a/src/Cafe/HW/Latte/Core/LatteThread.cpp +++ b/src/Cafe/HW/Latte/Core/LatteThread.cpp @@ -140,13 +140,7 @@ int Latte_ThreadEntry() case GfxVendor::AMD: LatteGPUState.glVendor = GLVENDOR_AMD; break; - case GfxVendor::IntelLegacy: - LatteGPUState.glVendor = GLVENDOR_INTEL_LEGACY; - break; - case GfxVendor::IntelNoLegacy: - LatteGPUState.glVendor = GLVENDOR_INTEL_NOLEGACY; - break; - case GfxVendor::Intel: + case GfxVendor::Intel: LatteGPUState.glVendor = GLVENDOR_INTEL; break; case GfxVendor::Nvidia: diff --git a/src/Cafe/HW/Latte/Renderer/OpenGL/LatteTextureGL.cpp b/src/Cafe/HW/Latte/Renderer/OpenGL/LatteTextureGL.cpp index 58805925a..fb025ebab 100644 --- a/src/Cafe/HW/Latte/Renderer/OpenGL/LatteTextureGL.cpp +++ b/src/Cafe/HW/Latte/Renderer/OpenGL/LatteTextureGL.cpp @@ -110,10 +110,6 @@ void LatteTextureGL::GetOpenGLFormatInfo(bool isDepth, Latte::E_GX2SURFFMT forma sint32 glInternalFormat; sint32 glSuppliedFormat; sint32 glSuppliedFormatType; - // check if compressed textures should be used - bool allowCompressedGLFormat = true; - if (LatteGPUState.glVendor == GLVENDOR_INTEL_LEGACY) - allowCompressedGLFormat = false; // compressed formats seem to cause more harm than good on Intel // get format information if (format == Latte::E_GX2SURFFMT::R4_G4_UNORM) { @@ -149,20 +145,11 @@ void LatteTextureGL::GetOpenGLFormatInfo(bool isDepth, Latte::E_GX2SURFFMT forma else if (format == Latte::E_GX2SURFFMT::BC1_UNORM || format == Latte::E_GX2SURFFMT::BC1_SRGB) { - if (allowCompressedGLFormat) - { - if (format == Latte::E_GX2SURFFMT::BC1_SRGB) - formatInfoOut->setCompressed(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, -1, -1); - else - formatInfoOut->setCompressed(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, -1, -1); - return; - } + if (format == Latte::E_GX2SURFFMT::BC1_SRGB) + formatInfoOut->setCompressed(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, -1, -1); else - { - formatInfoOut->setFormat(GL_RGBA16F, GL_RGBA, GL_FLOAT); - formatInfoOut->markAsAlternativeFormat(); - return; - } + formatInfoOut->setCompressed(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, -1, -1); + return; } else if (format == Latte::E_GX2SURFFMT::BC2_UNORM || format == Latte::E_GX2SURFFMT::BC2_SRGB) { @@ -173,28 +160,18 @@ void LatteTextureGL::GetOpenGLFormatInfo(bool isDepth, Latte::E_GX2SURFFMT forma } else if (format == Latte::E_GX2SURFFMT::BC3_UNORM || format == Latte::E_GX2SURFFMT::BC3_SRGB) { - if (allowCompressedGLFormat) - { - if (format == Latte::E_GX2SURFFMT::BC3_SRGB) - formatInfoOut->setCompressed(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, -1, -1); - else - formatInfoOut->setCompressed(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, -1, -1); - return; - } + if (format == Latte::E_GX2SURFFMT::BC3_SRGB) + formatInfoOut->setCompressed(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, -1, -1); else - { - // todo: SRGB support - formatInfoOut->setFormat(GL_RGBA16F, GL_RGBA, GL_FLOAT); - formatInfoOut->markAsAlternativeFormat(); - return; - } + formatInfoOut->setCompressed(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, -1, -1); + return; } else if (format == Latte::E_GX2SURFFMT::BC4_UNORM || format == Latte::E_GX2SURFFMT::BC4_SNORM) { + bool allowCompressed = true; if (dim != Latte::E_DIM::DIM_2D && dim != Latte::E_DIM::DIM_2D_ARRAY) - allowCompressedGLFormat = false; // RGTC1 does not support non-2D textures - - if (allowCompressedGLFormat) + allowCompressed = false; // RGTC1 does not support non-2D textures + if (allowCompressed) { if (format == Latte::E_GX2SURFFMT::BC4_UNORM) formatInfoOut->setCompressed(GL_COMPRESSED_RED_RGTC1, -1, -1); @@ -211,20 +188,11 @@ void LatteTextureGL::GetOpenGLFormatInfo(bool isDepth, Latte::E_GX2SURFFMT forma } else if (format == Latte::E_GX2SURFFMT::BC5_UNORM || format == Latte::E_GX2SURFFMT::BC5_SNORM) { - if (allowCompressedGLFormat) - { - if (format == Latte::E_GX2SURFFMT::BC5_SNORM) - formatInfoOut->setCompressed(GL_COMPRESSED_SIGNED_RG_RGTC2, -1, -1); - else - formatInfoOut->setCompressed(GL_COMPRESSED_RG_RGTC2, -1, -1); - return; - } + if (format == Latte::E_GX2SURFFMT::BC5_SNORM) + formatInfoOut->setCompressed(GL_COMPRESSED_SIGNED_RG_RGTC2, -1, -1); else - { - formatInfoOut->setFormat(GL_RG16F, GL_RG, GL_FLOAT); - formatInfoOut->markAsAlternativeFormat(); - return; - } + formatInfoOut->setCompressed(GL_COMPRESSED_RG_RGTC2, -1, -1); + return; } else if (format == Latte::E_GX2SURFFMT::R32_FLOAT) { diff --git a/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRenderer.cpp b/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRenderer.cpp index 604744cf7..28e91b8a1 100644 --- a/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRenderer.cpp +++ b/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRenderer.cpp @@ -407,10 +407,7 @@ void OpenGLRenderer::GetVendorInformation() } else if (memcmp(glVendorString, "Intel", 5) == 0) { - if (LaunchSettings::ForceIntelLegacyEnabled()) - m_vendor = GfxVendor::IntelLegacy; - else - m_vendor = GfxVendor::IntelNoLegacy; + m_vendor = GfxVendor::Intel; return; } } @@ -849,45 +846,6 @@ TextureDecoder* OpenGLRenderer::texture_chooseDecodedFormat(Latte::E_GX2SURFFMT } return nullptr; } - - if (LatteGPUState.glVendor == GLVENDOR_INTEL_LEGACY) - { - if (format == Latte::E_GX2SURFFMT::BC1_UNORM) - { - texDecoder = TextureDecoder_BC1_UNORM_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC1_SRGB) - { - texDecoder = TextureDecoder_BC1_SRGB_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC3_UNORM) - { - texDecoder = TextureDecoder_BC3_UNORM_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC3_SRGB) - { - texDecoder = TextureDecoder_BC3_SRGB_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC4_UNORM) - { - texDecoder = TextureDecoder_BC4_UNORM_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC4_SNORM) - { - cemu_assert_debug(false); // todo - } - else if (format == Latte::E_GX2SURFFMT::BC5_UNORM) - { - texDecoder = TextureDecoder_BC5_UNORM_uncompress::getInstance(); - } - else if (format == Latte::E_GX2SURFFMT::BC5_SNORM) - { - texDecoder = TextureDecoder_BC5_SNORM_uncompress::getInstance(); - } - if (texDecoder) - return texDecoder; - } - if (format == Latte::E_GX2SURFFMT::R4_G4_UNORM) texDecoder = TextureDecoder_R4_G4_UNORM_To_RGBA4::getInstance(); else if (format == Latte::E_GX2SURFFMT::R4_G4_B4_A4_UNORM) diff --git a/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRendererCore.cpp b/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRendererCore.cpp index 51d0d206a..571961f4f 100644 --- a/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRendererCore.cpp +++ b/src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLRendererCore.cpp @@ -950,7 +950,7 @@ void OpenGLRenderer::draw_genericDrawHandler(uint32 baseVertex, uint32 baseInsta bool streamoutEnable = LatteGPUState.contextRegister[mmVGT_STRMOUT_EN] != 0; if (streamoutEnable) { - if (glBeginTransformFeedback == nullptr || LatteGPUState.glVendor == GLVENDOR_INTEL_NOLEGACY) + if (glBeginTransformFeedback == nullptr) { cemu_assert_debug(false); return; // transform feedback not supported diff --git a/src/Cafe/HW/Latte/Renderer/Renderer.h b/src/Cafe/HW/Latte/Renderer/Renderer.h index 2a9a1d1bc..0b694bb95 100644 --- a/src/Cafe/HW/Latte/Renderer/Renderer.h +++ b/src/Cafe/HW/Latte/Renderer/Renderer.h @@ -21,8 +21,6 @@ enum class GfxVendor Generic, AMD, - IntelLegacy, - IntelNoLegacy, Intel, Nvidia, Apple, diff --git a/src/config/LaunchSettings.cpp b/src/config/LaunchSettings.cpp index fdd4cc65f..b7a79a11f 100644 --- a/src/config/LaunchSettings.cpp +++ b/src/config/LaunchSettings.cpp @@ -174,8 +174,6 @@ bool LaunchSettings::HandleCommandline(const std::vector& args) if (vm.count("nsight")) s_nsight_mode = vm["nsight"].as(); - if (vm.count("legacy")) - s_force_intel_legacy = vm["legacy"].as(); if(vm.count("force-interpreter")) s_force_interpreter = vm["force-interpreter"].as(); diff --git a/src/config/LaunchSettings.h b/src/config/LaunchSettings.h index f87dc6097..be989e6a5 100644 --- a/src/config/LaunchSettings.h +++ b/src/config/LaunchSettings.h @@ -24,7 +24,6 @@ class LaunchSettings static bool GDBStubEnabled() { return s_enable_gdbstub; } static bool NSightModeEnabled() { return s_nsight_mode; } - static bool ForceIntelLegacyEnabled() { return s_force_intel_legacy; } static bool ForceInterpreter() { return s_force_interpreter; }; @@ -44,7 +43,6 @@ class LaunchSettings inline static bool s_enable_gdbstub = false; inline static bool s_nsight_mode = false; - inline static bool s_force_intel_legacy = false; inline static bool s_force_interpreter = false; diff --git a/src/gui/guiWrapper.cpp b/src/gui/guiWrapper.cpp index 68f97590b..ce043babe 100644 --- a/src/gui/guiWrapper.cpp +++ b/src/gui/guiWrapper.cpp @@ -93,10 +93,6 @@ void gui_updateWindowTitles(bool isIdle, bool isLoading, double fps) const char* graphicMode = "[Generic]"; if (LatteGPUState.glVendor == GLVENDOR_AMD) graphicMode = "[AMD GPU]"; - else if (LatteGPUState.glVendor == GLVENDOR_INTEL_LEGACY) - graphicMode = "[Intel GPU - Legacy]"; - else if (LatteGPUState.glVendor == GLVENDOR_INTEL_NOLEGACY) - graphicMode = "[Intel GPU]"; else if (LatteGPUState.glVendor == GLVENDOR_INTEL) graphicMode = "[Intel GPU]"; else if (LatteGPUState.glVendor == GLVENDOR_NVIDIA)