Fix blits with mips
This commit is contained in:
parent
973f8f1d08
commit
d464b122d5
@ -1128,8 +1128,8 @@ bool Image::ScaleUp(bool save_as_backup) {
|
|||||||
.z = 0,
|
.z = 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.x = s32(info.size.width),
|
.x = static_cast<s32>(info.size.width),
|
||||||
.y = s32(info.size.height),
|
.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)),
|
.x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level),
|
||||||
.y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height),
|
.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)),
|
.x = std::max(1, static_cast<s32>(scale_up(info.size.width)) >> level),
|
||||||
.y = is_2d ? s32(scale_up(info.size.height)) : s32(info.size.height),
|
.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),
|
.x = std::max(1, static_cast<s32>(info.size.width) >> level),
|
||||||
.y = s32(info.size.height),
|
.y = std::max(1, static_cast<s32>(info.size.height) >> level),
|
||||||
.z = 1,
|
.z = 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user