Use barrier packets for event profiling

Use barrier packets for every profile marker that gets submitted
and use the completion signal to get GPU ts. This gives most accurate
dispatch time. Club cache flushes with profile marker if there is a
pending dispatch that needs cache flush. This optimization saves on
extra barrier and helps wall time

Change-Id: Ib62d6d7aabf4743827b561be6c9c5afa813203da
这个提交包含在:
Saleel Kudchadker 于 2020-12-03 13:45:14 -05:00 提交
1 父节点 36c328842f
当前提交 59c6cb0268
3 个文件已更改
+106 -16

没有与搜索条件相匹配的文件

+2 -1
查看文件
@@ -97,7 +97,7 @@ class Event : public RuntimeObject {
static const EventWaitList nullWaitList;
struct ProfilingInfo {
ProfilingInfo(bool enabled = false) : enabled_(enabled), waves_(0) {
ProfilingInfo(bool enabled = false) : enabled_(enabled), waves_(0), marker_ts_(false) {
if (enabled) {
clear();
callback_ = nullptr;
@@ -111,6 +111,7 @@ class Event : public RuntimeObject {
bool enabled_; //!< Profiling enabled for the wave limiter
uint32_t waves_; //!< The number of waves used in a dispatch
ProfilingCallback* callback_;
bool marker_ts_;
void clear() {
queued_ = 0ULL;
submitted_ = 0ULL;