i915_batch.h File Reference

Include dependency graph for i915_batch.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  i915_batchbuffer

Defines

#define BEGIN_BATCH(dwords, relocs)   (i915_batchbuffer_check( i915->batch, dwords, relocs ))
#define OUT_BATCH(dword)   i915_batchbuffer_dword( i915->batch, dword )
#define OUT_RELOC(buf, flags, delta)   i915_batchbuffer_reloc( i915->batch, buf, flags, delta )
#define FLUSH_BATCH(fence)

Functions

static boolean i915_batchbuffer_check (struct i915_batchbuffer *batch, size_t dwords, size_t relocs)
static size_t i915_batchbuffer_space (struct i915_batchbuffer *batch)
static void i915_batchbuffer_dword (struct i915_batchbuffer *batch, unsigned dword)
static void i915_batchbuffer_write (struct i915_batchbuffer *batch, void *data, size_t size)
static void i915_batchbuffer_reloc (struct i915_batchbuffer *batch, struct pipe_buffer *buffer, size_t flags, size_t offset)
static void i915_batchbuffer_flush (struct i915_batchbuffer *batch, struct pipe_fence_handle **fence)


Define Documentation

#define BEGIN_BATCH ( dwords,
relocs   )     (i915_batchbuffer_check( i915->batch, dwords, relocs ))

Definition at line 102 of file i915_batch.h.

#define FLUSH_BATCH ( fence   ) 

Value:

do {                    \
   i915->winsys->batch_flush( i915->winsys, fence );    \
   i915->hardware_dirty = ~0;                           \
} while (0)

Definition at line 111 of file i915_batch.h.

#define OUT_BATCH ( dword   )     i915_batchbuffer_dword( i915->batch, dword )

Definition at line 105 of file i915_batch.h.

#define OUT_RELOC ( buf,
flags,
delta   )     i915_batchbuffer_reloc( i915->batch, buf, flags, delta )

Definition at line 108 of file i915_batch.h.


Function Documentation

static boolean i915_batchbuffer_check ( struct i915_batchbuffer batch,
size_t  dwords,
size_t  relocs 
) [static]

TODO JB: Check relocs

Definition at line 49 of file i915_batch.h.

References i915_batchbuffer::map, i915_batchbuffer::ptr, and i915_batchbuffer::size.

00052 {
00054    return dwords * 4 <= batch->size - (batch->ptr - batch->map);
00055 }

static void i915_batchbuffer_dword ( struct i915_batchbuffer batch,
unsigned  dword 
) [static]

Definition at line 64 of file i915_batch.h.

References i915_batchbuffer_space(), and i915_batchbuffer::ptr.

00066 {
00067    if (i915_batchbuffer_space(batch) < 4)
00068       return;
00069 
00070    *(unsigned *)batch->ptr = dword;
00071    batch->ptr += 4;
00072 }

static void i915_batchbuffer_flush ( struct i915_batchbuffer batch,
struct pipe_fence_handle **  fence 
) [static]

Definition at line 96 of file i915_batch.h.

References i915_winsys::batch_flush, and i915_batchbuffer::winsys.

00098 {
00099    batch->winsys->batch_flush( batch->winsys, fence );
00100 }

static void i915_batchbuffer_reloc ( struct i915_batchbuffer batch,
struct pipe_buffer buffer,
size_t  flags,
size_t  offset 
) [static]

Definition at line 87 of file i915_batch.h.

References i915_winsys::batch_reloc, and i915_batchbuffer::winsys.

00091 {
00092    batch->winsys->batch_reloc( batch->winsys, buffer, flags, offset );
00093 }

static size_t i915_batchbuffer_space ( struct i915_batchbuffer batch  )  [static]

Definition at line 58 of file i915_batch.h.

References i915_batchbuffer::map, i915_batchbuffer::ptr, and i915_batchbuffer::size.

00059 {
00060    return batch->size - (batch->ptr - batch->map);
00061 }

static void i915_batchbuffer_write ( struct i915_batchbuffer batch,
void *  data,
size_t  size 
) [static]

Definition at line 75 of file i915_batch.h.

References i915_batchbuffer_space(), and i915_batchbuffer::ptr.

00078 {
00079    if (i915_batchbuffer_space(batch) < size)
00080       return;
00081 
00082    memcpy(data, batch->ptr, size);
00083    batch->ptr += size;
00084 }


Generated on Tue Sep 29 06:25:33 2009 for Gallium3D by  doxygen 1.5.4