diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-05-30 04:32:41 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-06-08 10:01:00 +0200 |
commit | c95c254f3eda75476ad221a4828033f4140a3470 (patch) | |
tree | b06f5db8c853d3b40d82439e4e739205146cf07a /src/video_core/texture_cache/surface_params.cpp | |
parent | Merge pull request #4034 from ReinUsesLisp/storage-texels (diff) | |
download | yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar.gz yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar.bz2 yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar.lz yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar.xz yuzu-c95c254f3eda75476ad221a4828033f4140a3470.tar.zst yuzu-c95c254f3eda75476ad221a4828033f4140a3470.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/texture_cache/surface_params.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/video_core/texture_cache/surface_params.cpp b/src/video_core/texture_cache/surface_params.cpp index 884fabffe..642eeb850 100644 --- a/src/video_core/texture_cache/surface_params.cpp +++ b/src/video_core/texture_cache/surface_params.cpp @@ -215,10 +215,19 @@ SurfaceParams SurfaceParams::CreateForFramebuffer(Core::System& system, std::siz params.num_levels = 1; params.emulated_levels = 1; - const bool is_layered = config.layers > 1 && params.block_depth == 0; - params.is_layered = is_layered; - params.depth = is_layered ? config.layers.Value() : 1; - params.target = is_layered ? SurfaceTarget::Texture2DArray : SurfaceTarget::Texture2D; + if (config.memory_layout.is_3d != 0) { + params.depth = config.layers.Value(); + params.is_layered = false; + params.target = SurfaceTarget::Texture3D; + } else if (config.layers > 1) { + params.depth = config.layers.Value(); + params.is_layered = true; + params.target = SurfaceTarget::Texture2DArray; + } else { + params.depth = 1; + params.is_layered = false; + params.target = SurfaceTarget::Texture2D; + } return params; } |