diff --git a/src/gallium/include/frontend/api.h b/src/gallium/include/frontend/api.h index e95814ad64a..1cd11c2989a 100644 --- a/src/gallium/include/frontend/api.h +++ b/src/gallium/include/frontend/api.h @@ -99,6 +99,20 @@ enum st_attachment_type { #define ST_INVALIDATE_VS_CONSTBUF0 (1 << 2) #define ST_INVALIDATE_VERTEX_BUFFERS (1 << 3) #define ST_INVALIDATE_FB_STATE (1 << 4) +#define ST_INVALIDATE_VIEWPORT (1 << 5) +#define ST_INVALIDATE_VS_STATE (1 << 6) +#define ST_INVALIDATE_GS_STATE (1 << 7) +#define ST_INVALIDATE_TCS_STATE (1 << 8) +#define ST_INVALIDATE_TES_STATE (1 << 9) +#define ST_INVALIDATE_MESH_STATE (1 << 10) +#define ST_INVALIDATE_RASTERIZER (1 << 11) +#define ST_INVALIDATE_FS_SAMPLERS (1 << 12) +#define ST_INVALIDATE_FS_STATE (1 << 13) +#define ST_INVALIDATE_BLEND (1 << 14) +#define ST_INVALIDATE_DSA (1 << 15) +#define ST_INVALIDATE_SAMPLE_MASK (1 << 16) +#define ST_INVALIDATE_SAMPLE_SHADING (1 << 17) +#define ST_INVALIDATE_FS_IMAGES (1 << 18) /** * Value to pipe_frontend_streen::get_param function. diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 733d0da96c2..a42d0c36896 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -909,6 +909,34 @@ st_context_invalidate_state(struct st_context *st, unsigned flags) } if (flags & ST_INVALIDATE_FB_STATE) ST_SET_STATE(ctx->NewDriverState, ST_NEW_FB_STATE); + if (flags & ST_INVALIDATE_VIEWPORT) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_VIEWPORT); + if (flags & ST_INVALIDATE_VS_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_VS_STATE); + if (flags & ST_INVALIDATE_GS_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_GS_STATE); + if (flags & ST_INVALIDATE_TCS_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_TCS_STATE); + if (flags & ST_INVALIDATE_TES_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_TES_STATE); + if (flags & ST_INVALIDATE_MESH_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_MS_STATE); + if (flags & ST_INVALIDATE_RASTERIZER) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_RASTERIZER); + if (flags & ST_INVALIDATE_FS_SAMPLERS) + ST_SET_STATE2(ctx->NewDriverState, ST_NEW_FS_SAMPLERS, ST_NEW_FS_SAMPLER_VIEWS); + if (flags & ST_INVALIDATE_FS_STATE) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_FS_STATE); + if (flags & ST_INVALIDATE_BLEND) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_BLEND); + if (flags & ST_INVALIDATE_DSA) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_DSA); + if (flags & ST_INVALIDATE_SAMPLE_MASK) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_SAMPLE_STATE); + if (flags & ST_INVALIDATE_SAMPLE_SHADING) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_SAMPLE_SHADING); + if (flags & ST_INVALIDATE_FS_IMAGES) + ST_SET_STATE(ctx->NewDriverState, ST_NEW_FS_IMAGES); }