summaryrefslogtreecommitdiff
path: root/etnaviv/etnaviv_emit.c
blob: c176ef3ff669e115337447102deb3a76101f7ca2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "xf86.h"
#include "fb.h"

#include "etnaviv_accel.h"
#include "etnaviv_op.h"

#include <etnaviv/etna.h>

void etnaviv_emit(struct etnaviv *etnaviv)
{
	struct etna_ctx *ctx = etnaviv->ctx;
	struct etnaviv_reloc *r;
	unsigned int i;

	for (i = 0, r = etnaviv->reloc; i < etnaviv->reloc_size; i++, r++)
		etnaviv->batch[r->batch_index] += etna_bo_gpu_address(r->bo);

	etna_reserve(ctx, etnaviv->batch_size);
	memcpy(&ctx->buf[ctx->offset], etnaviv->batch, etnaviv->batch_size * 4);
	ctx->offset += etnaviv->batch_size;
}