18 #include "intel_bufmgr.h"
19 #include "intel_batchbuffer.h"
20 #include "intel_gpu_tools.h"
27 uint32_t *cpu_mapping;
32 static inline void emit_vertex_2s(struct intel_batchbuffer *batch,
35 OUT_BATCH((uint16_t)y << 16 | (uint16_t)x);
38 static inline void emit_vertex(struct intel_batchbuffer *batch,
41 union { float f; uint32_t ui; } u;
46 static inline void emit_vertex_normalized(struct intel_batchbuffer *batch,
49 union { float f; uint32_t ui; } u;
54 static inline unsigned buf_width(struct scratch_buf *buf)
56 return buf->stride/sizeof(uint32_t);
59 static inline unsigned buf_height(struct scratch_buf *buf)
61 return buf->size/buf->stride;
64 typedef void (*render_copyfunc_t)(struct intel_batchbuffer *batch,
65 struct scratch_buf *src, unsigned src_x, unsigned src_y,
66 unsigned width, unsigned height,
67 struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
69 render_copyfunc_t get_render_copyfunc(int devid);
71 void gen7_render_copyfunc(struct intel_batchbuffer *batch,
72 struct scratch_buf *src, unsigned src_x, unsigned src_y,
73 unsigned width, unsigned height,
74 struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
75 void gen6_render_copyfunc(struct intel_batchbuffer *batch,
76 struct scratch_buf *src, unsigned src_x, unsigned src_y,
77 unsigned width, unsigned height,
78 struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
79 void gen3_render_copyfunc(struct intel_batchbuffer *batch,
80 struct scratch_buf *src, unsigned src_x, unsigned src_y,
81 unsigned width, unsigned height,
82 struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
83 void gen2_render_copyfunc(struct intel_batchbuffer *batch,
84 struct scratch_buf *src, unsigned src_x, unsigned src_y,
85 unsigned width, unsigned height,
86 struct scratch_buf *dst, unsigned dst_x, unsigned dst_y);
88 void scratch_buf_write_to_png(struct scratch_buf *buf, const char *filename);
90 #endif /* RENDERCOPY_H */