D3D11: Remove "fast path" check in DrawElements.
This was a bit of an anti-pattern. Many draw calls were being handled
in the "slow" path, so the repeated checks were slowing the draw calls
down more than the fast path was speeding things up.
The new code tries to do all the checking for index ranges and restart
index once only, and lazily when possible. The 'start' vertex is a bit
of a special case - we known when the primitive restart index is
not enabled, this will be always the same as the 'base' vertex (zero
if the base vertex is not enabled - only currently available through
draw indirect commands).
In future work we can look at implementing a lazy evaluation for draw
indirect commands so we don't need to do a check there either.
Reduces overhead in the D3D11 indexed rendering perf test such that it
leads to an increased score of about 5%.
BUG=angleproject:2229
Change-Id: I6330f30b66d1810624d03f4e7a012bf2391a3bf3
Reviewed-on: https://chromium-review.googlesource.com/764677
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Geoff Lang <geofflang@chromium.org>
Showing
Please
register
or
sign in
to comment