aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache/surface_params.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-10-16 10:47:44 -0400
committerFernandoS27 <fsahmkow27@gmail.com>2019-11-20 14:59:35 -0400
commitcc81c0ce64a5cc1f550ca796fda38e445660649a (patch)
treec9d2c27f143dcda1b164e2e4bc5edac96cef3bc8 /src/video_core/texture_cache/surface_params.h
parentc52f37f259372485ac5902d9cae8de327c984a55 (diff)
Texture_Cache: Redo invalid Surfaces handling.
This commit aims to redo the full setup of invalid textures and guarantee correct behavior across backends in the case of finding one by using black dummy textures that match the target of the expected texture.
Diffstat (limited to 'src/video_core/texture_cache/surface_params.h')
-rw-r--r--src/video_core/texture_cache/surface_params.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/texture_cache/surface_params.h b/src/video_core/texture_cache/surface_params.h
index 709aa0dc2..129817ad3 100644
--- a/src/video_core/texture_cache/surface_params.h
+++ b/src/video_core/texture_cache/surface_params.h
@@ -45,6 +45,14 @@ public:
static SurfaceParams CreateForFermiCopySurface(
const Tegra::Engines::Fermi2D::Regs::Surface& config);
+ /// Obtains the texture target from a shader's sampler entry.
+ static VideoCore::Surface::SurfaceTarget ExpectedTarget(
+ const VideoCommon::Shader::Sampler& entry);
+
+ /// Obtains the texture target from a shader's sampler entry.
+ static VideoCore::Surface::SurfaceTarget ExpectedTarget(
+ const VideoCommon::Shader::Image& entry);
+
std::size_t Hash() const {
return static_cast<std::size_t>(
Common::CityHash64(reinterpret_cast<const char*>(this), sizeof(*this)));