Commit 73bec982 by apatrick@chromium.org

Cache result of D3DPERF_GetStatus.

I profiled the WebGL acquarium with AMD CodeAnalyst and it turns out this function got a lot of hits. Top 10 before change: CS:EIP Symbol + Offset 64-bit Timer samples 0x62a87260 CBatchFilterI::ProcessBatch 13.41 0x62a171f1 D3DPERF_GetStatus 6.04 0x629ce831 CD3DBase::SetVertexShaderConstantF_FP 5.12 0x62a88bea CBatchFilterI::GetBatchBufferPointer<_LH_SETPIXELSHADERCONSTIMM_TOKEN_SMALL> 4.61 0x6298060b UpdateViewportCache 4.2 0x6298da3a CD3DBase::UpdateTextures 3.58 0x6298db6b CD3DDDIDX10::SetTexture 2.76 0x6298df1d CD3DDDIDX10::InsertStreamSource 2.46 0x629d1c1a CD3DBase::SetPixelShaderConstantF_FP 2.25 0x6297efc4 CD3DHal::SetSamplerState_FP 2.05 10 functions, 186 instructions, Total: 454 samples, 46.47% of shown samples, 2.51% of total session samples And after: CS:EIP Symbol + Offset 64-bit Timer samples 0x69317260 CBatchFilterI::ProcessBatch 13.87 0x69318bea CBatchFilterI::GetBatchBufferPointer<_LH_SETPIXELSHADERCONSTIMM_TOKEN_SMALL> 5.84 0x6921060b UpdateViewportCache 5.29 0x6925e831 CD3DBase::SetVertexShaderConstantF_FP 4.93 0x6921da3a CD3DBase::UpdateTextures 4.38 0x6921e034 CD3DBase::SetStreamSource_FP 3.65 0x69261c1a CD3DBase::SetPixelShaderConstantF_FP 3.65 0x69227651 CD3DBase::DrawIndexedPrimitive 2.74 0x6920efc4 CD3DHal::SetSamplerState_FP 2.37 0x6925e9f7 CD3DBase::SetVertexShaderConstantIntF 2.37 10 functions, 152 instructions, Total: 269 samples, 49.09% of shown samples, 0.80% of total session samples UpdateViewportCache looks like it might be low hanging fruit as well. Review URL: http://codereview.appspot.com/4535049 git-svn-id: https://angleproject.googlecode.com/svn/trunk@648 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent b1092bf3
...@@ -72,7 +72,8 @@ bool perfActive() ...@@ -72,7 +72,8 @@ bool perfActive()
#if defined(ANGLE_DISABLE_PERF) #if defined(ANGLE_DISABLE_PERF)
return false; return false;
#else #else
return D3DPERF_GetStatus() != 0; static bool active = D3DPERF_GetStatus() != 0;
return active;
#endif #endif
} }
......
#define MAJOR_VERSION 0 #define MAJOR_VERSION 0
#define MINOR_VERSION 0 #define MINOR_VERSION 0
#define BUILD_VERSION 0 #define BUILD_VERSION 0
#define BUILD_REVISION 647 #define BUILD_REVISION 648
#define STRINGIFY(x) #x #define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x) #define MACRO_STRINGIFY(x) STRINGIFY(x)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment