Skip to content

Commit

Permalink
Fix overflow when texture size is smaller than block size
Browse files Browse the repository at this point in the history
If the texture size is smaller than the block size, it can cause an overflow. For example, a texture size of 4x4 with a format of ASTC 6x6.
  • Loading branch information
eranzhao committed Dec 11, 2024
1 parent 6dd3faa commit e2bd2ad
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion renderdoc/driver/gl/wrappers/gl_texture_funcs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3813,7 +3813,9 @@ void WrappedOpenGL::StoreCompressedTexData(ResourceId texId, GLenum target, GLin
// GetCompressedByteSize() will factor in the 'partial' blocks at image edges when the
// image size is not an integer multiple of the block size, so we need to take into
// account that in the loop
size_t roundedUpHeight = AlignUp((uint32_t)height, blockSize[1]);
size_t roundedUpHeight = (uint32_t)height < blockSize[1]
? (uint32_t)height
: AlignUp((uint32_t)height, blockSize[1]);
for(size_t y = 0; y < roundedUpHeight; y += blockSize[1])
{
memcpy(cdData.data() + dstOffset, srcPixels + srcOffset, srcRowSize);
Expand Down

0 comments on commit e2bd2ad

Please sign in to comment.