diff options
author | Geoff Lang <geofflang@google.com> | 2013-07-22 12:20:03 -0400 |
---|---|---|
committer | Geoff Lang <geofflang@google.com> | 2013-07-26 17:06:03 -0400 |
commit | 93a5ce96058074d20a7bd94185a16bde2a8aad02 (patch) | |
tree | dad3a92dd739d4c655631087321407d17d4a2b82 | |
parent | a6abd8914f2d684023b0ec434ba8c6087905aba8 (diff) | |
download | angle_dx11-93a5ce96058074d20a7bd94185a16bde2a8aad02.tar.gz |
Cache applied primitive topology.
Issue #451
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
-rw-r--r-- | src/libGLESv2/renderer/Renderer11.cpp | 8 | ||||
-rw-r--r-- | src/libGLESv2/renderer/Renderer11.h | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp index 334e2114..dd7b6bdb 100644 --- a/src/libGLESv2/renderer/Renderer11.cpp +++ b/src/libGLESv2/renderer/Renderer11.cpp @@ -849,7 +849,11 @@ bool Renderer11::applyPrimitiveType(GLenum mode, GLsizei count) return gl::error(GL_INVALID_ENUM, false); } - mDeviceContext->IASetPrimitiveTopology(primitiveTopology); + if (primitiveTopology != mCurrentPrimitiveTopology) + { + mDeviceContext->IASetPrimitiveTopology(primitiveTopology); + mCurrentPrimitiveTopology = primitiveTopology; + } return count > 0; } @@ -1816,6 +1820,8 @@ void Renderer11::markAllStateDirty() mCurrentVertexConstantBuffer = NULL; mCurrentPixelConstantBuffer = NULL; mCurrentGeometryConstantBuffer = NULL; + + mCurrentPrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED; } void Renderer11::releaseDeviceResources() diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h index 5481c034..f024855f 100644 --- a/src/libGLESv2/renderer/Renderer11.h +++ b/src/libGLESv2/renderer/Renderer11.h @@ -288,6 +288,9 @@ class Renderer11 : public Renderer float mCurNear; float mCurFar; + // Currently applied primitive topology + D3D11_PRIMITIVE_TOPOLOGY mCurrentPrimitiveTopology; + unsigned int mAppliedIBSerial; unsigned int mAppliedStorageIBSerial; unsigned int mAppliedIBOffset; |