optimized params of GPUDevice::CommitTexture2DMipmaps

This commit is contained in:
2022-01-07 12:14:43 +08:00
parent b064a4de5f
commit 3bd165fbe5
2 changed files with 7 additions and 4 deletions

View File

@@ -67,7 +67,7 @@ Texture2D *GPUDevice::CreateTexture2D(TextureCreateInfo *tci)
}
else //本身有mipmaps数据
{
CommitTexture2DMipmaps(tex,tci->buffer,tci->extent.width,tci->extent.height,tci->mipmap_zero_total_bytes);
CommitTexture2DMipmaps(tex,tci->buffer,tci->extent,tci->mipmap_zero_total_bytes);
}
}
else
@@ -145,10 +145,10 @@ bool GPUDevice::CommitTexture2D(Texture2D *tex,GPUBuffer *buf,VkPipelineStageFla
return CommitTexture2D(tex,buf,&buffer_image_copy,1,destinationStage);
}
bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,GPUBuffer *buf,uint32_t width,uint32_t height,uint32_t total_bytes)
bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,GPUBuffer *buf,const VkExtent3D &extent,uint32_t total_bytes)
{
if(!tex||!buf
||width<=0||height<=0)
||extent.width*extent.height<=0)
return(false);
const uint32_t miplevel=tex->GetMipLevel();
@@ -158,6 +158,9 @@ bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,GPUBuffer *buf,uint32_t wi
VkDeviceSize offset=0;
uint32_t level=0;
uint32_t width=extent.width;
uint32_t height=extent.height;
buffer_image_copy.zero();
for(VkBufferImageCopy &bic:buffer_image_copy)