Esempio n. 1
0
/* Calculate interpolants for triangle and line rasterization.
 */
static void upload_gs_prog( struct brw_context *brw )
{
   struct brw_gs_prog_key key;

   /* Populate the key:
    */
   populate_key(brw, &key);

   if (brw->gs.prog_active != key.need_gs_prog) {
      brw->state.dirty.cache |= CACHE_NEW_GS_PROG;
      brw->gs.prog_active = key.need_gs_prog;
   }

   if (brw->gs.prog_active) {
      if (!search_cache(brw, &key))
	 compile_gs_prog( brw, &key );
   }
}
Esempio n. 2
0
/* Calculate interpolants for triangle and line rasterization.
 */
static void prepare_gs_prog(struct brw_context *brw)
{
   struct brw_gs_prog_key key;
   /* Populate the key:
    */
   populate_key(brw, &key);

   if (brw->gs.prog_active != key.need_gs_prog) {
      brw->state.dirty.cache |= CACHE_NEW_GS_PROG;
      brw->gs.prog_active = key.need_gs_prog;
   }

   if (brw->gs.prog_active) {
      if (!brw_search_cache(&brw->cache, BRW_GS_PROG,
			    &key, sizeof(key),
			    &brw->gs.prog_offset, &brw->gs.prog_data)) {
	 compile_gs_prog( brw, &key );
      }
   }
}
/* Calculate interpolants for triangle and line rasterization.
 */
static void
brw_upload_ff_gs_prog(struct brw_context *brw)
{
   struct brw_ff_gs_prog_key key;
   /* Populate the key:
    */
   populate_key(brw, &key);

   if (brw->ff_gs.prog_active != key.need_gs_prog) {
      brw->state.dirty.brw |= BRW_NEW_FF_GS_PROG_DATA;
      brw->ff_gs.prog_active = key.need_gs_prog;
   }

   if (brw->ff_gs.prog_active) {
      if (!brw_search_cache(&brw->cache, BRW_CACHE_FF_GS_PROG,
			    &key, sizeof(key),
			    &brw->ff_gs.prog_offset, &brw->ff_gs.prog_data)) {
	 compile_ff_gs_prog( brw, &key );
      }
   }
}