summaryrefslogtreecommitdiff
path: root/src/amd/common
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2021-01-22 16:41:39 +0100
committerMarge Bot <eric+marge@anholt.net>2021-01-26 09:26:58 +0000
commit23461897fe14dfff697e0b39d69da67b8804edb7 (patch)
tree8ba50e3bd200c660f9df8b18c1ed3d789aa0e45a /src/amd/common
parentcbcb9e7e1b52b49902f8144961f6f375c65a9ce1 (diff)
radv: add support for emitting PS_DONE/CS_DONE on GFX6-8
On GFX6, EOS events are always emitted with EVENT_WRITE_EOS. On GFX7+, EOS events are emitted with EVENT_WRITE_EOS on the graphics queue, and with RELEASE_MEM on the compute queue. Fixes: 9c65f1f1111 ("radv: synchronize Cmd{Set,Write}Event() using PS_DONE/CS_DONE events") Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8710>
Diffstat (limited to 'src/amd/common')
-rw-r--r--src/amd/common/sid.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h
index be11c712cce..9d44d3cdbed 100644
--- a/src/amd/common/sid.h
+++ b/src/amd/common/sid.h
@@ -185,6 +185,7 @@
#define PKT3_COND_WRITE 0x45
#define PKT3_EVENT_WRITE 0x46
#define PKT3_EVENT_WRITE_EOP 0x47 /* not on GFX9 */
+#define PKT3_EVENT_WRITE_EOS 0x48 /* not on GFX9 */
#define EOP_DST_SEL(x) ((x) << 16)
#define EOP_DST_SEL_MEM 0
#define EOP_DST_SEL_TC_L2 1
@@ -198,6 +199,12 @@
#define EOP_DATA_SEL_TIMESTAMP 3
#define EOP_DATA_SEL_GDS 5
#define EOP_DATA_GDS(dw_offset, num_dwords) ((dw_offset) | ((unsigned)(num_dwords) << 16))
+
+#define EOS_DATA_SEL(x) ((x) << 29)
+#define EOS_DATA_SEL_APPEND_COUNT 0
+#define EOS_DATA_SEL_GDS 1
+#define EOS_DATA_SEL_VALUE_32BIT 2
+
/* CP DMA bug: Any use of CP_DMA.DST_SEL=TC must be avoided when EOS packets
* are used. Use DST_SEL=MC instead. For prefetch, use SRC_SEL=TC and
* DST_SEL=MC. Only CIK chips are affected.