pan/bi: Model pos/vary segments in STORE instructions

For Bifrost, we model load/store segments, for example for thread local storage.
We need something similar on Valhall -- access modifiers. There are four access
modifiers on Valhall, controlling memory subsystem optimizations for the access:

none: Nothing may be assumed. Corresponds to "global".

istream: Internally streaming within the GPU. Corresponds to "pos", as it's
used for position stores.

estream: Externally streaming outside the GPU. Corresponds to "vary", as it's
used for varying stores.

force: Force access in discarded threads. Corresponds to "tl", as it's required
for correct behaviour of helper invocations that use the stack.

If these access modifiers end up being useful outside these fixed purposes, we
may need to rework this part of the IR. For now, this should suffice.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15216>
This commit is contained in:
Alyssa Rosenzweig
2021-12-07 19:07:43 -05:00
committed by Marge Bot
parent aaa39f0e60
commit 039bb4e68c
+16 -16
View File
@@ -7534,8 +7534,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7549,8 +7549,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7564,8 +7564,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7579,8 +7579,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7594,8 +7594,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7609,8 +7609,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7624,8 +7624,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>
@@ -7639,8 +7639,8 @@
<opt>none</opt>
<opt>wls</opt>
<opt>stream</opt>
<reserved/>
<reserved/>
<opt pseudo="true">pos</opt>
<opt pseudo="true">vary</opt>
<reserved/>
<opt>tl</opt>
</mod>