st/mesa: inline and optimize st_invalidate_readpix_cache

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Marek Olšák 2017-04-09 16:39:39 +02:00
parent 7cd6e2df65
commit 69423dcf23
2 changed files with 11 additions and 10 deletions

View file

@ -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.
*/

View file

@ -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