summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2018-02-28 17:33:13 -0600
committerGeorge Kyriazis <[email protected]>2018-03-09 09:36:14 -0600
commitb56afe1a4f019a98356afe0a76fe9dcf719a817a (patch)
treee12d0b81b63af1822334e175e77ed1d38f7414c2
parent2f6ae8cfcd41851c6f7732795f1e23617b3ae7c3 (diff)
swr/rast: Add tracking for stream out topology
Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp6
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/events.proto1
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/events_private.proto2
-rw-r--r--src/gallium/drivers/swr/rasterizer/core/api.cpp4
4 files changed, 8 insertions, 5 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
index af18b161eaf..1f87dbabcd0 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
+++ b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
@@ -87,8 +87,8 @@ namespace ArchRast
{
DrawInfoEvent e(event.data.drawId, ArchRast::Instanced, event.data.topology,
event.data.numVertices, 0, 0, event.data.startVertex, event.data.numInstances,
- event.data.startInstance, event.data.tsEnable, event.data.gsEnable, event.data.soEnable, event.data.splitId);
-
+ event.data.startInstance, event.data.tsEnable, event.data.gsEnable, event.data.soEnable, event.data.soTopology, event.data.splitId);
+
EventHandlerFile::Handle(e);
}
@@ -96,7 +96,7 @@ namespace ArchRast
{
DrawInfoEvent e(event.data.drawId, ArchRast::IndexedInstanced, event.data.topology, 0,
event.data.numIndices, event.data.indexOffset, event.data.baseVertex, event.data.numInstances,
- event.data.startInstance, event.data.tsEnable, event.data.gsEnable, event.data.soEnable, event.data.splitId);
+ event.data.startInstance, event.data.tsEnable, event.data.gsEnable, event.data.soEnable, event.data.soTopology, event.data.splitId);
EventHandlerFile::Handle(e);
}
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/events.proto b/src/gallium/drivers/swr/rasterizer/archrast/events.proto
index 45193a33fd3..7d9a68d502e 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/events.proto
+++ b/src/gallium/drivers/swr/rasterizer/archrast/events.proto
@@ -51,6 +51,7 @@ event DrawInfoEvent
uint32_t tsEnable;
uint32_t gsEnable;
uint32_t soEnable;
+ uint32_t soTopology;
uint32_t splitId; // Split draw count or id.
};
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto b/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
index 760f7aa4957..f0a93107e5e 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
+++ b/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
@@ -131,6 +131,7 @@ event DrawInstancedEvent
uint32_t tsEnable;
uint32_t gsEnable;
uint32_t soEnable;
+ uint32_t soTopology;
uint32_t splitId; // Split draw count or id.
};
@@ -146,5 +147,6 @@ event DrawIndexedInstancedEvent
uint32_t tsEnable;
uint32_t gsEnable;
uint32_t soEnable;
+ uint32_t soTopology;
uint32_t splitId; // Split draw count or id.
};
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp
index 86864f022aa..b2529598bd1 100644
--- a/src/gallium/drivers/swr/rasterizer/core/api.cpp
+++ b/src/gallium/drivers/swr/rasterizer/core/api.cpp
@@ -1221,7 +1221,7 @@ void DrawInstanced(
QueueDraw(pContext);
AR_API_EVENT(DrawInstancedEvent(pDC->drawId, topology, numVertsForDraw, startVertex, numInstances,
- startInstance, pState->tsState.tsEnable, pState->gsState.gsEnable, pState->soState.soEnable, draw));
+ startInstance, pState->tsState.tsEnable, pState->gsState.gsEnable, pState->soState.soEnable, pState->gsState.outputTopology, draw));
remainingVerts -= numVertsForDraw;
draw++;
@@ -1366,7 +1366,7 @@ void DrawIndexedInstance(
QueueDraw(pContext);
AR_API_EVENT(DrawIndexedInstancedEvent(pDC->drawId, topology, numIndicesForDraw, indexOffset, baseVertex,
- numInstances, startInstance, pState->tsState.tsEnable, pState->gsState.gsEnable, pState->soState.soEnable, draw));
+ numInstances, startInstance, pState->tsState.tsEnable, pState->gsState.gsEnable, pState->soState.soEnable, pState->gsState.outputTopology, draw));
pIB += maxIndicesPerDraw * indexSize;
remainingIndices -= numIndicesForDraw;