diff options
author | Mika Kuoppala <mika.kuoppala@intel.com> | 2014-04-10 15:15:13 +0300 |
---|---|---|
committer | Mika Kuoppala <mika.kuoppala@intel.com> | 2014-06-03 13:49:23 +0300 |
commit | d60d4c80e5dbdab0baa5b45c3849262d982e3856 (patch) | |
tree | 416028ed4718576ea42a2064dbbeff775d2a500f /tools/null_state_gen/intel_batchbuffer.h | |
parent | a384e55b49dce17eff1945536f957546bc7902cf (diff) |
tools/null_state_gen: generate null render state
Generate valid (null) render state for each gen. Output
it as a c source file with batch and relocations.
v2: noinst and vs_start fixed for BDW GT3 (Damien Lespiau)
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Diffstat (limited to 'tools/null_state_gen/intel_batchbuffer.h')
-rw-r--r-- | tools/null_state_gen/intel_batchbuffer.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tools/null_state_gen/intel_batchbuffer.h b/tools/null_state_gen/intel_batchbuffer.h new file mode 100644 index 00000000..f5c29db4 --- /dev/null +++ b/tools/null_state_gen/intel_batchbuffer.h @@ -0,0 +1,91 @@ +/************************************************************************** + * + * Copyright 2006 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Copyright 2014 Intel Corporation + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#ifndef _INTEL_BATCHBUFFER_H +#define _INTEL_BATCHBUFFER_H + +#include <stdint.h> + +#define MAX_RELOCS 64 +#define ALIGN(x, y) (((x) + (y)-1) & ~((y)-1)) + +struct intel_batchbuffer { + int err; + uint8_t *base; + uint8_t *base_ptr; + uint8_t *state_base; + uint8_t *state_ptr; + int size; + + uint32_t relocs[MAX_RELOCS]; + uint32_t num_relocs; +}; + +#define OUT_BATCH(d) intel_batch_emit_dword(batch, d) +#define OUT_RELOC(batch, read_domains, write_domain, delta) \ + intel_batch_emit_reloc(batch, delta) + +int intel_batch_reset(struct intel_batchbuffer *batch, + void *p, + uint32_t size, uint32_t split_off); + +uint32_t intel_batch_state_used(struct intel_batchbuffer *batch); + +void *intel_batch_state_alloc(struct intel_batchbuffer *batch, + uint32_t size, + uint32_t align); + +int intel_batch_offset(struct intel_batchbuffer *batch, const void *ptr); + +int intel_batch_state_copy(struct intel_batchbuffer *batch, + const void *ptr, + const uint32_t size, + const uint32_t align); + +uint32_t intel_batch_cmds_used(struct intel_batchbuffer *batch); + +int intel_batch_emit_dword(struct intel_batchbuffer *batch, uint32_t dword); + +int intel_batch_emit_reloc(struct intel_batchbuffer *batch, + const uint32_t delta); + +uint32_t intel_batch_total_used(struct intel_batchbuffer *batch); + +static inline int intel_batch_error(struct intel_batchbuffer *batch) +{ + return batch->err; +} + +static inline uint32_t intel_batch_state_start(struct intel_batchbuffer *batch) +{ + return batch->state_base - batch->base; +} + +#endif |