mesa/src
Francisco Jerez 7ceb42ccc5 i965/sched: Change the scheduling heuristics to favor early program termination.
This uses the unblocked time of the exit assigned to each available
node to attempt to unblock exit nodes as early as possible,
potentially reducing the runtime of the shader when an exit branch is
taken.  There is a natural trade-off between terminating the program
as early as possible and reducing the worst-case latency of the
program as a whole (since this will typically move exit-unblocking
nodes closer to its dependencies potentially causing additional stalls
of the execution pipeline), but in practice the bandwidth and ALU
cycle savings from terminating the program earlier tend to outweigh
the slight increase in worst-case program execution latency, so it
makes sense to prefer nodes likely to unblock an earlier exit
regardless of the latency benefits of other available nodes.

I haven't observed any benchmark regressions from this change after
testing on VLV, HSW, BDW, BSW and SKL.  The FPS of the GfxBench
Manhattan benchmark increases by 10%-20% and the FPS of Unigine Valley
improves by roughly 5% depending on the platform and settings.

The change to the register pressure-sensitive heuristic is rather
conservative and gives precedence to the existing heuristic in order
to avoid increasing register pressure and causing spill count and SIMD
width regressions in shader-db.  It may make sense to revisit this
with additional performance data.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2016-08-18 20:05:00 -07:00
..
compiler nir/search: Extend 'a@bool' to handle a couple of system values. 2016-08-18 01:27:27 -07:00
egl egl/dri2: dri2_make_current: Release previous context's display 2016-08-16 17:30:35 +09:00
gallium radeonsi: initialize and finalize the LLVM function pass manager 2016-08-18 21:36:03 +02:00
gbm gbm: Correct bo_import documentation (trivial) 2016-08-03 10:56:41 -07:00
getopt
glx glx: Don't use current context in __glXSendError 2016-08-17 17:16:34 +09:00
gtest Remove wrongly repeated words in comments 2016-06-23 13:55:03 -07:00
hgl
intel isl: automake: use VISIBILITY_CFLAGS to restrict symbol visibility 2016-08-18 15:06:19 +01:00
loader loader/dri3: Destroy Present event context when destroying drawable v2 2016-08-04 15:45:43 +09:00
mapi mesa: Document that _mesa_enum_to_string() returns non-null (v2) 2016-08-12 09:09:55 -07:00
mesa i965/sched: Change the scheduling heuristics to favor early program termination. 2016-08-18 20:05:00 -07:00
util mesa: Fix uf10_to_f32() scale factor in the E == 0 and M != 0 case. 2016-08-17 17:26:11 -07:00
Makefile.am glsl: reuse main extension table to appropriately restrict extensions 2016-07-23 13:48:04 -04:00
SConscript scons: put the generated git_sha1.h file in top-level src/ directory 2016-06-17 10:33:00 -06:00