diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index 72251f00f2..4a5797e174 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -692,6 +692,15 @@ bool TextureCacheRuntime::HasNativeASTC() const noexcept { return device.HasASTC(); } +bool TextureCacheRuntime::SupportsLinearFilter(VideoCore::Surface::PixelFormat format) const noexcept { + using VideoCore::Surface::GetFormatType; + using VideoCore::Surface::IsPixelFormatInteger; + if (IsPixelFormatInteger(format)) { + return false; + } + return GetFormatType(format) == VideoCore::Surface::SurfaceType::ColorTexture; +} + Image::Image(TextureCacheRuntime& runtime_, const VideoCommon::ImageInfo& info_, GPUVAddr gpu_addr_, VAddr cpu_addr_) : VideoCommon::ImageBase(info_, gpu_addr_, cpu_addr_), runtime{&runtime_} { diff --git a/src/video_core/renderer_opengl/gl_texture_cache.h b/src/video_core/renderer_opengl/gl_texture_cache.h index ba405ae30d..1b30e2c76c 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.h +++ b/src/video_core/renderer_opengl/gl_texture_cache.h @@ -16,6 +16,7 @@ #include "video_core/renderer_opengl/gl_resource_manager.h" #include "video_core/renderer_opengl/gl_staging_buffer_pool.h" #include "video_core/renderer_opengl/util_shaders.h" +#include "video_core/surface.h" #include "video_core/texture_cache/image_view_base.h" #include "video_core/texture_cache/texture_cache_base.h" @@ -132,6 +133,8 @@ public: return false; } + bool SupportsLinearFilter(VideoCore::Surface::PixelFormat format) const noexcept; + bool HasBrokenTextureViewFormats() const noexcept { return has_broken_texture_view_formats; }