From 7c6b4633df4593a55fcf54fbe06190702052ac40 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 23 Jun 2023 18:53:41 +0100 Subject: [PATCH] Don't report unsupported file types as 'corrupted' captures * This adds a specific error message if even the magic number doesn't look like a supported file type. --- renderdoc/api/replay/renderdoc_tostr.inl | 1 + renderdoc/api/replay/replay_enums.h | 5 +++++ renderdoc/serialise/rdcfile.cpp | 5 ++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/renderdoc/api/replay/renderdoc_tostr.inl b/renderdoc/api/replay/renderdoc_tostr.inl index 16de30573..e5d690124 100644 --- a/renderdoc/api/replay/renderdoc_tostr.inl +++ b/renderdoc/api/replay/renderdoc_tostr.inl @@ -63,6 +63,7 @@ rdcstr DoStringise(const ResultCode &el) FileIncompatibleVersion, "Capture file incompatible due to being made on an different major version of RenderDoc"); STRINGISE_ENUM_CLASS_NAMED(FileCorrupted, "File is corrupted"); + STRINGISE_ENUM_CLASS_NAMED(FileUnrecognised, "File format is unrecognised"); STRINGISE_ENUM_CLASS_NAMED( ImageUnsupported, "The image file or format is unrecognised or not supported in this form"); STRINGISE_ENUM_CLASS_NAMED(APIUnsupported, "API used in this capture is unsupported"); diff --git a/renderdoc/api/replay/replay_enums.h b/renderdoc/api/replay/replay_enums.h index 567d5a593..551d5e92f 100644 --- a/renderdoc/api/replay/replay_enums.h +++ b/renderdoc/api/replay/replay_enums.h @@ -3803,6 +3803,10 @@ a remote server. The capture file is corrupted or otherwise unrecognisable. +.. data:: FileUnrecognised + + The file was not recognised as any supported file type. + .. data:: ImageUnsupported The image file or format is unrecognised or not supported in this form. @@ -3895,6 +3899,7 @@ enum class ResultCode : uint32_t FileIOFailed, FileIncompatibleVersion, FileCorrupted, + FileUnrecognised, ImageUnsupported, APIUnsupported, APIInitFailed, diff --git a/renderdoc/serialise/rdcfile.cpp b/renderdoc/serialise/rdcfile.cpp index ebeecb2bb..cd6cf9b01 100644 --- a/renderdoc/serialise/rdcfile.cpp +++ b/renderdoc/serialise/rdcfile.cpp @@ -329,9 +329,8 @@ void RDCFile::Init(StreamReader &reader) if(header.magic != MAGIC_HEADER) { - SET_ERROR_RESULT(m_Error, ResultCode::FileCorrupted, - "Invalid capture file. Expected magic %08x, got %08x.", MAGIC_HEADER, - (uint32_t)header.magic); + SET_ERROR_RESULT(m_Error, ResultCode::FileUnrecognised, + "Unrecognised file type. File magic number is %08x.", (uint32_t)header.magic); return; }