Yes, please see the attached updated patch. Thanks, Marek
On Thu, Mar 10, 2016 at 6:00 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > Do you also need to do this when validating the compute pipeline? > > On Thu, Mar 10, 2016 at 11:59 AM, Marek Olšák <mar...@gmail.com> wrote: >> From: Marek Olšák <marek.ol...@amd.com> >> >> Only used indirectly when checking dirty.st != 0 >> --- >> src/mesa/state_tracker/st_context.c | 2 -- >> src/mesa/state_tracker/st_context.h | 2 +- >> src/mesa/state_tracker/st_draw.c | 4 ++-- >> 3 files changed, 3 insertions(+), 5 deletions(-) >> >> diff --git a/src/mesa/state_tracker/st_context.c >> b/src/mesa/state_tracker/st_context.c >> index e3ddee6..f5a6f85 100644 >> --- a/src/mesa/state_tracker/st_context.c >> +++ b/src/mesa/state_tracker/st_context.c >> @@ -141,9 +141,7 @@ void st_invalidate_state(struct gl_context * ctx, >> GLbitfield new_state) >> >> /* Invalidate render and compute pipelines. */ >> st->dirty.mesa |= new_state; >> - st->dirty.st |= ST_NEW_MESA; >> st->dirty_cp.mesa |= new_state; >> - st->dirty_cp.st |= ST_NEW_MESA; >> >> /* This is the only core Mesa module we depend upon. >> * No longer use swrast, swsetup, tnl. >> diff --git a/src/mesa/state_tracker/st_context.h >> b/src/mesa/state_tracker/st_context.h >> index f960c64..ba51a9c 100644 >> --- a/src/mesa/state_tracker/st_context.h >> +++ b/src/mesa/state_tracker/st_context.h >> @@ -50,7 +50,7 @@ struct st_perf_monitor_group; >> struct u_upload_mgr; >> >> >> -#define ST_NEW_MESA (1 << 0) /* Mesa state has changed */ >> +/* gap */ >> #define ST_NEW_FRAGMENT_PROGRAM (1 << 1) >> #define ST_NEW_VERTEX_PROGRAM (1 << 2) >> #define ST_NEW_FRAMEBUFFER (1 << 3) >> diff --git a/src/mesa/state_tracker/st_draw.c >> b/src/mesa/state_tracker/st_draw.c >> index 2de6620..fdd59a3 100644 >> --- a/src/mesa/state_tracker/st_draw.c >> +++ b/src/mesa/state_tracker/st_draw.c >> @@ -201,7 +201,7 @@ st_draw_vbo(struct gl_context *ctx, >> st_flush_bitmap_cache(st); >> >> /* Validate state. */ >> - if (st->dirty.st || ctx->NewDriverState) { >> + if (st->dirty.st || st->dirty.mesa || ctx->NewDriverState) { >> st_validate_state(st, ST_PIPELINE_RENDER); >> >> #if 0 >> @@ -314,7 +314,7 @@ st_indirect_draw_vbo(struct gl_context *ctx, >> assert(stride); >> >> /* Validate state. */ >> - if (st->dirty.st || ctx->NewDriverState) { >> + if (st->dirty.st || st->dirty.mesa || ctx->NewDriverState) { >> st_validate_state(st, ST_PIPELINE_RENDER); >> } >> >> -- >> 2.5.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
From 466d11ead34f40b68c2ce30e1a8e1a81d1213cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com> Date: Wed, 9 Mar 2016 17:03:12 +0100 Subject: [PATCH] st/mesa: remove ST_NEW_MESA flag (v2) Only used indirectly when checking dirty.st != 0 v2: also update st_cb_compute.c --- src/mesa/state_tracker/st_cb_compute.c | 2 +- src/mesa/state_tracker/st_context.c | 2 -- src/mesa/state_tracker/st_context.h | 2 +- src/mesa/state_tracker/st_draw.c | 4 ++-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_compute.c b/src/mesa/state_tracker/st_cb_compute.c index 364159d..bfc6d96 100644 --- a/src/mesa/state_tracker/st_cb_compute.c +++ b/src/mesa/state_tracker/st_cb_compute.c @@ -47,7 +47,7 @@ static void st_dispatch_compute_common(struct gl_context *ctx, if (ctx->NewState) _mesa_update_state(ctx); - if (st->dirty_cp.st || ctx->NewDriverState) + if (st->dirty_cp.st || st->dirty_cp.mesa || ctx->NewDriverState) st_validate_state(st, ST_PIPELINE_COMPUTE); for (unsigned i = 0; i < 3; i++) { diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index e3ddee6..f5a6f85 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -141,9 +141,7 @@ void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state) /* Invalidate render and compute pipelines. */ st->dirty.mesa |= new_state; - st->dirty.st |= ST_NEW_MESA; st->dirty_cp.mesa |= new_state; - st->dirty_cp.st |= ST_NEW_MESA; /* This is the only core Mesa module we depend upon. * No longer use swrast, swsetup, tnl. diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index f960c64..ba51a9c 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -50,7 +50,7 @@ struct st_perf_monitor_group; struct u_upload_mgr; -#define ST_NEW_MESA (1 << 0) /* Mesa state has changed */ +/* gap */ #define ST_NEW_FRAGMENT_PROGRAM (1 << 1) #define ST_NEW_VERTEX_PROGRAM (1 << 2) #define ST_NEW_FRAMEBUFFER (1 << 3) diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index 2de6620..fdd59a3 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -201,7 +201,7 @@ st_draw_vbo(struct gl_context *ctx, st_flush_bitmap_cache(st); /* Validate state. */ - if (st->dirty.st || ctx->NewDriverState) { + if (st->dirty.st || st->dirty.mesa || ctx->NewDriverState) { st_validate_state(st, ST_PIPELINE_RENDER); #if 0 @@ -314,7 +314,7 @@ st_indirect_draw_vbo(struct gl_context *ctx, assert(stride); /* Validate state. */ - if (st->dirty.st || ctx->NewDriverState) { + if (st->dirty.st || st->dirty.mesa || ctx->NewDriverState) { st_validate_state(st, ST_PIPELINE_RENDER); } -- 2.5.0
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev