static void
gen8_draw_sf(struct ilo_render *r,
             const struct ilo_state_vector *vec,
             struct ilo_render_draw_session *session)
{
   /* 3DSTATE_RASTER */
   if (DIRTY(RASTERIZER)) {
      gen8_3DSTATE_RASTER(r->builder, (vec->rasterizer) ?
            &vec->rasterizer->sf : NULL);
   }

   /* 3DSTATE_SBE */
   if (DIRTY(RASTERIZER) || DIRTY(FS)) {
      gen8_3DSTATE_SBE(r->builder, vec->fs, (vec->rasterizer) ?
            vec->rasterizer->state.sprite_coord_mode : 0);
   }

   /* 3DSTATE_SBE_SWIZ */
   if (DIRTY(FS))
      gen8_3DSTATE_SBE_SWIZ(r->builder, vec->fs);

   /* 3DSTATE_SF */
   if (DIRTY(RASTERIZER)) {
      gen8_3DSTATE_SF(r->builder, (vec->rasterizer) ?
            &vec->rasterizer->sf : NULL);
   }
}
Esempio n. 2
0
static void
gen8_draw_sf(struct ilo_render *r,
             const struct ilo_state_vector *vec,
             struct ilo_render_draw_session *session)
{
   /* 3DSTATE_RASTER */
   if (session->rs_delta.dirty & ILO_STATE_RASTER_3DSTATE_RASTER)
      gen8_3DSTATE_RASTER(r->builder, &vec->rasterizer->rs);

   /* 3DSTATE_SBE and 3DSTATE_SBE_SWIZ */
   if (DIRTY(FS)) {
      const struct ilo_state_sbe *sbe = ilo_shader_get_kernel_sbe(vec->fs);

      gen8_3DSTATE_SBE(r->builder, sbe);
      gen8_3DSTATE_SBE_SWIZ(r->builder, sbe);
   }

   /* 3DSTATE_SF */
   if (session->rs_delta.dirty & ILO_STATE_RASTER_3DSTATE_SF)
      gen7_3DSTATE_SF(r->builder, &vec->rasterizer->rs);
}