summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_wm.h
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2013-09-12 13:00:52 +0800
committerChia-I Wu <olv@lunarg.com>2013-10-02 15:26:40 +0800
commit848c0e72f36d0e1e460193a2d30b2f631529156f (patch)
treea68300ffa0b3a4a30f584f5ea5733328a52a33a8 /src/mesa/drivers/dri/i965/brw_wm.h
parent72edba16592e6b1589f2db410b9ab2939e196a07 (diff)
downloadexternal_mesa3d-848c0e72f36d0e1e460193a2d30b2f631529156f.zip
external_mesa3d-848c0e72f36d0e1e460193a2d30b2f631529156f.tar.gz
external_mesa3d-848c0e72f36d0e1e460193a2d30b2f631529156f.tar.bz2
i965: compute DDX in a subspan based only on top row
Consider only the top-left and top-right pixels to approximate DDX in a 2x2 subspan, unless the application requests a more accurate approximation via GL_FRAGMENT_SHADER_DERIVATIVE_HINT or this optimization is disabled from the new driconf option disable_derivative_optimization. This results in a less accurate approximation. However, it improves the performance of Xonotic with Ultra settings by 24.3879% +/- 0.832202% (at 95.0% confidence) on Haswell. No noticeable image quality difference observed. The improvement comes from faster sample_d. It seems, on Haswell, some optimizations are introduced to allow faster sample_d when all pixels in a subspan have the same derivative. I considered SAMPLE_STATE too, which allows one to control the quality of sample_d on Haswell. But it gave much worse image quality without giving better performance comparing to this change. No piglit quick.tests regression on Haswell (tested with v1). v2: better guess for precompile program key Signed-off-by: Chia-I Wu <olv@lunarg.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h
index f7a2c5f..aa786de 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -66,6 +66,7 @@ struct brw_wm_prog_key {
GLuint render_to_fbo:1;
GLuint clamp_fragment_color:1;
GLuint line_aa:2;
+ GLuint high_quality_derivatives:1;
GLushort drawable_height;
GLbitfield64 input_slots_valid;