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

Reply via email to