2010/9/20 Rico Schüller kgbricola@web.de:
D3DGetDebugInfo() (D3DGetBlobPart(D3D_BLOB_DEBUG_INFO)) isn't the only one which returns just the memory. There are other cases as well (e.g. D3D_BLOB_LEGACY_SHADER) which do the same stuff. It doesn't make it impossible to add a DXBC containing a SDBG chunk, it only avoids the case where you have only the SDBG without any other chunk (which is not a full DXBC).
Well sure, the "count != 1" somewhat guards against that. Nevertheless, I still think it qualifies as incredibly ugly. You're not creating a DXBC, so it doesn't make sense to abuse dxbc_write() for writing it to the blob.