mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
Don't check if texture is our overlay to decode heatmap
* This will fail when proxying for remote replay as we have no locally-rendered overlay. Instead ensure the overlay in the config will only be set to quad overdraw/triangle size when rendering the actual overlay texture.
This commit is contained in:
@@ -423,7 +423,6 @@ bool D3D11Replay::RenderTextureInternal(TextureDisplay cfg, bool blendAlpha)
|
||||
DebugPixelCBufferData pixelData;
|
||||
HeatmapData heatmapData = {};
|
||||
|
||||
if(cfg.resourceId == m_Overlay.resourceId)
|
||||
{
|
||||
if(cfg.overlay == DebugOverlay::QuadOverdrawDraw || cfg.overlay == DebugOverlay::QuadOverdrawPass)
|
||||
{
|
||||
|
||||
@@ -317,7 +317,6 @@ bool D3D12Replay::RenderTextureInternal(D3D12_CPU_DESCRIPTOR_HANDLE rtv, Texture
|
||||
DebugPixelCBufferData pixelData;
|
||||
HeatmapData heatmapData = {};
|
||||
|
||||
if(cfg.resourceId == m_Overlay.resourceId)
|
||||
{
|
||||
if(cfg.overlay == DebugOverlay::QuadOverdrawDraw || cfg.overlay == DebugOverlay::QuadOverdrawPass)
|
||||
{
|
||||
|
||||
@@ -378,7 +378,6 @@ bool GLReplay::RenderTextureInternal(TextureDisplay cfg, int flags)
|
||||
|
||||
HeatmapData heatmapData = {};
|
||||
|
||||
if(cfg.resourceId == DebugData.overlayTexId)
|
||||
{
|
||||
if(cfg.overlay == DebugOverlay::QuadOverdrawDraw || cfg.overlay == DebugOverlay::QuadOverdrawPass)
|
||||
{
|
||||
|
||||
@@ -319,7 +319,6 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn
|
||||
|
||||
HeatmapData heatmapData = {};
|
||||
|
||||
if(cfg.resourceId == GetResID(m_Overlay.Image))
|
||||
{
|
||||
if(cfg.overlay == DebugOverlay::QuadOverdrawDraw || cfg.overlay == DebugOverlay::QuadOverdrawPass)
|
||||
{
|
||||
|
||||
@@ -727,6 +727,14 @@ void ReplayOutput::DisplayTex()
|
||||
|
||||
ClearBackground(m_MainOutput.outputID, texDisplay.backgroundColor);
|
||||
|
||||
// of the overlay isn't one that's applied while rendering the base texture - NaN/inf/-ve or
|
||||
// clipping - then don't try and render any overlay. This prevents underlying code from trying to
|
||||
// e.g. decode overlay data as a heatmap for quad overdraw/triangle size overlays
|
||||
if(texDisplay.overlay != DebugOverlay::NaN && texDisplay.overlay != DebugOverlay::Clipping)
|
||||
{
|
||||
texDisplay.overlay = DebugOverlay::NoOverlay;
|
||||
}
|
||||
|
||||
m_pDevice->RenderTexture(texDisplay);
|
||||
|
||||
if(m_RenderData.texDisplay.overlay != DebugOverlay::NoOverlay && draw &&
|
||||
@@ -738,6 +746,7 @@ void ReplayOutput::DisplayTex()
|
||||
texDisplay.resourceId = m_pDevice->GetLiveID(m_OverlayResourceId);
|
||||
texDisplay.red = texDisplay.green = texDisplay.blue = texDisplay.alpha = true;
|
||||
texDisplay.rawOutput = false;
|
||||
texDisplay.overlay = m_RenderData.texDisplay.overlay;
|
||||
texDisplay.customShaderId = ResourceId();
|
||||
texDisplay.scale = m_RenderData.texDisplay.scale;
|
||||
texDisplay.hdrMultiplier = -1.0f;
|
||||
|
||||
Reference in New Issue
Block a user