static int emit_hw_vdecl( struct svga_context *svga,
                          unsigned dirty )
{
   int ret = 0;

   /* SVGA_NEW_NEED_SWTNL
    */
   if (svga->state.sw.need_swtnl)
      return 0; /* Do not emit during swtnl */

   /* If we get to here, we know that we're going to draw.  Upload
    * userbuffers now and try to combine multiple userbuffers from
    * multiple draw calls into a single host buffer for performance.
    */
   if (svga->curr.any_user_vertex_buffers &&
       SVGA_COMBINE_USERBUFFERS)
   {
      ret = upload_user_buffers( svga );
      if (ret)
         return ret;

      svga->curr.any_user_vertex_buffers = FALSE;
   }

   return emit_hw_vs_vdecl( svga, dirty );
}
示例#2
0
static enum pipe_error
emit_hw_vdecl(struct svga_context *svga, unsigned dirty)
{
   /* SVGA_NEW_NEED_SWTNL
    */
   if (svga->state.sw.need_swtnl)
      return PIPE_OK; /* Do not emit during swtnl */

   return emit_hw_vs_vdecl( svga, dirty );
}