diff options
| author | 2022-04-15 12:29:49 +0200 | |
|---|---|---|
| committer | 2022-10-06 21:00:53 +0200 | |
| commit | ada09778d97d39d83353ca54d0d6c9abd5eefc60 (patch) | |
| tree | 88758ebac615e8f835cd0f3487e313ec01fa5a6b /src/video_core/texture_cache | |
| parent | ImageBase: Basic fixes. (diff) | |
| download | yuzu-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.h | 1 | ||||
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 2 |
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 | } |