TextureCache: Base fixes on rescaling.
This commit is contained in:
parent
99eec162da
commit
19ca0c9ab5
2 changed files with 6 additions and 4 deletions
|
@ -207,7 +207,7 @@ void RasterizerVulkan::Clear() {
|
|||
|
||||
query_cache.UpdateCounters();
|
||||
|
||||
const auto& regs = maxwell3d.regs;
|
||||
auto& regs = maxwell3d.regs;
|
||||
const bool use_color = regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B ||
|
||||
regs.clear_buffers.A;
|
||||
const bool use_depth = regs.clear_buffers.Z;
|
||||
|
@ -228,6 +228,7 @@ void RasterizerVulkan::Clear() {
|
|||
up_scale = Settings::values.resolution_info.up_scale;
|
||||
down_shift = Settings::values.resolution_info.down_shift;
|
||||
}
|
||||
UpdateViewportsState(regs);
|
||||
|
||||
VkClearRect clear_rect{
|
||||
.rect = GetScissorState(regs, 0, up_scale, down_shift),
|
||||
|
|
|
@ -205,8 +205,8 @@ void TextureCache<P>::UpdateRenderTargets(bool is_clear) {
|
|||
return;
|
||||
}
|
||||
|
||||
u32 scale_rating;
|
||||
bool rescaled;
|
||||
u32 scale_rating = 0;
|
||||
bool rescaled = false;
|
||||
std::array<ImageId, NUM_RT> tmp_color_images{};
|
||||
ImageId tmp_depth_image{};
|
||||
do {
|
||||
|
@ -223,7 +223,7 @@ void TextureCache<P>::UpdateRenderTargets(bool is_clear) {
|
|||
bool can_rescale = true;
|
||||
bool any_blacklisted = false;
|
||||
const auto check_rescale = [&](ImageViewId view_id, ImageId& id_save) {
|
||||
if (view_id) {
|
||||
if (view_id != NULL_IMAGE_VIEW_ID && view_id != ImageViewId{}) {
|
||||
const auto& view = slot_image_views[view_id];
|
||||
const auto image_id = view.image_id;
|
||||
id_save = image_id;
|
||||
|
@ -265,6 +265,7 @@ void TextureCache<P>::UpdateRenderTargets(bool is_clear) {
|
|||
scale_up(tmp_color_images[index]);
|
||||
}
|
||||
scale_up(tmp_depth_image);
|
||||
scale_rating = 2;
|
||||
}
|
||||
} else {
|
||||
rescaled = false;
|
||||
|
|
Loading…
Reference in a new issue