static void vrend_draw_bind_abo_shader(struct vrend_context *ctx)
{
   uint32_t mask;
   struct vrend_abo *abo;
   struct vrend_resource *res;
   int i;

   if (!has_feature(feat_atomic_counters))
      return;

   mask = ctx->sub->abo_used_mask;
   while (mask) {
      i = u_bit_scan(&mask);

      abo = &ctx->sub->abo[i];
      res = (struct vrend_resource *)abo->res;
      glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, i, res->id,
                        abo->buffer_offset, abo->buffer_size);
   }
}
static void vrend_draw_bind_abo_shader(struct vrend_context *ctx)
{
   uint32_t mask;
   struct vrend_abo *abo;
   struct vrend_resource *res;
   int i;

   if (!has_feature(feat_atomic_counters))
      return;

   mask = ctx->sub->abo_used_mask;
   while (mask) {
      i = u_bit_scan(&mask);

      abo = &ctx->sub->abo[i];
      res = (struct vrend_resource *)abo->res;
      glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, i, res->id,
                        abo->buffer_offset, abo->buffer_size);
   }
}