On Thursday, September 15, 2016 9:16:04 PM PDT Jason Ekstrand wrote:
> This intrinsic has no destination, no sources, no variables, and can be
> eliminated.  In other words, it does nothing and will always get deleted by
> dead code elimination.  However, it does provide a quick-and-easy way to
> temporarily tag a particular location in a NIR shader.
> 
> Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net>
> ---
>  src/compiler/nir/nir_intrinsics.h | 3 +++
>  1 file changed, 3 insertions(+)

These two are:
Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

I understand that Connor may not be a fan of this code, but it's been
several weeks and we don't have a better proposal.  We need to unblock
RADV.

I agree with Connor that we shouldn't be relying on the details of how
the NIR control flow decides to split/join blocks...and inserting or
removing a control flow node does tend to split/join blocks all over
the place, making some set of your block pointers invalid.

I like the approach of adding a nop instruction to hold the current
position.  The nop will end up somewhere, and you can just resume from
wherever it is, and you don't have to assume anything about how NIR
decided to split/join blocks.

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to