Lines Matching refs:sq
60 struct softpipe_query* sq;
75 sq = CALLOC_STRUCT( softpipe_query );
76 sq->type = type;
77 sq->index = index;
78 return (struct pipe_query *)sq;
93 struct softpipe_query *sq = softpipe_query(q);
95 switch (sq->type) {
99 sq->start = softpipe->occlusion_count;
102 sq->start = os_time_get_nano();
105 sq->so[sq->index].num_primitives_written = softpipe->so_stats[sq->index].num_primitives_written;
106 sq->so[sq->index].primitives_storage_needed = softpipe->so_stats[sq->index].primitives_storage_needed;
109 sq->so[sq->index].num_primitives_written = softpipe->so_stats[sq->index].num_primitives_written;
110 sq->so[sq->index].primitives_storage_needed = softpipe->so_stats[sq->index].primitives_storage_needed;
114 sq->so[i].num_primitives_written = softpipe->so_stats[i].num_primitives_written;
115 sq->so[i].primitives_storage_needed = softpipe->so_stats[i].primitives_storage_needed;
119 sq->so[sq->index].num_primitives_written = softpipe->so_stats[sq->index].num_primitives_written;
122 sq->so[sq->index].primitives_storage_needed = softpipe->so_stats[sq->index].primitives_storage_needed;
134 memcpy(&sq->stats, &softpipe->pipeline_statistics,
135 sizeof(sq->stats));
152 struct softpipe_query *sq = softpipe_query(q);
155 switch (sq->type) {
159 sq->end = softpipe->occlusion_count;
162 sq->start = 0;
165 sq->end = os_time_get_nano();
168 sq->so[sq->index].num_primitives_written =
169 softpipe->so_stats[sq->index].num_primitives_written - sq->so[sq->index].num_primitives_written;
170 sq->so[sq->index].primitives_storage_needed =
171 softpipe->so_stats[sq->index].primitives_storage_needed - sq->so[sq->index].primitives_storage_needed;
172 sq->end = sq->so[sq->index].primitives_storage_needed > sq->so[sq->index].num_primitives_written;
175 sq->end = 0;
177 sq->so[i].num_primitives_written =
178 softpipe->so_stats[i].num_primitives_written - sq->so[i].num_primitives_written;
179 sq->so[i].primitives_storage_needed =
180 softpipe->so_stats[i].primitives_storage_needed - sq->so[i].primitives_storage_needed;
181 sq->end |= sq->so[i].primitives_storage_needed > sq->so[i].num_primitives_written;
185 sq->so[sq->index].num_primitives_written =
186 softpipe->so_stats[sq->index].num_primitives_written - sq->so[sq->index].num_primitives_written;
187 sq->so[sq->index].primitives_storage_needed =
188 softpipe->so_stats[sq->index].primitives_storage_needed - sq->so[sq->index].primitives_storage_needed;
191 sq->so[sq->index].num_primitives_written =
192 softpipe->so_stats[sq->index].num_primitives_written - sq->so[sq->index].num_primitives_written;
195 sq->so[sq->index].primitives_storage_needed =
196 softpipe->so_stats[sq->index].primitives_storage_needed - sq->so[sq->index].primitives_storage_needed;
202 sq->stats.ia_vertices =
203 softpipe->pipeline_statistics.ia_vertices - sq->stats.ia_vertices;
204 sq->stats.ia_primitives =
205 softpipe->pipeline_statistics.ia_primitives - sq->stats.ia_primitives;
206 sq->stats.vs_invocations =
207 softpipe->pipeline_statistics.vs_invocations - sq->stats.vs_invocations;
208 sq->stats.gs_invocations =
209 softpipe->pipeline_statistics.gs_invocations - sq->stats.gs_invocations;
210 sq->stats.gs_primitives =
211 softpipe->pipeline_statistics.gs_primitives - sq->stats.gs_primitives;
212 sq->stats.c_invocations =
213 softpipe->pipeline_statistics.c_invocations - sq->stats.c_invocations;
214 sq->stats.c_primitives =
215 softpipe->pipeline_statistics.c_primitives - sq->stats.c_primitives;
216 sq->stats.ps_invocations =
217 softpipe->pipeline_statistics.ps_invocations - sq->stats.ps_invocations;
218 sq->stats.cs_invocations =
219 softpipe->pipeline_statistics.cs_invocations - sq->stats.cs_invocations;
238 struct softpipe_query *sq = softpipe_query(q);
241 switch (sq->type) {
245 stats->num_primitives_written = sq->so[sq->index].num_primitives_written;
246 stats->primitives_storage_needed = sq->so[sq->index].primitives_storage_needed;
250 memcpy(vresult, &sq->stats,
258 vresult->b = sq->end != 0;
269 *result = sq->so[sq->index].num_primitives_written;
272 *result = sq->so[sq->index].primitives_storage_needed;
276 vresult->b = sq->end - sq->start != 0;
279 *result = sq->end - sq->start;
289 struct softpipe_query *sq = softpipe_query(q);
291 switch (sq->type) {