summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/common/dri_bufmgr_fake.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-10-09 12:18:50 +1000
committerDave Airlie <airlied@redhat.com>2007-10-09 12:18:50 +1000
commit7e83c15fa01c04c12b7aab9dd2e7ab0ae193b1c3 (patch)
tree94b2b44dbd35e436935b00000ff6ffdddbcb983d /src/mesa/drivers/dri/common/dri_bufmgr_fake.c
parent0ba57d02cd4a9e37bb5367a5c345c5f41038eb27 (diff)
i915: fixup up bufmgr to pass num buffers to kernel
remove unneeded entry points
Diffstat (limited to 'src/mesa/drivers/dri/common/dri_bufmgr_fake.c')
-rw-r--r--src/mesa/drivers/dri/common/dri_bufmgr_fake.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/common/dri_bufmgr_fake.c b/src/mesa/drivers/dri/common/dri_bufmgr_fake.c
index adf0cf5ab7..bda45d921c 100644
--- a/src/mesa/drivers/dri/common/dri_bufmgr_fake.c
+++ b/src/mesa/drivers/dri/common/dri_bufmgr_fake.c
@@ -881,11 +881,12 @@ relocation_sort(const void *a_in, const void *b_in) {
}
static void *
-dri_fake_process_reloc(dri_bo *batch_buf)
+dri_fake_process_relocs(dri_bo *batch_buf, GLuint *count_p)
{
dri_bufmgr_fake *bufmgr_fake = (dri_bufmgr_fake *)batch_buf->bufmgr;
GLuint i;
GLuint *ptr;
+ GLuint count = 0;
assert(batch_buf->virtual != NULL);
ptr = batch_buf->virtual;
@@ -926,23 +927,25 @@ dri_fake_process_reloc(dri_bo *batch_buf)
/* Validate. If we fail, fence to clear the unfenced list and bail
* out.
*/
- ret = dri_bo_validate(r->buf, validate_flags);
+ ret = dri_fake_bo_validate(r->buf, validate_flags);
if (ret != 0) {
dri_fence *fo;
dri_bo_unmap(batch_buf);
- fo = dri_fence_validated(batch_buf->bufmgr,
- "batchbuffer failure fence", GL_TRUE);
+ fo = dri_fake_fence_validated(batch_buf->bufmgr,
+ "batchbuffer failure fence", GL_TRUE);
dri_fence_unreference(fo);
goto done;
}
+ count++;
}
ptr[r->offset / 4] = r->buf->offset + r->delta;
dri_bo_unreference(r->buf);
}
dri_bo_unmap(batch_buf);
- dri_bo_validate(batch_buf, DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_EXE);
+ dri_fake_bo_validate(batch_buf, DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_EXE);
+ *count_p = count;
bufmgr_fake->nr_relocs = 0;
done:
return NULL;
@@ -954,7 +957,7 @@ dri_fake_post_submit(dri_bo *batch_buf, dri_fence **last_fence)
dri_bufmgr_fake *bufmgr_fake = (dri_bufmgr_fake *)batch_buf->bufmgr;
dri_fence *fo;
- fo = dri_fence_validated(batch_buf->bufmgr, "Batch fence", GL_TRUE);
+ fo = dri_fake_fence_validated(batch_buf->bufmgr, "Batch fence", GL_TRUE);
if (bufmgr_fake->performed_rendering) {
dri_fence_unreference(*last_fence);
@@ -994,14 +997,12 @@ dri_bufmgr_fake_init(unsigned long low_offset, void *low_virtual,
bufmgr_fake->bufmgr.bo_unreference = dri_fake_bo_unreference;
bufmgr_fake->bufmgr.bo_map = dri_fake_bo_map;
bufmgr_fake->bufmgr.bo_unmap = dri_fake_bo_unmap;
- bufmgr_fake->bufmgr.bo_validate = dri_fake_bo_validate;
- bufmgr_fake->bufmgr.fence_validated = dri_fake_fence_validated;
bufmgr_fake->bufmgr.fence_wait = dri_fake_fence_wait;
bufmgr_fake->bufmgr.fence_reference = dri_fake_fence_reference;
bufmgr_fake->bufmgr.fence_unreference = dri_fake_fence_unreference;
bufmgr_fake->bufmgr.destroy = dri_fake_destroy;
bufmgr_fake->bufmgr.emit_reloc = dri_fake_emit_reloc;
- bufmgr_fake->bufmgr.process_relocs = dri_fake_process_reloc;
+ bufmgr_fake->bufmgr.process_relocs = dri_fake_process_relocs;
bufmgr_fake->bufmgr.post_submit = dri_fake_post_submit;
bufmgr_fake->fence_emit = fence_emit;
bufmgr_fake->fence_wait = fence_wait;