summaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2022-04-15 12:29:49 +0200
committerGravatar Fernando Sahmkow2022-10-06 21:00:53 +0200
commitada09778d97d39d83353ca54d0d6c9abd5eefc60 (patch)
tree88758ebac615e8f835cd0f3487e313ec01fa5a6b /src/video_core/texture_cache
parentImageBase: Basic fixes. (diff)
downloadyuzu-ada09778d97d39d83353ca54d0d6c9abd5eefc60.tar.gz
yuzu-ada09778d97d39d83353ca54d0d6c9abd5eefc60.tar.xz
yuzu-ada09778d97d39d83353ca54d0d6c9abd5eefc60.zip
Vulkan Texture Cache: Limit render area to the max width/height of the targets.
Diffstat (limited to 'src/video_core/texture_cache')
-rw-r--r--src/video_core/texture_cache/render_targets.h1
-rw-r--r--src/video_core/texture_cache/texture_cache.h2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/texture_cache/render_targets.h b/src/video_core/texture_cache/render_targets.h
index da8ffe9ec..1efbd6507 100644
--- a/src/video_core/texture_cache/render_targets.h
+++ b/src/video_core/texture_cache/render_targets.h
@@ -26,6 +26,7 @@ struct RenderTargets {
26 ImageViewId depth_buffer_id{}; 26 ImageViewId depth_buffer_id{};
27 std::array<u8, NUM_RT> draw_buffers{}; 27 std::array<u8, NUM_RT> draw_buffers{};
28 Extent2D size{}; 28 Extent2D size{};
29 bool is_rescaled{};
29}; 30};
30 31
31} // namespace VideoCommon 32} // namespace VideoCommon
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 66de41f04..9a835cefc 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -357,6 +357,7 @@ void TextureCache<P>::UpdateRenderTargets(bool is_clear) {
357 (maxwell3d->regs.render_area.width * up_scale) >> down_shift, 357 (maxwell3d->regs.render_area.width * up_scale) >> down_shift,
358 (maxwell3d->regs.render_area.height * up_scale) >> down_shift, 358 (maxwell3d->regs.render_area.height * up_scale) >> down_shift,
359 }; 359 };
360 render_targets.is_rescaled = is_rescaling;
360 361
361 flags[Dirty::DepthBiasGlobal] = true; 362 flags[Dirty::DepthBiasGlobal] = true;
362} 363}
@@ -1962,6 +1963,7 @@ std::pair<FramebufferId, ImageViewId> TextureCache<P>::RenderTargetFromImage(
1962 .color_buffer_ids = {color_view_id}, 1963 .color_buffer_ids = {color_view_id},
1963 .depth_buffer_id = depth_view_id, 1964 .depth_buffer_id = depth_view_id,
1964 .size = {extent.width >> samples_x, extent.height >> samples_y}, 1965 .size = {extent.width >> samples_x, extent.height >> samples_y},
1966 .is_rescaled = is_rescaled,
1965 }); 1967 });
1966 return {framebuffer_id, view_id}; 1968 return {framebuffer_id, view_id};
1967} 1969}