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:
baldurk
2018-11-30 15:02:04 +00:00
parent 6aa79f54bd
commit a0f9b8a6a1
5 changed files with 9 additions and 4 deletions
@@ -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)
{
-1
View File
@@ -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)
{
+9
View File
@@ -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;