[Mesa-dev] [PATCH 08/32] swr: [rasterizer archrast] Fix performance issue with archrast stats
Tim Rowley
timothy.o.rowley at intel.com
Thu Mar 16 19:09:33 UTC 2017
Performance is now 50x faster with archrast now that we're properly
filtering out all of the rdtsc begin/end.
---
.../drivers/swr/rasterizer/archrast/archrast.cpp | 30 +++++++++++-----------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
index 5bb1c7b..5216c1b 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
+++ b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
@@ -88,10 +88,10 @@ namespace ArchRast
EventHandlerStatsFile(uint32_t id) : EventHandlerFile(id) {}
// These are events that we're not interested in saving in stats event files.
- virtual void Handle(Start& event) {}
- virtual void Handle(End& event) {}
+ virtual void Handle(Start event) {}
+ virtual void Handle(End event) {}
- virtual void Handle(EarlyDepthStencilInfoSingleSample& event)
+ virtual void Handle(EarlyDepthStencilInfoSingleSample event)
{
//earlyZ test compute
DSSingleSample.earlyZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -112,7 +112,7 @@ namespace ArchRast
DSOmZ.earlyStencilTestCount += DSSingleSample.earlyStencilTestCount;
}
- virtual void Handle(EarlyDepthStencilInfoSampleRate& event)
+ virtual void Handle(EarlyDepthStencilInfoSampleRate event)
{
//earlyZ test compute
DSSampleRate.earlyZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -133,7 +133,7 @@ namespace ArchRast
DSOmZ.earlyStencilTestCount += DSSampleRate.earlyStencilTestCount;
}
- virtual void Handle(EarlyDepthStencilInfoNullPS& event)
+ virtual void Handle(EarlyDepthStencilInfoNullPS event)
{
//earlyZ test compute
DSNullPS.earlyZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -154,7 +154,7 @@ namespace ArchRast
DSOmZ.earlyStencilTestCount += DSNullPS.earlyStencilTestCount;
}
- virtual void Handle(LateDepthStencilInfoSingleSample& event)
+ virtual void Handle(LateDepthStencilInfoSingleSample event)
{
//lateZ test compute
DSSingleSample.lateZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -175,7 +175,7 @@ namespace ArchRast
DSOmZ.lateStencilTestCount += DSSingleSample.lateStencilTestCount;
}
- virtual void Handle(LateDepthStencilInfoSampleRate& event)
+ virtual void Handle(LateDepthStencilInfoSampleRate event)
{
//lateZ test compute
DSSampleRate.lateZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -196,7 +196,7 @@ namespace ArchRast
DSOmZ.lateStencilTestCount += DSSampleRate.lateStencilTestCount;
}
- virtual void Handle(LateDepthStencilInfoNullPS& event)
+ virtual void Handle(LateDepthStencilInfoNullPS event)
{
//lateZ test compute
DSNullPS.lateZTestPassCount += _mm_popcnt_u32(event.data.depthPassMask);
@@ -217,7 +217,7 @@ namespace ArchRast
DSOmZ.lateStencilTestCount += DSNullPS.lateStencilTestCount;
}
- virtual void Handle(EarlyDepthInfoPixelRate& event)
+ virtual void Handle(EarlyDepthInfoPixelRate event)
{
//earlyZ test compute
DSPixelRate.earlyZTestCount += _mm_popcnt_u32(event.data.activeLanes);
@@ -231,7 +231,7 @@ namespace ArchRast
}
- virtual void Handle(LateDepthInfoPixelRate& event)
+ virtual void Handle(LateDepthInfoPixelRate event)
{
//lateZ test compute
DSPixelRate.lateZTestCount += _mm_popcnt_u32(event.data.activeLanes);
@@ -246,7 +246,7 @@ namespace ArchRast
}
- virtual void Handle(BackendDrawEndEvent& event)
+ virtual void Handle(BackendDrawEndEvent event)
{
//singleSample
EventHandlerFile::Handle(EarlyZSingleSample(event.data.drawId, DSSingleSample.earlyZTestPassCount, DSSingleSample.earlyZTestFailCount, DSSingleSample.earlyZTestCount));
@@ -283,7 +283,7 @@ namespace ArchRast
DSOmZ = {};
}
- virtual void Handle(FrontendDrawEndEvent& event)
+ virtual void Handle(FrontendDrawEndEvent event)
{
//Clipper
EventHandlerFile::Handle(VertsClipped(event.data.drawId, CS.clippedVerts));
@@ -302,19 +302,19 @@ namespace ArchRast
GS = {};
}
- virtual void Handle(GSPrimInfo& event)
+ virtual void Handle(GSPrimInfo event)
{
GS.inputPrimCount += event.data.inputPrimCount;
GS.primGeneratedCount += event.data.primGeneratedCount;
GS.vertsInput += event.data.vertsInput;
}
- virtual void Handle(ClipVertexCount& event)
+ virtual void Handle(ClipVertexCount event)
{
CS.clippedVerts += (_mm_popcnt_u32(event.data.primMask) * event.data.vertsPerPrim);
}
- virtual void Handle(TessPrimCount& event)
+ virtual void Handle(TessPrimCount event)
{
TS.inputPrims += event.data.primCount;
}
--
2.7.4
More information about the mesa-dev
mailing list