From: Marek Olšák Date: Sun, 9 Apr 2017 14:39:39 +0000 (+0200) Subject: st/mesa: inline and optimize st_invalidate_readpix_cache X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=69423dcf232a2cb6c9672ce95f684afa1d3842d2;p=mesa.git st/mesa: inline and optimize st_invalidate_readpix_cache Reviewed-by: Ilia Mirkin Reviewed-by: Brian Paul --- diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index 795519d0a7e..0bcf2eb4fdf 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -251,14 +251,6 @@ fail: return success; } -/* Invalidate the readpixels cache to ensure we don't read stale data. - */ -void st_invalidate_readpix_cache(struct st_context *st) -{ - pipe_resource_reference(&st->readpix_cache.src, NULL); - pipe_resource_reference(&st->readpix_cache.cache, NULL); -} - /** * Create a staging texture and blit the requested region to it. */ diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index bb003843659..dfee9275657 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -29,10 +29,10 @@ #define ST_CONTEXT_H #include "main/mtypes.h" -#include "pipe/p_state.h" #include "state_tracker/st_api.h" #include "main/fbobject.h" #include "state_tracker/st_atom.h" +#include "util/u_inlines.h" #ifdef __cplusplus @@ -287,7 +287,16 @@ extern void st_init_driver_functions(struct pipe_screen *screen, void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state); -void st_invalidate_readpix_cache(struct st_context *st); +/* Invalidate the readpixels cache to ensure we don't read stale data. + */ +static inline void +st_invalidate_readpix_cache(struct st_context *st) +{ + if (unlikely(st->readpix_cache.src)) { + pipe_resource_reference(&st->readpix_cache.src, NULL); + pipe_resource_reference(&st->readpix_cache.cache, NULL); + } +} #define Y_0_TOP 1