intel/fs: Rework zero-length URB write handling
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 1 Sep 2017 16:59:34 +0000 (09:59 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 7 Nov 2017 18:37:52 +0000 (10:37 -0800)
commit7a82ad54bb56cafaeea7f909cd9fc35542c23ba0
tree952c45b655a7626356a563a6dcb71b65cd0a98d0
parent6132992cdb858268af0e985727d80e4140be389c
intel/fs: Rework zero-length URB write handling

Originally we tried to handle this case based on slots_valid.  However,
there are a number of ways that this can go wrong.  For one, we throw
away any trailing slots which either aren't written or are set to
VARYING_SLOT_PAD.  Second, even if PSIZ is a valid slot, we may not
actually write anything there.  Between the lot of these, it was
possible to end up in a case where we tried to do a regular URB write
but ended up with a length of 1 which is invalid.  This commit moves it
to the end and makes it based on a new boolean flag urb_written.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Cc: mesa-stable@lists.freedesktop.org
src/intel/compiler/brw_fs_visitor.cpp