intel_batchbuffer.h revision 42542f5f
103b705cfSriastradh#ifndef _INTEL_BATCHBUFFER_H 203b705cfSriastradh#define _INTEL_BATCHBUFFER_H 303b705cfSriastradh 403b705cfSriastradh/* #define VERBOSE 0 */ 503b705cfSriastradh#ifndef VERBOSE 603b705cfSriastradhextern int VERBOSE; 703b705cfSriastradh#endif 803b705cfSriastradh 903b705cfSriastradh#define BATCH_LOCALS unsigned char *batch_ptr; 1003b705cfSriastradh 1103b705cfSriastradh#define BEGIN_BATCH(n) \ 1203b705cfSriastradh do { \ 1303b705cfSriastradh assert(xvmc_driver->batch.space >= (n) *4); \ 1403b705cfSriastradh batch_ptr = xvmc_driver->batch.ptr; \ 1503b705cfSriastradh } while (0) 1603b705cfSriastradh 1703b705cfSriastradh#define OUT_BATCH(n) \ 1803b705cfSriastradh do { \ 1903b705cfSriastradh *(unsigned int *)batch_ptr = (n); \ 2003b705cfSriastradh batch_ptr += 4; \ 2103b705cfSriastradh } while (0) 2203b705cfSriastradh 2303b705cfSriastradh#define OUT_RELOC(bo,read_domains,write_domains,delta) \ 2403b705cfSriastradh do { \ 2503b705cfSriastradh *(unsigned int *)batch_ptr = (delta) + bo->offset; \ 2603b705cfSriastradh intel_batch_emit_reloc(bo, read_domains, write_domains, delta, batch_ptr); \ 2703b705cfSriastradh batch_ptr += 4; \ 2803b705cfSriastradh } while (0) 2903b705cfSriastradh 3003b705cfSriastradh#define OUT_BATCH_SHORT(n) \ 3103b705cfSriastradh do { \ 3203b705cfSriastradh *(short *)batch_ptr = (n); \ 3303b705cfSriastradh batch_ptr += 2; \ 3403b705cfSriastradh } while (0) 3503b705cfSriastradh 3603b705cfSriastradh#define OUT_BATCH_CHAR(n) \ 3703b705cfSriastradh do { \ 3803b705cfSriastradh *(char *)batch_ptr = (n); \ 3903b705cfSriastradh batch_ptr ++; \ 4003b705cfSriastradh } while (0) 4103b705cfSriastradh#define ADVANCE_BATCH() \ 4203b705cfSriastradh do { \ 4303b705cfSriastradh xvmc_driver->batch.space -= (batch_ptr - xvmc_driver->batch.ptr);\ 4403b705cfSriastradh xvmc_driver->batch.ptr = batch_ptr; \ 4503b705cfSriastradh } while(0) 4603b705cfSriastradh 4742542f5fSchristosextern void intelFlushBatch(void); 4803b705cfSriastradhextern void intelBatchbufferData(const void *, unsigned, unsigned); 4903b705cfSriastradhextern Bool intelInitBatchBuffer(void); 5003b705cfSriastradhextern void intelFiniBatchBuffer(void); 5103b705cfSriastradhextern void intelCmdIoctl(char *, unsigned); 5203b705cfSriastradhextern void intel_batch_emit_reloc(dri_bo * bo, uint32_t read_domain, 5303b705cfSriastradh uint32_t write_domain, uint32_t delta, 5403b705cfSriastradh unsigned char *); 5503b705cfSriastradh#endif /* _INTEL_BATCHBUFFER_H */ 56