Clear11 Shader Optimizations and Shader Management Rework
- ClearShader made into a class that manages all required shaders and input layouts for clears
- ClearShader reuses VS for all clear types. This reduces shader compilation time and memory usage
significantly
- Use constantBuffer for color/z values instead of VB to decouple VB & VS from clearType and
allowing for the same VS to be used for multiple clear types
- FL10+ Devices: Generate positions using SV_VertexID in VS to avoid having to bind VB.
- FL93 Devices: Use an immutable VB containing only position data (SV_VertexID not supported)
- Implement CB cache. Incoming color/Z values checked against cache and CB/cache only updated if
there is a mismatch. Significantly reduces the frequency of expensive CB map/rename operations
especially in common scenarios where most/all clears use the same color/z values
BUG=angleproject:1935
Change-Id: I2015fbdcc135ba08b65dbecbe9c62499c2801037
Reviewed-on: https://chromium-review.googlesource.com/453882
Commit-Queue: Shahmeer Esmail <shahmeer.esmail@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Showing
Please
register
or
sign in
to comment