AnsweredAssumed Answered

BC5 data not correctly swizzled for mapped textures

Question asked by antonyarciuolo on Mar 7, 2012
Latest reply on Mar 7, 2012 by antonyarciuolo

Based on our observations as simplified in the attached source code, I see that a texture containing BC5 data is displayed correctly only when the data was specified as InitData in the CreateTexture2D call. We tried writing to a dynamic/staging texture and doing a CopyResource to no avail.


There is a #define at the top of Tutorial07.cpp called "OOOii_ILLUSTRATE_OBSERVED_BUG". Undefining this runs the code as it originally appears in the June 2010 DX SDK. Enabled, there is an inappropriate tiling that appears I believe due to AMD HW details that are only compensated for in CreateTexture2D but not in Unmap.


With NVIDIA drivers (on NVIDIA cards) the behavior of the sample is the same whether or not the #define is defined, and I believe this to be the more appropriate behavior.


I request this be treated as a bug and that it be fixed in subsequent driver versions.


Background: We are working on a performant video texture system that transcodes from a jpeg-ish source directly to BC5 and thus the updates to the video texture are quite frequent. We would like to maintain cross-platform code by enabling a transcode directly to a dynamic BC5 texture rather than having to special-case it for AMD drivers.