2 #include "intel_be_device.h"
3 #include "intel_be_context.h"
4 #include "intel_be_batchbuffer.h"
8 static struct i915_batchbuffer
*
9 intel_be_batch_get(struct i915_winsys
*sws
)
11 struct intel_be_context
*intel
= intel_be_context(sws
);
12 return &intel
->batch
->base
;
16 intel_be_batch_reloc(struct i915_winsys
*sws
,
17 struct pipe_buffer
*buf
,
18 unsigned access_flags
,
21 struct intel_be_context
*intel
= intel_be_context(sws
);
22 drm_intel_bo
*bo
= intel_bo(buf
);
27 if (access_flags
& I915_BUFFER_ACCESS_WRITE
) {
28 write
= I915_GEM_DOMAIN_RENDER
;
29 read
= I915_GEM_DOMAIN_RENDER
;
32 if (access_flags
& I915_BUFFER_ACCESS_READ
) {
33 read
|= I915_GEM_DOMAIN_VERTEX
;
36 ret
= intel_be_offset_relocation(intel
->batch
,
43 /* TODO change return type */
48 intel_be_batch_flush(struct i915_winsys
*sws
,
49 struct pipe_fence_handle
**fence
)
51 struct intel_be_context
*intel
= intel_be_context(sws
);
52 struct intel_be_fence
**f
= (struct intel_be_fence
**)fence
;
57 intel_be_batchbuffer_flush(intel
->batch
, f
);
61 intel_be_init_context(struct intel_be_context
*intel
, struct intel_be_device
*device
)
65 intel
->device
= device
;
67 intel
->base
.batch_get
= intel_be_batch_get
;
68 intel
->base
.batch_reloc
= intel_be_batch_reloc
;
69 intel
->base
.batch_flush
= intel_be_batch_flush
;
71 intel
->batch
= intel_be_batchbuffer_alloc(intel
);
77 intel_be_destroy_context(struct intel_be_context
*intel
)
79 intel_be_batchbuffer_free(intel
->batch
);