freedreno: wire up core sample-shading support
authorRob Clark <robdclark@chromium.org>
Thu, 25 Apr 2019 19:22:30 +0000 (12:22 -0700)
committerRob Clark <robdclark@chromium.org>
Thu, 25 Apr 2019 21:13:31 +0000 (14:13 -0700)
Signed-off-by: Rob Clark <robdclark@chromium.org>
src/gallium/drivers/freedreno/freedreno_context.h
src/gallium/drivers/freedreno/freedreno_state.c

index d389a42e62dfcbe5eb631fd4bb560a0df8c24360..4d22f8c470e9969f7660b236e45b31c30162f46d 100644 (file)
@@ -126,6 +126,7 @@ enum fd_dirty_3d_state {
        FD_DIRTY_VIEWPORT    = BIT(8),
        FD_DIRTY_VTXSTATE    = BIT(9),
        FD_DIRTY_VTXBUF      = BIT(10),
+       FD_DIRTY_MIN_SAMPLES = BIT(11),
 
        FD_DIRTY_SCISSOR     = BIT(12),
        FD_DIRTY_STREAMOUT   = BIT(13),
@@ -285,6 +286,7 @@ struct fd_context {
        struct pipe_blend_color blend_color;
        struct pipe_stencil_ref stencil_ref;
        unsigned sample_mask;
+       unsigned min_samples;
        /* local context fb state, for when ctx->batch is null: */
        struct pipe_framebuffer_state framebuffer;
        struct pipe_poly_stipple stipple;
index e1970f432c12f64d0e6e23f91b13e8380587ab45..8bf51bee6153289b46ca59d87f9da23a9727cc71 100644 (file)
@@ -78,6 +78,14 @@ fd_set_sample_mask(struct pipe_context *pctx, unsigned sample_mask)
        ctx->dirty |= FD_DIRTY_SAMPLE_MASK;
 }
 
+static void
+fd_set_min_samples(struct pipe_context *pctx, unsigned min_samples)
+{
+       struct fd_context *ctx = fd_context(pctx);
+       ctx->min_samples = min_samples;
+       ctx->dirty |= FD_DIRTY_MIN_SAMPLES;
+}
+
 /* notes from calim on #dri-devel:
  * index==0 will be non-UBO (ie. glUniformXYZ()) all packed together padded
  * out to vec4's
@@ -582,6 +590,7 @@ fd_state_init(struct pipe_context *pctx)
        pctx->set_stencil_ref = fd_set_stencil_ref;
        pctx->set_clip_state = fd_set_clip_state;
        pctx->set_sample_mask = fd_set_sample_mask;
+       pctx->set_min_samples = fd_set_min_samples;
        pctx->set_constant_buffer = fd_set_constant_buffer;
        pctx->set_shader_buffers = fd_set_shader_buffers;
        pctx->set_shader_images = fd_set_shader_images;