diff options
author | Eric Anholt <[email protected]> | 2013-03-19 12:40:10 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2013-04-30 11:59:23 -0700 |
commit | e56095dc2e40d6d1e37e123c694a609d16932b4a (patch) | |
tree | 00223e227895e5643b5a5e480964e90cafae9b8e /src/mesa/drivers/dri/i965/brw_blorp.cpp | |
parent | e34c857639380303a43146a50cdd724774f59a2f (diff) |
i965: Implement color clears using a simple shader in blorp.
The upside is less CPU overhead in fiddling with GL error handling, the
ability to use the constant color write message in most cases, and no GLSL
clear shaders appearing in MESA_GLSL=dump output. The downside is more
batch flushing and a total recompute of GL state at the end of blorp.
However, if we're ever going to use the fast color clear feature of CMS
surfaces, we'll need this anyway since it requires very special state
setup.
This increases the fail rate of some the GLES3conform ARB_sync tests,
because of the initial flush at the start of blorp. The tests already
intermittently failed (because it's just a bad testing procedure), and we
can return it to its previous fail rate by fixing the initial flush.
Improves GLB2.7 performance 0.37% +/- 0.11% (n=71/70, outlier removed).
v2: Rename the key member, use the core helper for sRGB, and use
BRW_MASK_* enums, fix comment and indentation (review by Paul).
v3: Rewrite a comment, drop a silly temporary variable (review by Ken)
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_blorp.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.cpp b/src/mesa/drivers/dri/i965/brw_blorp.cpp index 8a044c1a271..a2d02bfc5e0 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp.cpp @@ -148,6 +148,10 @@ brw_blorp_params::brw_blorp_params() num_samples(0), use_wm_prog(false) { + color_write_disable[0] = false; + color_write_disable[1] = false; + color_write_disable[2] = false; + color_write_disable[3] = false; } extern "C" { |