swr/rast: Cache eventmanager
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.h b/src/gallium/drivers/swr/rasterizer/archrast/archrast.h
index fa88a49..c74d6ad 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/archrast.h
+++ b/src/gallium/drivers/swr/rasterizer/archrast/archrast.h
@@ -29,6 +29,7 @@
#include "common/os.h"
#include "gen_ar_event.hpp"
+#include "eventmanager.h"
namespace ArchRast
{
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp
index 20eeb29..9265440 100644
--- a/src/gallium/drivers/swr/rasterizer/core/api.cpp
+++ b/src/gallium/drivers/swr/rasterizer/core/api.cpp
@@ -143,6 +143,11 @@
#endif
}
+#if defined(KNOB_ENABLE_AR)
+ // cache the API thread event manager, for use with sim layer
+ pCreateInfo->hArEventManager = pContext->pArContext[16];
+#endif
+
// State setup AFTER context is fully initialized
SetupDefaultState(pContext);
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.h b/src/gallium/drivers/swr/rasterizer/core/api.h
index 60f56c6..c032b0b 100644
--- a/src/gallium/drivers/swr/rasterizer/core/api.h
+++ b/src/gallium/drivers/swr/rasterizer/core/api.h
@@ -213,6 +213,9 @@
// Output: size required memory passed to for SwrSaveState / SwrRestoreState
size_t contextSaveSize;
+ // ArchRast event manager.
+ HANDLE hArEventManager;
+
// Input (optional): Threading info that overrides any set KNOB values.
SWR_THREADING_INFO* pThreadInfo;