Esempio n. 1
0
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);
}
Esempio n. 2
0
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));
}