diff options
author | Marek Olšák <[email protected]> | 2015-02-28 17:22:54 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2015-03-16 12:54:18 +0100 |
commit | 1921fa430452304e42059e36b654d9d446371526 (patch) | |
tree | 906abc69a1e34e1873dd793832a886d2b582e2b4 /src/gallium/drivers | |
parent | 52ff1edc5161dd7090fa55a11969c79dd4baad7d (diff) |
radeonsi: small cleanup in si_shader_selector_key
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_shaders.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 0a2ff2a2f03..8c3bdc5fda5 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -366,33 +366,33 @@ static INLINE void si_shader_selector_key(struct pipe_context *ctx, key->vs.gs_used_inputs = sctx->gs_shader->gs_used_inputs; } } else if (sel->type == PIPE_SHADER_FRAGMENT) { + struct si_state_rasterizer *rs = sctx->queued.named.rasterizer; + if (sel->info.properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS]) key->ps.last_cbuf = MAX2(sctx->framebuffer.state.nr_cbufs, 1) - 1; key->ps.export_16bpc = sctx->framebuffer.export_16bpc; - if (sctx->queued.named.rasterizer) { - key->ps.color_two_side = sctx->queued.named.rasterizer->two_side; + if (rs) { + key->ps.color_two_side = rs->two_side; if (sctx->queued.named.blend) { key->ps.alpha_to_one = sctx->queued.named.blend->alpha_to_one && - sctx->queued.named.rasterizer->multisample_enable && + rs->multisample_enable && !sctx->framebuffer.cb0_is_integer; } - key->ps.poly_stipple = sctx->queued.named.rasterizer->poly_stipple_enable && + key->ps.poly_stipple = rs->poly_stipple_enable && ((sctx->current_rast_prim >= PIPE_PRIM_TRIANGLES && sctx->current_rast_prim <= PIPE_PRIM_POLYGON) || sctx->current_rast_prim >= PIPE_PRIM_TRIANGLES_ADJACENCY); } - if (sctx->queued.named.dsa) { - key->ps.alpha_func = sctx->queued.named.dsa->alpha_func; - /* Alpha-test should be disabled if colorbuffer 0 is integer. */ - if (sctx->framebuffer.cb0_is_integer) - key->ps.alpha_func = PIPE_FUNC_ALWAYS; - } else { - key->ps.alpha_func = PIPE_FUNC_ALWAYS; - } + key->ps.alpha_func = PIPE_FUNC_ALWAYS; + + /* Alpha-test should be disabled if colorbuffer 0 is integer. */ + if (sctx->queued.named.dsa && + !sctx->framebuffer.cb0_is_integer) + key->ps.alpha_func = sctx->queued.named.dsa->alpha_func; } } |