st/mesa: negate the can_force_persample_interp flag
authorMarek Olšák <marek.olsak@amd.com>
Mon, 19 Oct 2015 22:12:53 +0000 (00:12 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 20 Oct 2015 10:51:51 +0000 (12:51 +0200)
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/mesa/state_tracker/st_atom_rasterizer.c
src/mesa/state_tracker/st_atom_shader.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h

index 0f01e9939de21a625babfec1ecb8e4600eee51a5..55d5e66243c08dbdc5b3a19d208e2124828b3629 100644 (file)
@@ -239,7 +239,7 @@ static void update_raster_state( struct st_context *st )
 
    /* _NEW_MULTISAMPLE | _NEW_BUFFERS */
    raster->force_persample_interp =
-         st->can_force_persample_interp &&
+         !st->force_persample_in_shader &&
          ctx->Multisample._Enabled &&
          ctx->Multisample.SampleShading &&
          ctx->Multisample.MinSampleShadingValue *
index 394145409b3cb6342ffeb9835acfbf8c884ecacd..0f9ea101889c7b25d42f355ab7f6cd2b436c0f7d 100644 (file)
@@ -76,7 +76,7 @@ update_fp( struct st_context *st )
     * Ignore sample qualifier while computing this flag.
     */
    key.persample_shading =
-      !st->can_force_persample_interp &&
+      st->force_persample_in_shader &&
       !(stfp->Base.Base.SystemValuesRead & (SYSTEM_BIT_SAMPLE_ID |
                                             SYSTEM_BIT_SAMPLE_POS)) &&
       _mesa_get_min_invocations_per_fragment(st->ctx, &stfp->Base, true) > 1;
index 6256c0b0d8235173784cf4033dc0b57f0abdada8..70e006912dc6702cb0f4bfbf6de6c212f2839f05 100644 (file)
@@ -235,8 +235,9 @@ st_create_context_priv( struct gl_context *ctx, struct pipe_context *pipe,
                                               PIPE_BIND_SAMPLER_VIEW);
    st->prefer_blit_based_texture_transfer = screen->get_param(screen,
                               PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER);
-   st->can_force_persample_interp = screen->get_param(screen,
-                                          PIPE_CAP_FORCE_PERSAMPLE_INTERP);
+   st->force_persample_in_shader =
+      screen->get_param(screen, PIPE_CAP_SAMPLE_SHADING) &&
+      !screen->get_param(screen, PIPE_CAP_FORCE_PERSAMPLE_INTERP);
    st->has_shareable_shaders = screen->get_param(screen,
                                                  PIPE_CAP_SHAREABLE_SHADERS);
    st->needs_texcoord_semantic =
index 446fe5de889a8104bac7e3191f393b87cd9eb8ad..ec95259b67a8d53535ac5bb22cb695285cc095dc 100644 (file)
@@ -98,7 +98,7 @@ struct st_context
    boolean has_etc1;
    boolean has_etc2;
    boolean prefer_blit_based_texture_transfer;
-   boolean can_force_persample_interp;
+   boolean force_persample_in_shader;
    boolean has_shareable_shaders;
 
    boolean needs_texcoord_semantic;