Mesa (master): 30 new commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Sep 30 12:41:27 UTC 2019
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7be00b2a06d09e8f3cf2257c7449219a4685ed7f
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 13:05:12 2019 -0400
pan/midgard: Allow scheduling conditions with constants
Now that we have constant adjustment logic abstracted, we can do this
safely. Along with the csel inversion patch, this allows many more
common csel ops to inline their condition in the bundle.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c20063aa4af5d31ff706bcd4026a5c9fa575dd8b
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 12:39:15 2019 -0400
pan/midgard: Add csel invert optimization
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0f4b3954805b76135fbaeb434b9cad3226e287a
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 12:38:51 2019 -0400
pan/midgard: Add mir_flip helper
Useful for various operations on both commutative and anticommutative
ops.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=10037ce52320df38d1cc652f4d1be78053b11ed8
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 12:13:52 2019 -0400
pan/midgard: Tightly pack 32-bit constants
If we can reuse constant slots from other instructions, we would like to
do so to include more instructions per bundle.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3ca283bc171e5d241bbd619dd52773f1d0f892d
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 10:43:51 2019 -0400
pan/midgard: Allow writeout to see into the future
If an instruction could be scheduled to vmul to satisfy the writeout
conditions, let's do that and save an instruction+cycle per fragment
shader.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12a70ccd9ec7bd4d28bc66a3646942a1a4e055c2
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 10:28:48 2019 -0400
pan/midgard: Allow 6 instructions per bundle
We never had a scheduler good enough to hit this case before! :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=34ff50cadd8157c5f41db301aa26d42af4c708b2
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 10:22:35 2019 -0400
pan/midgard: Only one conditional per bundle allowed
There's no r32 to save ya after you use up r31 :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2715bd02ee7e67a28ccf96ed24aeb8182bbef747
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 09:48:53 2019 -0400
pan/midgard: Schedule to smul/sadd
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=57bac68fffe4d7dcb5cf573ca9ad4cd262d3a5e1
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 09:48:43 2019 -0400
pan/midgard: Extend choose_instruction for scalar units
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9edae3ecb1030f4b9a9e58f7962c5ab4abaf440
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Sep 28 09:48:27 2019 -0400
pan/midgard: Don't double check SCALAR units
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3b3daa9d3f02f4a4d3db91653b04014b67a3666
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Mon Sep 23 08:00:51 2019 -0400
pan/midgard: Use new scheduler
We still emit in-order but we switch to using the bundles created from
the new scheduler, which will allow greater flexibility and room for
out-of-order optimization.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1409af9fc758b88601ceb02a1abf3cd263a224a2
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 20:18:16 2019 -0400
pan/midgard: Add distance metric to choose_instruction
We require chosen instructions to be "close", to avoid ballooning
register pressure. This is a kludge that will go away once we have
proper liveness tracking in the scheduler, but for now it prevents a lot
of needless spilling.
v2: Lower threshold to 6 (from 8). Schedule is hurt, but a few shaders
that spilled excessively are fixed.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Derp
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9571b53e1b2d7dfa8cff5281890d6111c28fb74
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 08:18:54 2019 -0400
pan/midgard: Add mir_choose_alu helper
Based on a given unit.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8462e8246720b868ef6f26cd6d8076ca7cfdb485
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Mon Sep 23 15:57:58 2019 -0400
pan/midgard: Implement load/store pairing
We can bundle two load/store together. This eliminates the need for
explicit load/store pairing in a prepass, as well.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7cf493241061d2d942a8555ec8cfa08be3254045
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Tue Sep 24 09:06:37 2019 -0400
pan/midgard: Extend csel_swizzle to branches
Conditions for branches don't have a swizzle explicitly in the emitted
binary, but they do implicitly get swizzled in whatever instruction
wrote r31, so we need to handle that.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9ce5a92a0d9e052ec4fc38e88d9aed81200489a
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Mon Sep 23 15:37:53 2019 -0400
pan/midgard: Add helpers for scheduling conditionals
Conditional instructions (csel and conditional branches) require their
condition to be written to a special condition pipeline register (r31.w
for scalar, r31.xyzw for vector). However, pipeline registers are live
only for the duration of a single bundle. As such, the logic to schedule
conditionals correct is surprisingly complex. Essentially, we see if we
could stuff the conditional within the same bundle as the csel/branch
without breaking anything; if we can, we do that. If we can't, we add a
dummy move to make room.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f92288e85a38ae88e6c73a298891cdde667c8b8
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 08:19:51 2019 -0400
pan/midgard: Implement predicate->unit
This allows ALUs to select for each unit of the bundle separately.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a9a48b81a2521cef24e016229e3fbbcc00322eb
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 15:43:18 2019 -0400
pan/midgard: Add predicate->exclude
A bit of a kludge but allows setting an implicit dependency of synthetic
conditional moves on the actual condition, fixing code generated like:
vmul.feq r0, ..
sadd.imov r31, .., r0
vadd.fcsel [...]
The imov runs simultaneous with feq so it gets garbage results, but it's
too late to add an actual dependency practically speaking, since the new
synthetic imov doesn't have a node associated.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6284f3ec257159aecb9493a71e9d311af3b28b0f
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Mon Sep 23 16:07:53 2019 -0400
pan/midgard: Add constant intersection filters
In the future, we will want to keep track of which components of
constants of various sizes correspond to which parts of the bundle
constants, like in the old scheduler. For now, let's just stub it out
for a simple rule of one instruction with embedded constants per bundle.
We can eventually do better, of course.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=941bdd208809f67a3c6820b07a71cb0df9f7ff72
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Mon Sep 23 07:51:08 2019 -0400
pan/midgard: Remove csel constant unit force
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=da18525b6f563107b2c8899e26690002b144feed
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sun Sep 22 09:08:33 2019 -0400
pan/midgard: Add mir_schedule_texture/ldst/alu helpers
We don't actually do any scheduling here yet, but add per-tag helpers to
consume an instruction, print it, pop it off the worklist.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=72a03bcafae8903339329ee74ba4cdd0c75b2814
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sun Sep 22 09:01:07 2019 -0400
pan/midgard: Add mir_choose_bundle helper
It's not always obvious what the optimal bundle type should be. Let's
break out the logic to decide.
Currently set for purely in-order operation.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5396369d2f4cc4bbff3bd2bf0639257ffb6fde5
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sun Sep 22 08:50:22 2019 -0400
pan/midgard: Add mir_update_worklist helper
After we've chosen an instruction, popped it off, and processed it, it's
time to update the worklist, removing that instruction from the
dependency graph to allow its dependents to be put onto the worklist.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=826fd7308bba1fcd4fd4c94c798f4f45a741e657
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Wed Sep 18 08:26:30 2019 -0400
pan/midgard: Add mir_choose_instruction stub
In the future, this routine will implement the core scheduling logic to
decide which instruction out of the worklist will be scheduled next, in
a way that minimizes cycle count and register pressure.
In the present, we are more interested in replicating in-order
scheduling with the much-more-powerful out-of-order model. So rather
than discriminating by a register pressure estimate, we simply choose
the latest possible instruction in the worklist.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f48038b588df726cd34f5d15e999498310da7432
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Aug 31 11:56:58 2019 -0700
pan/midgard: Initialize worklist
This flows naturally from the dependency graph
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3b46c0db67360442b648d5fd08e421a97f720f6
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Aug 31 11:55:31 2019 -0700
pan/midgard: Calculate dependency graph
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=adda411263217e86345f039aef730665c73732ea
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Sat Aug 31 11:08:39 2019 -0700
pan/midgard: Add flatten_mir helper
We would like to flatten a linked list of midgard_instructions into an
array of midgard_instruction pointers on the heap.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ecfcbf46225bfb14f92a515ca2140ad2cbc4646
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 08:20:17 2019 -0400
pan/midgard: Squeeze indices before scheduling
This allows node_count to be correct while scheduling.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad05e8a52ce19f5b48302677b0c0f9ec24a27ed8
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 17:07:30 2019 -0400
pan/midgard: Fix component count handling for ldst
It's not based on the writemask and it can't be inferred; it's just
intrinsic to the op itself.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cc0544a0f564953d454cd41845333122015ecccd
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Fri Sep 27 17:07:10 2019 -0400
pan/midgard: Add missing parans in SWIZZLE definition
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
More information about the mesa-commit
mailing list