diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2021-01-22 16:41:39 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-01-26 09:26:58 +0000 |
commit | 23461897fe14dfff697e0b39d69da67b8804edb7 (patch) | |
tree | 8ba50e3bd200c660f9df8b18c1ed3d789aa0e45a /src/amd/common | |
parent | cbcb9e7e1b52b49902f8144961f6f375c65a9ce1 (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.h | 7 |
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. |