st/mesa: be more careful about state validation in st_Bitmap()
If the only dirty state is mesa's _NEW_PROGRAM_CONSTANTS flag, we can
skip state validation before drawing a bitmap since that state doesn't
effect bitmap rendering.
This further increases the performance of the ipers demo on llvmpipe
to about what it was before commit 36c93a6fae.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
This commit is contained in:
@@ -622,7 +622,14 @@ st_Bitmap(struct gl_context *ctx, GLint x, GLint y,
|
||||
if (width == 0 || height == 0)
|
||||
return;
|
||||
|
||||
st_validate_state(st);
|
||||
/* We only need to validate state of the st dirty flags are set or
|
||||
* any non-_NEW_PROGRAM_CONSTANTS mesa flags are set. The VS we use
|
||||
* for bitmap drawing uses no constants and the FS constants are
|
||||
* explicitly uploaded in the draw_bitmap_quad() function.
|
||||
*/
|
||||
if ((st->dirty.mesa & ~_NEW_PROGRAM_CONSTANTS) || st->dirty.st) {
|
||||
st_validate_state(st);
|
||||
}
|
||||
|
||||
if (!st->bitmap.vs) {
|
||||
/* create pass-through vertex shader now */
|
||||
|
||||
Reference in New Issue
Block a user