st/mesa: move blend color into its own state atom
authorMarek Olšák <marek.olsak@amd.com>
Sat, 10 Jun 2017 17:36:11 +0000 (19:36 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 21 Jun 2017 23:51:02 +0000 (01:51 +0200)
This is now sensible thanks to the NewBlendColor flag.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/mesa/state_tracker/st_atom_blend.c
src/mesa/state_tracker/st_atom_list.h
src/mesa/state_tracker/st_context.c

index 43b16f8905d767d1572c0629834f0d353abd5800..103c500802990671114497115f5af4d144c00043 100644 (file)
@@ -276,10 +276,13 @@ st_update_blend( struct st_context *st )
    }
 
    cso_set_blend(st->cso_context, blend);
+}
 
-   {
-      struct pipe_blend_color bc;
-      COPY_4FV(bc.color, ctx->Color.BlendColorUnclamped);
-      cso_set_blend_color(st->cso_context, &bc);
-   }
+void
+st_update_blend_color(struct st_context *st)
+{
+   struct pipe_blend_color bc;
+
+   COPY_4FV(bc.color, st->ctx->Color.BlendColorUnclamped);
+   cso_set_blend_color(st->cso_context, &bc);
 }
index 614ee9006e8075a83518c767d4eed4de51b2ac1e..81a93082a0355812f766d70e7b6f19e3eedba67e 100644 (file)
@@ -14,6 +14,7 @@ ST_STATE(ST_NEW_VIEWPORT, st_update_viewport)
 ST_STATE(ST_NEW_SCISSOR, st_update_scissor)
 ST_STATE(ST_NEW_WINDOW_RECTANGLES, st_update_window_rectangles)
 ST_STATE(ST_NEW_BLEND, st_update_blend)
+ST_STATE(ST_NEW_BLEND_COLOR, st_update_blend_color)
 
 ST_STATE(ST_NEW_VS_SAMPLER_VIEWS, st_update_vertex_textures)
 ST_STATE(ST_NEW_FS_SAMPLER_VIEWS, st_update_fragment_textures)
index 18f202632a8912d9a1be96bd29991505f71fd157..f57cd6a42560b80cfdadbf825760d0f31a8e389d 100644 (file)
@@ -503,7 +503,7 @@ static void st_init_driver_flags(struct st_context *st)
    f->NewScissorTest = ST_NEW_SCISSOR | ST_NEW_RASTERIZER;
    f->NewAlphaTest = ST_NEW_DSA;
    f->NewBlend = ST_NEW_BLEND;
-   f->NewBlendColor = ST_NEW_BLEND; /* TODO: add an atom for blend color */
+   f->NewBlendColor = ST_NEW_BLEND_COLOR;
    f->NewColorMask = ST_NEW_BLEND;
    f->NewDepth = ST_NEW_DSA;
    f->NewLogicOp = ST_NEW_BLEND;