mesa/src/mesa
Kenneth Graunke b0629e6894 i965: Implement rasterizer discard via SOL unless required for queries.
We currently use CL_INVOCATION_COUNT for the GL_PRIMITIVES_GENERATED
query, which involves passing all primitives to the clipper.  When
rasterizer discard is enabled, we program the clipper in REJECT_ALL
mode, rather than using the SOL stage's "Rendering Disable" feature.

See commit f09b91f782 for an explanation
of why we implement GL_PRIMITIVES_GENERATED this way.

Apparently the SOL stage's "Rendering Disable" feature is a lot faster
than having the clipper reject all primitives.  It's safe to use when
no GL_PRIMITIVES_GENERATED query is active, as we don't care about
CL_INVOCATION_COUNT incrementing.

This patch makes us use SO_RENDERING_DISABLE when no query is active,
but continues falling back to the clipper in REJECT_ALL mode when the
queries are enabled.  It brings back the perf_debug for the clipper
case (which I removed in commit 1f9445ff57, thinking it wasn't useful).

Improves performance in Gl32GSCloth by 84.8303% +/- 2.07132% (n = 10)
on my Broadwell GT2 laptop.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2016-06-23 11:58:50 -07:00
..
drivers i965: Implement rasterizer discard via SOL unless required for queries. 2016-06-23 11:58:50 -07:00
main glsl/mesa: stop duplicating geom and tcs layout values 2016-06-23 11:01:46 +10:00
math mesa: Remove every double semi-colon 2016-04-26 14:36:29 -07:00
program glsl: Optionally lower TCS gl_PatchVerticesIn to a uniform. 2016-06-15 12:47:37 -07:00
sparc
state_tracker st/mesa: expose EXT_vertex_array_bgra when supported by backend 2016-06-22 12:46:08 -07:00
swrast mesa: Rename CoordReplaceBits back to CoordReplace. 2016-06-16 05:50:53 +02:00
swrast_setup mesa: Avoid double promotion. 2015-07-29 09:34:52 -07:00
tnl mesa: Use bitmask/ffs to iterate enabled clip planes. 2016-06-16 05:50:54 +02:00
tnl_dd t_dd_dmatmp: Check provoking vertex convention when rendering quads 2015-10-06 11:16:19 -07:00
vbo vbo: Use a bitmask to track the active arrays in vbo_save*. 2016-06-16 05:50:55 +02:00
x86 mesa: Switch to bitmask based enabled lights in gen_matypes.c 2016-06-16 05:50:54 +02:00
x86-64 mesa: Use SSE prefetch instructions rather than 3DNow instructions 2016-02-04 22:02:31 +11:00
.gitignore
Android.gen.mk mapi: Fix enums.c build with other build systems. 2015-12-01 12:19:02 -08:00
Android.libmesa_dricore.mk Android: fix x86 gallium builds 2016-04-01 13:44:22 +01:00
Android.libmesa_glsl_utils.mk Android: fix build break from nir/glsl move to compiler/ 2016-02-29 10:51:44 +00:00
Android.libmesa_sse41.mk Android: fix x86 gallium builds 2016-04-01 13:44:22 +01:00
Android.libmesa_st_mesa.mk android: fix building error in libmesa_st_mesa 2016-05-17 17:07:28 -04:00
Android.mesa_gen_matypes.mk Android: fix build break from nir/glsl move to compiler/ 2016-02-29 10:51:44 +00:00
Android.mk Android: fix x86 gallium builds 2016-04-01 13:44:22 +01:00
gl.pc.in
Makefile.am automake: move the git_sha1.h rule a level up 2016-05-30 17:53:45 +01:00
Makefile.sources st/mesa: add support for GL_EXT_window_rectangles 2016-06-18 13:38:30 -04:00
SConscript scons: put the generated git_sha1.h file in top-level src/ directory 2016-06-17 10:33:00 -06:00