| 
				
			 | 
			
			 | 
			@@ -137,6 +137,13 @@ llvmpipe_get_query_result(struct pipe_context *pipe, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   case PIPE_QUERY_PRIMITIVES_EMITTED: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      *result = pq->num_primitives_written; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   case PIPE_QUERY_SO_STATISTICS: { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      struct pipe_query_data_so_statistics *stats = | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			         (struct pipe_query_data_so_statistics *)vresult; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      stats->num_primitives_written = pq->num_primitives_written; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      stats->primitives_storage_needed = pq->num_primitives_generated; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   default: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      assert(0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      break; | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -174,6 +181,13 @@ llvmpipe_begin_query(struct pipe_context *pipe, struct pipe_query *q) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->num_primitives_generated = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   if (pq->type == PIPE_QUERY_SO_STATISTICS) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      pq->num_primitives_written = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->so_stats.num_primitives_written = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      pq->num_primitives_generated = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->num_primitives_generated = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   if (pq->type == PIPE_QUERY_OCCLUSION_COUNTER) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->active_occlusion_query = TRUE; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->dirty |= LP_NEW_OCCLUSION_QUERY; | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -197,6 +211,11 @@ llvmpipe_end_query(struct pipe_context *pipe, struct pipe_query *q) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      pq->num_primitives_generated = llvmpipe->num_primitives_generated; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   if (pq->type == PIPE_QUERY_SO_STATISTICS) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      pq->num_primitives_written = llvmpipe->so_stats.num_primitives_written; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      pq->num_primitives_generated = llvmpipe->num_primitives_generated; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   if (pq->type == PIPE_QUERY_OCCLUSION_COUNTER) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      assert(llvmpipe->active_occlusion_query); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      llvmpipe->active_occlusion_query = FALSE; |