diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index b061ea08b..4e05058c9 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -1128,8 +1128,8 @@ bool Image::ScaleUp(bool save_as_backup) { | |||
| 1128 | .z = 0, | 1128 | .z = 0, |
| 1129 | }, | 1129 | }, |
| 1130 | { | 1130 | { |
| 1131 | .x = s32(info.size.width), | 1131 | .x = static_cast<s32>(info.size.width), |
| 1132 | .y = s32(info.size.height), | 1132 | .y = static_cast<s32>(info.size.height), |
| 1133 | .z = 1, | 1133 | .z = 1, |
| 1134 | }, | 1134 | }, |
| 1135 | }, | 1135 | }, |
| @@ -1146,8 +1146,10 @@ bool Image::ScaleUp(bool save_as_backup) { | |||
| 1146 | .z = 0, | 1146 | .z = 0, |
| 1147 | }, | 1147 | }, |
| 1148 | { | 1148 | { |
| 1149 | .x = s32(scale_up(info.size.width)), | 1149 | .x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level), |
| 1150 | .y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height), | 1150 | .y = std::max(1, static_cast<s32>(is_2d ? scale_up(info.size.height) |
| 1151 | : info.size.height) >> | ||
| 1152 | level), | ||
| 1151 | .z = 1, | 1153 | .z = 1, |
| 1152 | }, | 1154 | }, |
| 1153 | }, | 1155 | }, |
| @@ -1199,9 +1201,9 @@ bool Image::ScaleDown(bool save_as_backup) { | |||
| 1199 | regions.push_back({ | 1201 | regions.push_back({ |
| 1200 | .srcSubresource{ | 1202 | .srcSubresource{ |
| 1201 | .aspectMask = aspect_mask, | 1203 | .aspectMask = aspect_mask, |
| 1202 | .mipLevel = u32(level), | 1204 | .mipLevel = static_cast<u32>(level), |
| 1203 | .baseArrayLayer = 0, | 1205 | .baseArrayLayer = 0, |
| 1204 | .layerCount = u32(info.resources.layers), | 1206 | .layerCount = static_cast<u32>(info.resources.layers), |
| 1205 | }, | 1207 | }, |
| 1206 | .srcOffsets{ | 1208 | .srcOffsets{ |
| 1207 | { | 1209 | { |
| @@ -1210,16 +1212,18 @@ bool Image::ScaleDown(bool save_as_backup) { | |||
| 1210 | .z = 0, | 1212 | .z = 0, |
| 1211 | }, | 1213 | }, |
| 1212 | { | 1214 | { |
| 1213 | .x = s32(scale_up(info.size.width)), | 1215 | .x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level), |
| 1214 | .y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height), | 1216 | .y = std::max(1, static_cast<s32>(is_2d ? scale_up(info.size.height) |
| 1217 | : info.size.height) >> | ||
| 1218 | level), | ||
| 1215 | .z = 1, | 1219 | .z = 1, |
| 1216 | }, | 1220 | }, |
| 1217 | }, | 1221 | }, |
| 1218 | .dstSubresource{ | 1222 | .dstSubresource{ |
| 1219 | .aspectMask = aspect_mask, | 1223 | .aspectMask = aspect_mask, |
| 1220 | .mipLevel = u32(level), | 1224 | .mipLevel = static_cast<u32>(level), |
| 1221 | .baseArrayLayer = 0, | 1225 | .baseArrayLayer = 0, |
| 1222 | .layerCount = u32(info.resources.layers), | 1226 | .layerCount = static_cast<u32>(info.resources.layers), |
| 1223 | }, | 1227 | }, |
| 1224 | .dstOffsets{ | 1228 | .dstOffsets{ |
| 1225 | { | 1229 | { |
| @@ -1228,8 +1232,8 @@ bool Image::ScaleDown(bool save_as_backup) { | |||
| 1228 | .z = 0, | 1232 | .z = 0, |
| 1229 | }, | 1233 | }, |
| 1230 | { | 1234 | { |
| 1231 | .x = s32(info.size.width), | 1235 | .x = std::max(1, static_cast<s32>(info.size.width) >> level), |
| 1232 | .y = s32(info.size.height), | 1236 | .y = std::max(1, static_cast<s32>(info.size.height) >> level), |
| 1233 | .z = 1, | 1237 | .z = 1, |
| 1234 | }, | 1238 | }, |
| 1235 | }, | 1239 | }, |