diff options
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_cb_readpixels.c | 8 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_context.h | 13 |
2 files changed, 11 insertions, 10 deletions
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 |