D3D12Texture::Lock computes the size of the staging buffer on Line 1541 of D3D12Texture.cpp. This size uses the RowPitch, which for BCn resources encapsulates the size in bytes of a single row of blocks. This RowPitch is then multiplied by the resource height and depth; however, the height is in pixels, not blocks, leading the size being overstated.
This change was added in e1060c2cdc066e7654afd38b476056bc3ae9445f, CL 29132367. This CL modifies the behavior from allocating a staging buffer sized to the entire resource size.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-228545 in the post.
1 |
Component | UE - Rendering Architecture - RHI |
---|---|
Affects Versions | 5.4, 5.6, 5.5 |
Target Fix | 5.6 |
Created | Oct 23, 2024 |
---|---|
Updated | Oct 30, 2024 |