diff --git a/renderdoc/replay/replay_renderer.cpp b/renderdoc/replay/replay_renderer.cpp index f08eb2aa0..9983ada53 100644 --- a/renderdoc/replay/replay_renderer.cpp +++ b/renderdoc/replay/replay_renderer.cpp @@ -1012,6 +1012,15 @@ bool ReplayRenderer::SaveTexture(const TextureSave &saveData, const char *path) srcData += td.format.compCount * td.format.compByteWidth; } + // HDR can't represent negative values + if(sd.destType == eFileType_HDR) + { + r = RDCMAX(r, 0.0f); + g = RDCMAX(g, 0.0f); + b = RDCMAX(b, 0.0f); + a = RDCMAX(a, 0.0f); + } + fldata[(y*td.width + x) * 4 + 0] = r; fldata[(y*td.width + x) * 4 + 1] = g; fldata[(y*td.width + x) * 4 + 2] = b;