Пример #1
0
static boolean
fd_get_query_result(struct pipe_context *pctx, struct pipe_query *pq,
		boolean wait, union pipe_query_result *result)
{
	struct fd_query *q = fd_query(pq);

	if (q->active)
		return false;

	util_query_clear_result(result, q->type);

	return q->funcs->get_query_result(fd_context(pctx), q, wait, result);
}
Пример #2
0
static boolean
etna_sw_get_query_result(struct etna_context *ctx, struct etna_query *q,
                         boolean wait, union pipe_query_result *result)
{
   struct etna_sw_query *sq = etna_sw_query(q);

   if (q->active)
      return false;

   util_query_clear_result(result, q->type);
   result->u64 = sq->end_value - sq->begin_value;

   return true;
}
Пример #3
0
static boolean
fd_sw_get_query_result(struct fd_context *ctx, struct fd_query *q,
		boolean wait, union pipe_query_result *result)
{
	struct fd_sw_query *sq = fd_sw_query(q);

	if (q->active)
		return false;

	util_query_clear_result(result, q->type);

	result->u64 = sq->end_value - sq->begin_value;

	if (is_rate_query(q)) {
		double fps = (result->u64 * 1000000) /
				(double)(sq->end_time - sq->begin_time);
		result->u64 = (uint64_t)fps;
	}

	return true;
}