static uint32_t batch_align(struct intel_batchbuffer *batch, uint32_t align) { uint32_t offset = batch_used(batch); offset = ALIGN(offset, align); batch->ptr = batch->buffer + offset; return offset; }
static uint32_t batch_round_upto(struct intel_batchbuffer *batch, uint32_t divisor) { uint32_t offset = batch_used(batch); offset = (offset + divisor-1) / divisor * divisor; batch->ptr = batch->buffer + offset; return offset; }
static uint32_t gen6_emit_primitive(struct intel_batchbuffer *batch) { uint32_t offset; OUT_BATCH(GEN6_3DPRIMITIVE | GEN6_3DPRIMITIVE_VERTEX_SEQUENTIAL | _3DPRIM_RECTLIST << GEN6_3DPRIMITIVE_TOPOLOGY_SHIFT | 0 << 9 | 4); OUT_BATCH(3); /* vertex count */ offset = batch_used(batch); OUT_BATCH(0); /* vertex_index */ OUT_BATCH(1); /* single instance */ OUT_BATCH(0); /* start instance location */ OUT_BATCH(0); /* index buffer offset, ignored */ return offset; }