diff options
author | Marek Olšák <[email protected]> | 2012-03-30 17:07:45 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-03-30 17:12:51 +0200 |
commit | 452d07759db7077a62d231f758f9d5e69af3fe60 (patch) | |
tree | ccf9e293cf2b74688744a907bf83ae8c42dc26cc /src/gallium/auxiliary/util | |
parent | 4445e170bee23a3607ece0e010adef7058ac6a11 (diff) |
gallium/util: add helper function util_query_clear_result
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r-- | src/gallium/auxiliary/util/u_inlines.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h index 2fe680ff44c..23658bc8870 100644 --- a/src/gallium/auxiliary/util/u_inlines.h +++ b/src/gallium/auxiliary/util/u_inlines.h @@ -494,6 +494,36 @@ util_get_min_point_size(const struct pipe_rasterizer_state *state) !state->multisample ? 1.0f : 0.0f; } +static INLINE void +util_query_clear_result(union pipe_query_result *result, unsigned type) +{ + switch (type) { + case PIPE_QUERY_OCCLUSION_PREDICATE: + case PIPE_QUERY_SO_OVERFLOW_PREDICATE: + case PIPE_QUERY_GPU_FINISHED: + result->b = FALSE; + break; + case PIPE_QUERY_OCCLUSION_COUNTER: + case PIPE_QUERY_TIMESTAMP: + case PIPE_QUERY_TIME_ELAPSED: + case PIPE_QUERY_PRIMITIVES_GENERATED: + case PIPE_QUERY_PRIMITIVES_EMITTED: + result->u64 = 0; + break; + case PIPE_QUERY_SO_STATISTICS: + memset(&result->so_statistics, 0, sizeof(result->so_statistics)); + break; + case PIPE_QUERY_TIMESTAMP_DISJOINT: + memset(&result->timestamp_disjoint, 0, sizeof(result->timestamp_disjoint)); + break; + case PIPE_QUERY_PIPELINE_STATISTICS: + memset(&result->pipeline_statistics, 0, sizeof(result->pipeline_statistics)); + break; + default: + assert(0); + } +} + #ifdef __cplusplus } #endif |