From a0863b2aed97ba544f486c4c1a6c3c25d41f7263 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 29 Mar 2023 10:29:37 +0100 Subject: [PATCH] Check for DDS files having legacy header but no bitmask --- renderdoc/common/dds_readwrite.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/renderdoc/common/dds_readwrite.cpp b/renderdoc/common/dds_readwrite.cpp index ff6f64b9b..006b467a3 100644 --- a/renderdoc/common/dds_readwrite.cpp +++ b/renderdoc/common/dds_readwrite.cpp @@ -1134,6 +1134,14 @@ RDResult load_dds_from_file(StreamReader *reader, read_dds_data &ret) if(bits[i] < bits[0] && bits[i] > 0) bitWidth = bits[i]; + if(bitWidth == 0) + { + RETURN_ERROR_RESULT(ResultCode::ImageUnsupported, + "Unsupported RGBA mask: %08x %08x %08x %08x", header.ddspf.dwRBitMask, + header.ddspf.dwGBitMask, header.ddspf.dwBBitMask, + header.ddspf.dwABitMask); + } + ret.format.compByteWidth = uint8_t(bitWidth / 8); ret.format.compCount = uint8_t(header.ddspf.dwRGBBitCount / bitWidth); ret.format.compType = CompType::UNorm;