struct {
uint64_t prims_emitted;
uint64_t draw_calls;
+ uint64_t rs_operations;
} stats;
struct pipe_debug_callback debug;
struct etna_cmd_stream *stream = ctx->stream;
struct etna_coalesce coalesce;
+ ctx->stats.rs_operations++;
+
if (screen->specs.pixel_pipes == 1) {
etna_cmd_stream_reserve(stream, 22);
etna_coalesce_start(stream, &coalesce);
struct pipe_driver_query_info list[] = {
{"prims-emitted", PIPE_QUERY_PRIMITIVES_EMITTED, { 0 }},
{"draw-calls", ETNA_QUERY_DRAW_CALLS, { 0 }},
+ {"rs-operations", ETNA_QUERY_RS_OPERATIONS, { 0 }},
};
if (!info)
}
#define ETNA_QUERY_DRAW_CALLS (PIPE_QUERY_DRIVER_SPECIFIC + 0)
+#define ETNA_QUERY_RS_OPERATIONS (PIPE_QUERY_DRIVER_SPECIFIC + 1)
void
etna_query_screen_init(struct pipe_screen *pscreen);
return ctx->stats.prims_emitted;
case ETNA_QUERY_DRAW_CALLS:
return ctx->stats.draw_calls;
+ case ETNA_QUERY_RS_OPERATIONS:
+ return ctx->stats.rs_operations;
}
return 0;
switch (query_type) {
case PIPE_QUERY_PRIMITIVES_EMITTED:
case ETNA_QUERY_DRAW_CALLS:
+ case ETNA_QUERY_RS_OPERATIONS:
break;
default:
return NULL;