diff --git a/renderdoc/data/hlsl/debugdisplay.hlsl b/renderdoc/data/hlsl/debugdisplay.hlsl index 88fa2c1a9..31e08170f 100644 --- a/renderdoc/data/hlsl/debugdisplay.hlsl +++ b/renderdoc/data/hlsl/debugdisplay.hlsl @@ -360,11 +360,13 @@ float4 RENDERDOC_CheckerboardPS(float4 IN : SV_Position) : SV_Target0 // https://github.com/selfshadow/demos/blob/master/QuadShading/QuadShading.fx //////////////////////////////////////////////////////////////////////////////////////////// +#define NUM_RAMP_COLOURS 128 + RWTexture2DArray overdrawUAV : register(u0); Texture2DArray overdrawSRV : register(t0); cbuffer overdrawRampCBuf : register(b0) { - const float4 overdrawRampColours[21]; + const float4 overdrawRampColours[NUM_RAMP_COLOURS]; }; [earlydepthstencil] @@ -388,7 +390,7 @@ void RENDERDOC_QuadOverdrawPS(float4 vpos : SV_Position, uint c0 : SV_Coverage) float4 ToColour(uint v) { - return overdrawRampColours[min(v, 20)]; + return overdrawRampColours[min(v, NUM_RAMP_COLOURS-1)]; } float4 RENDERDOC_QOResolvePS(float4 vpos : SV_POSITION) : SV_Target0 diff --git a/renderdoc/driver/d3d11/d3d11_analyse.cpp b/renderdoc/driver/d3d11/d3d11_analyse.cpp index 51f5939cc..31ac5d590 100644 --- a/renderdoc/driver/d3d11/d3d11_analyse.cpp +++ b/renderdoc/driver/d3d11/d3d11_analyse.cpp @@ -2412,7 +2412,7 @@ ResourceId D3D11DebugManager::RenderOverlay(ResourceId texid, TextureDisplayOver D3D11_TEXTURE2D_DESC realTexDesc; realTexDesc.BindFlags = D3D11_BIND_RENDER_TARGET|D3D11_BIND_SHADER_RESOURCE; realTexDesc.Usage = D3D11_USAGE_DEFAULT; - realTexDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + realTexDesc.Format = DXGI_FORMAT_R16G16B16A16_UNORM; realTexDesc.ArraySize = 1; realTexDesc.MipLevels = 1; realTexDesc.CPUAccessFlags = 0; @@ -2507,7 +2507,7 @@ ResourceId D3D11DebugManager::RenderOverlay(ResourceId texid, TextureDisplayOver D3D11_RENDER_TARGET_VIEW_DESC rtDesc; rtDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - rtDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + rtDesc.Format = DXGI_FORMAT_R16G16B16A16_UNORM; rtDesc.Texture2D.MipSlice = 0; if(realTexDesc.SampleDesc.Count > 1 || @@ -3045,7 +3045,7 @@ ResourceId D3D11DebugManager::RenderOverlay(ResourceId texid, TextureDisplayOver m_pImmediateContext->VSSetShader(m_DebugRender.FullscreenVS, NULL, 0); m_pImmediateContext->PSSetShader(m_DebugRender.QOResolvePS, NULL, 0); - ID3D11Buffer *buf = MakeCBuffer((float *)&overdrawRamp[0].x, sizeof(Vec4f)*21); + ID3D11Buffer *buf = MakeCBuffer((float *)&overdrawRamp[0].x, sizeof(overdrawRamp)); m_pImmediateContext->PSSetConstantBuffers(0, 1, &buf); diff --git a/renderdoc/maths/matrix.cpp b/renderdoc/maths/matrix.cpp index 2344f725e..9e3ef7dcb 100644 --- a/renderdoc/maths/matrix.cpp +++ b/renderdoc/maths/matrix.cpp @@ -33,7 +33,7 @@ #include "quat.h" // colour ramp from http://www.ncl.ucar.edu/Document/Graphics/ColorTables/GMT_wysiwyg.shtml -const Vec4f overdrawRamp[21] = +const Vec4f overdrawRamp[128] = { Vec4f(0.000000f, 0.000000f, 0.000000f, 0.0f), Vec4f(0.250980f, 0.000000f, 0.250980f, 1.0f), @@ -56,6 +56,113 @@ const Vec4f overdrawRamp[21] = Vec4f(1.000000f, 0.376471f, 0.752941f, 1.0f), Vec4f(1.000000f, 0.627451f, 1.000000f, 1.0f), Vec4f(1.000000f, 0.878431f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.878600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.878700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.878800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.878900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.879900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.880900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.881900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.882900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.883900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.884900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.885900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.886900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.887900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888200f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888300f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888400f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888500f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888600f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888700f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888800f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.888900f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.889000f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.889100f, 1.000000f, 1.0f), + Vec4f(1.000000f, 0.889200f, 1.000000f, 1.0f), }; static inline size_t matIdx(const size_t x, const size_t y) { return x+y*4; } diff --git a/renderdoc/maths/vec.h b/renderdoc/maths/vec.h index 41eeb0f4b..7570b3dc7 100644 --- a/renderdoc/maths/vec.h +++ b/renderdoc/maths/vec.h @@ -75,7 +75,7 @@ struct Vec4f float x, y, z, w; }; -extern const Vec4f overdrawRamp[21]; +extern const Vec4f overdrawRamp[128]; inline Vec3f operator *(const Vec3f &a, const float b) { diff --git a/renderdoc/replay/replay_output.cpp b/renderdoc/replay/replay_output.cpp index 780a3a9b1..89d2d471c 100644 --- a/renderdoc/replay/replay_output.cpp +++ b/renderdoc/replay/replay_output.cpp @@ -291,9 +291,9 @@ bool ReplayOutput::PickPixel(ResourceId tex, bool customShader, uint32_t x, uint { for(size_t c=0; c < ARRAY_COUNT(overdrawRamp); c++) { - if(fabs(ret->value_f[0] - overdrawRamp[c].x) < 0.001f && - fabs(ret->value_f[1] - overdrawRamp[c].y) < 0.001f && - fabs(ret->value_f[2] - overdrawRamp[c].z) < 0.001f) + if(fabs(ret->value_f[0] - overdrawRamp[c].x) < 0.00004f && + fabs(ret->value_f[1] - overdrawRamp[c].y) < 0.00004f && + fabs(ret->value_f[2] - overdrawRamp[c].z) < 0.00004f) { ret->value_i[0] = (int32_t)c; ret->value_i[1] = 0;