static void upload_ps_state(struct brw_context *brw) { /* BRW_NEW_FS_PROG_DATA */ const struct brw_wm_prog_data *prog_data = brw->wm.prog_data; const struct gl_context *ctx = &brw->ctx; /* BRW_NEW_FS_PROG_DATA | _NEW_COLOR */ const bool enable_dual_src_blend = prog_data->dual_src_blend && (ctx->Color.BlendEnabled & 1) && ctx->Color.Blend[0]._UsesDualSrc; /* _NEW_BUFFERS, _NEW_MULTISAMPLE */ const unsigned sample_mask = brw->is_haswell ? gen6_determine_sample_mask(brw) : 0; gen7_upload_ps_state(brw, brw->fragment_program, &brw->wm.base, prog_data, enable_dual_src_blend, sample_mask, brw->wm.fast_clear_op); }
static void upload_multisample_state(struct brw_context *brw) { gen8_emit_3dstate_multisample(brw, brw->num_samples); gen6_emit_3dstate_sample_mask(brw, gen6_determine_sample_mask(brw)); }