freedreno/ir3: sched tweaks

A couple tweaks in choosing the best instruction to schedule:

1) If there are one or more "neutral" instructions (ie. does not
   require delays, and does not increase live values), pick the
   "deepest" one (ie. the one in longest path of instructions to
   the end of the shader)

2) And slightly finer blending of weight of effect on live values
   as the number of live values increases.

Note that some slightly special handling of varying input instructions
is required.  Otherwise, the scheduler would push them *too far* down
into fragment shaders.  But the varying storage is locked until the
last bary.f instruction (with (ei) flag) which can prevent the next
batch of vertex shader threads from running, decreasing performance
noticably even though the shader-db results look good (reduction in
both instruction count and register count).

Signed-off-by: Rob Clark <robdclark@chromium.org>
39 jobs for !2867 with wip/sched-hacks in 13 minutes and 14 seconds (queued for 6 seconds)
latest detached
Status Job ID Name Coverage
  Container
passed #1006468
aarch64
arm_build

00:00:29

passed #1006469
aarch64
arm_test

00:00:18

passed #1006464
lava_arm64

00:00:21

passed #1006463
lava_armhf

00:00:21

passed #1006465
x86_build

00:00:21

passed #1006467
x86_build_old

00:00:20

passed #1006466
x86_test

00:00:21

 
  Build
passed #1006471
lava-build:arm64

00:04:28

passed #1006470
lava-build:armhf

00:05:56

passed #1006475
aarch64
meson-arm64

00:04:47

passed #1006474
aarch64
meson-armhf

00:03:27

passed #1006476
meson-clang

00:08:20

passed #1006479
meson-clover

00:08:10

passed #1006480
meson-clover-old-llvm

00:04:38

passed #1006482
meson-i386

00:03:21

passed #1006473
meson-main

00:02:43

passed #1006483
meson-mingw32-x86_64

00:04:56

passed #1006472
meson-testing

00:04:23

passed #1006481
meson-vulkan

00:03:06

passed #1006484
scons

00:04:52

passed #1006485
scons-old-llvm

00:03:16

passed #1006477
scons-swr

00:02:41

passed #1006478
scons-win64

00:02:25

 
  Test
passed #1006501
db410c
arm64_a306_gles2

00:05:56

passed #1006498
mesa-cheza
arm64_a630_gles2

00:01:33

passed #1006500
mesa-cheza
arm64_a630_gles3

00:05:21

failed #1006499
mesa-cheza
arm64_a630_gles31

00:03:54

passed #1006486
lava-rk3288-veyron-jaq
panfrost-t760-test:armhf

00:04:33

passed #1006487
lava-rk3399-gru-kevin
panfrost-t860-test:arm64

00:05:06

passed #1006489
piglit-glslparser+quick_shader

00:05:59

passed #1006488
piglit-quick_gl

00:08:26

passed #1006490
test-llvmpipe-gles2

00:03:30

passed #1006491
test-softpipe-gles2

00:01:31

passed #1006494
test-softpipe-gles31 1/4

00:02:58

passed #1006492
test-softpipe-gles3 1/2

00:05:16

passed #1006495
test-softpipe-gles31 2/4

00:04:37

passed #1006496
test-softpipe-gles31 3/4

00:05:40

passed #1006497
test-softpipe-gles31 4/4

00:03:17

passed #1006493
test-softpipe-gles3 2/2

00:04:55

 
Name Stage Failure
failed
arm64_a630_gles31 Test
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.10,Fail
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.13,Fail
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20,Fail
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.29,Fail
+ exit 1
Uploading artifacts...
results/: found 2 matching files
Uploading artifacts to coordinator... ok
id=1006499 responseStatus=201 Created token=KT4Qxweu
ERROR: Job failed: exit code 1