diff --git a/.pick_status.json b/.pick_status.json index 2ce18f59d2e..00a93ee9fac 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -247,7 +247,7 @@ "description": "mesa/st: Update FP state when textures change with an ATI_fs bound.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 1605e4682e8..40364296664 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -271,9 +271,11 @@ st_invalidate_state(struct gl_context *ctx) (ST_NEW_SAMPLER_VIEWS | ST_NEW_SAMPLERS | ST_NEW_IMAGE_UNITS); - if (ctx->FragmentProgram._Current && - ctx->FragmentProgram._Current->ExternalSamplersUsed) { - st->dirty |= ST_NEW_FS_STATE; + if (ctx->FragmentProgram._Current) { + struct st_program *stfp = st_program(ctx->FragmentProgram._Current); + + if (stfp->Base.ExternalSamplersUsed || stfp->ati_fs) + st->dirty |= ST_NEW_FS_STATE; } } }