diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-01-18 21:23:56 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-01-18 21:23:56 +0100 |
commit | f07e4d1885fbf54a4faa1f91a92fa9499e11b011 (patch) | |
tree | 206feecad71ee61e14564019e209aedccbc5f558 /lib/rendercopy.h | |
parent | 1357427fd0287b1027608c96d400daa6c4c97ddc (diff) |
lib: extract rendercopy functions from gem_stress
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'lib/rendercopy.h')
-rw-r--r-- | lib/rendercopy.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/rendercopy.h b/lib/rendercopy.h new file mode 100644 index 00000000..7547ac42 --- /dev/null +++ b/lib/rendercopy.h @@ -0,0 +1,72 @@ +#include <stdlib.h> +#include <sys/ioctl.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> +#include <fcntl.h> +#include <inttypes.h> +#include <errno.h> +#include <sys/stat.h> +#include <sys/time.h> +#include <getopt.h> +#include "drm.h" +#include "i915_drm.h" +#include "drmtest.h" +#include "intel_bufmgr.h" +#include "intel_batchbuffer.h" +#include "intel_gpu_tools.h" + +struct scratch_buf { + drm_intel_bo *bo; + uint32_t stride; + uint32_t tiling; + uint32_t *data; + uint32_t *cpu_mapping; + uint32_t size; + unsigned num_tiles; +}; + +static inline void emit_vertex_2s(struct intel_batchbuffer *batch, + int16_t x, int16_t y) +{ + OUT_BATCH((uint16_t)y << 16 | (uint16_t)x); +} + +static inline void emit_vertex(struct intel_batchbuffer *batch, + float f) +{ + union { float f; uint32_t ui; } u; + u.f = f; + OUT_BATCH(u.ui); +} + +static inline void emit_vertex_normalized(struct intel_batchbuffer *batch, + float f, float total) +{ + union { float f; uint32_t ui; } u; + u.f = f / total; + OUT_BATCH(u.ui); +} + +static inline unsigned buf_width(struct scratch_buf *buf) +{ + return buf->stride/sizeof(uint32_t); +} + +static inline unsigned buf_height(struct scratch_buf *buf) +{ + return buf->size/buf->stride; +} + +void gen6_render_copyfunc(struct intel_batchbuffer *batch, + struct scratch_buf *src, unsigned src_x, unsigned src_y, + unsigned width, unsigned height, + struct scratch_buf *dst, unsigned dst_x, unsigned dst_y); +void gen3_render_copyfunc(struct intel_batchbuffer *batch, + struct scratch_buf *src, unsigned src_x, unsigned src_y, + unsigned width, unsigned height, + struct scratch_buf *dst, unsigned dst_x, unsigned dst_y); +void gen2_render_copyfunc(struct intel_batchbuffer *batch, + struct scratch_buf *src, unsigned src_x, unsigned src_y, + unsigned width, unsigned height, + struct scratch_buf *dst, unsigned dst_x, unsigned dst_y); |