summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/rasterizer/archrast
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2018-02-26 17:55:23 -0600
committerGeorge Kyriazis <[email protected]>2018-03-09 09:36:07 -0600
commit2f6ae8cfcd41851c6f7732795f1e23617b3ae7c3 (patch)
tree989397df767a0d616c4ba8ae166e57363edd08f8 /src/gallium/drivers/swr/rasterizer/archrast
parent714093203eae1acfcbc18920be09a9f2b0e2245b (diff)
swr/rast: Add split draw and other state information to DrawInfoEvent.
Removed specific split draw events. Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium/drivers/swr/rasterizer/archrast')
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp22
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/events.proto4
-rw-r--r--src/gallium/drivers/swr/rasterizer/archrast/events_private.proto20
3 files changed, 18 insertions, 28 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
index d5cffbb5cec..af18b161eaf 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
+++ b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
@@ -85,28 +85,18 @@ namespace ArchRast
virtual void Handle(const DrawInstancedEvent& event)
{
- DrawInfoEvent e(event.data.drawId, ArchRast::Instanced, event.data.topology, event.data.numVertices, 0, 0, event.data.startVertex, event.data.numInstances, event.data.startInstance);
+ 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);
EventHandlerFile::Handle(e);
}
virtual void Handle(const DrawIndexedInstancedEvent& event)
{
- 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);
-
- EventHandlerFile::Handle(e);
- }
-
- virtual void Handle(const DrawInstancedSplitEvent& event)
- {
- DrawInfoEvent e(event.data.drawId, ArchRast::InstancedSplit, 0, 0, 0, 0, 0, 0, 0);
-
- EventHandlerFile::Handle(e);
- }
-
- virtual void Handle(const DrawIndexedInstancedSplitEvent& event)
- {
- DrawInfoEvent e(event.data.drawId, ArchRast::IndexedInstancedSplit, 0, 0, 0, 0, 0, 0, 0);
+ 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);
EventHandlerFile::Handle(e);
}
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/events.proto b/src/gallium/drivers/swr/rasterizer/archrast/events.proto
index ee5d75b5f2f..45193a33fd3 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/events.proto
+++ b/src/gallium/drivers/swr/rasterizer/archrast/events.proto
@@ -48,6 +48,10 @@ event DrawInfoEvent
int32_t baseVertex;
uint32_t numInstances;
uint32_t startInstance;
+ uint32_t tsEnable;
+ uint32_t gsEnable;
+ uint32_t soEnable;
+ uint32_t splitId; // Split draw count or id.
};
event DispatchEvent
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto b/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
index a07c4a7f136..760f7aa4957 100644
--- a/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
+++ b/src/gallium/drivers/swr/rasterizer/archrast/events_private.proto
@@ -128,6 +128,10 @@ event DrawInstancedEvent
int32_t startVertex;
uint32_t numInstances;
uint32_t startInstance;
+ uint32_t tsEnable;
+ uint32_t gsEnable;
+ uint32_t soEnable;
+ uint32_t splitId; // Split draw count or id.
};
event DrawIndexedInstancedEvent
@@ -139,16 +143,8 @@ event DrawIndexedInstancedEvent
int32_t baseVertex;
uint32_t numInstances;
uint32_t startInstance;
-};
-
-///@brief API Stat: Split draw event for DrawInstanced. In certain cases, Rasty can split draws up into smaller draws.
-event DrawInstancedSplitEvent
-{
- uint32_t drawId;
-};
-
-///@brief API Stat: Split draw event for DrawIndexedInstanced.
-event DrawIndexedInstancedSplitEvent
-{
- uint32_t drawId;
+ uint32_t tsEnable;
+ uint32_t gsEnable;
+ uint32_t soEnable;
+ uint32_t splitId; // Split draw count or id.
};