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 committed 2020-12-03 13:45:14 -05:00
1 родитель 36c328842f
Коммит 59c6cb0268
3 files changed
+106 -16

No files matched your search

+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;