|
@@ -1128,8 +1128,8 @@ bool Image::ScaleUp(bool save_as_backup) {
|
|
|
.z = 0,
|
|
.z = 0,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- .x = s32(info.size.width),
|
|
|
|
|
- .y = s32(info.size.height),
|
|
|
|
|
|
|
+ .x = static_cast<s32>(info.size.width),
|
|
|
|
|
+ .y = static_cast<s32>(info.size.height),
|
|
|
.z = 1,
|
|
.z = 1,
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
@@ -1146,8 +1146,10 @@ bool Image::ScaleUp(bool save_as_backup) {
|
|
|
.z = 0,
|
|
.z = 0,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- .x = s32(scale_up(info.size.width)),
|
|
|
|
|
- .y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height),
|
|
|
|
|
|
|
+ .x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level),
|
|
|
|
|
+ .y = std::max(1, static_cast<s32>(is_2d ? scale_up(info.size.height)
|
|
|
|
|
+ : info.size.height) >>
|
|
|
|
|
+ level),
|
|
|
.z = 1,
|
|
.z = 1,
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
@@ -1199,9 +1201,9 @@ bool Image::ScaleDown(bool save_as_backup) {
|
|
|
regions.push_back({
|
|
regions.push_back({
|
|
|
.srcSubresource{
|
|
.srcSubresource{
|
|
|
.aspectMask = aspect_mask,
|
|
.aspectMask = aspect_mask,
|
|
|
- .mipLevel = u32(level),
|
|
|
|
|
|
|
+ .mipLevel = static_cast<u32>(level),
|
|
|
.baseArrayLayer = 0,
|
|
.baseArrayLayer = 0,
|
|
|
- .layerCount = u32(info.resources.layers),
|
|
|
|
|
|
|
+ .layerCount = static_cast<u32>(info.resources.layers),
|
|
|
},
|
|
},
|
|
|
.srcOffsets{
|
|
.srcOffsets{
|
|
|
{
|
|
{
|
|
@@ -1210,16 +1212,18 @@ bool Image::ScaleDown(bool save_as_backup) {
|
|
|
.z = 0,
|
|
.z = 0,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- .x = s32(scale_up(info.size.width)),
|
|
|
|
|
- .y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height),
|
|
|
|
|
|
|
+ .x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level),
|
|
|
|
|
+ .y = std::max(1, static_cast<s32>(is_2d ? scale_up(info.size.height)
|
|
|
|
|
+ : info.size.height) >>
|
|
|
|
|
+ level),
|
|
|
.z = 1,
|
|
.z = 1,
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
.dstSubresource{
|
|
.dstSubresource{
|
|
|
.aspectMask = aspect_mask,
|
|
.aspectMask = aspect_mask,
|
|
|
- .mipLevel = u32(level),
|
|
|
|
|
|
|
+ .mipLevel = static_cast<u32>(level),
|
|
|
.baseArrayLayer = 0,
|
|
.baseArrayLayer = 0,
|
|
|
- .layerCount = u32(info.resources.layers),
|
|
|
|
|
|
|
+ .layerCount = static_cast<u32>(info.resources.layers),
|
|
|
},
|
|
},
|
|
|
.dstOffsets{
|
|
.dstOffsets{
|
|
|
{
|
|
{
|
|
@@ -1228,8 +1232,8 @@ bool Image::ScaleDown(bool save_as_backup) {
|
|
|
.z = 0,
|
|
.z = 0,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- .x = s32(info.size.width),
|
|
|
|
|
- .y = s32(info.size.height),
|
|
|
|
|
|
|
+ .x = std::max(1, static_cast<s32>(info.size.width) >> level),
|
|
|
|
|
+ .y = std::max(1, static_cast<s32>(info.size.height) >> level),
|
|
|
.z = 1,
|
|
.z = 1,
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|