video_core: Fallback to default anisotropy instead to 1x anisotropy
This commit is contained in:
parent
745d16132b
commit
a3b7b5b22a
7 changed files with 20 additions and 16 deletions
|
@ -488,7 +488,7 @@ void GraphicsPipeline::ConfigureImpl(bool is_indexed) {
|
|||
const bool use_fallback_sampler{sampler.HasAddedAnisotropy() &&
|
||||
!image_view.SupportsAnisotropy()};
|
||||
gl_samplers[sampler_binding++] =
|
||||
use_fallback_sampler ? sampler.HandleWithoutAnisotropy() : sampler.Handle();
|
||||
use_fallback_sampler ? sampler.HandleWithDefaultAnisotropy() : sampler.Handle();
|
||||
}
|
||||
}
|
||||
for (const auto& desc : info.image_descriptors) {
|
||||
|
|
|
@ -1306,8 +1306,10 @@ Sampler::Sampler(TextureCacheRuntime& runtime, const TSCEntry& config) {
|
|||
};
|
||||
|
||||
sampler = create_sampler(max_anisotropy);
|
||||
if (Settings::values.max_anisotropy.GetValue() > 0 && max_anisotropy > 1.0f) {
|
||||
sampler_without_anisotropy = create_sampler(1.0f);
|
||||
|
||||
const f32 max_anisotropy_default = static_cast<f32>(1U << config.max_anisotropy);
|
||||
if (max_anisotropy > max_anisotropy_default) {
|
||||
sampler_default_anisotropy = create_sampler(max_anisotropy_default);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -313,17 +313,17 @@ public:
|
|||
return sampler.handle;
|
||||
}
|
||||
|
||||
[[nodiscard]] GLuint HandleWithoutAnisotropy() const noexcept {
|
||||
return sampler_without_anisotropy.handle;
|
||||
[[nodiscard]] GLuint HandleWithDefaultAnisotropy() const noexcept {
|
||||
return sampler_default_anisotropy.handle;
|
||||
}
|
||||
|
||||
[[nodiscard]] bool HasAddedAnisotropy() const noexcept {
|
||||
return static_cast<bool>(sampler_without_anisotropy.handle);
|
||||
return static_cast<bool>(sampler_default_anisotropy.handle);
|
||||
}
|
||||
|
||||
private:
|
||||
OGLSampler sampler;
|
||||
OGLSampler sampler_without_anisotropy;
|
||||
OGLSampler sampler_default_anisotropy;
|
||||
};
|
||||
|
||||
class Framebuffer {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue