mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 08:26:10 +00:00
Move scratch_buf_write_to_png() to its only user, gem_render_copy.c. This makes the cairo dependencies easier to handle from the Android perspective, but if there is a good reason why this file exists I can try to handle it differently. Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
93 lines
2.6 KiB
C
93 lines
2.6 KiB
C
#ifndef RENDERCOPY_H
|
|
#define RENDERCOPY_H
|
|
|
|
#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;
|
|
}
|
|
|
|
typedef void (*render_copyfunc_t)(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);
|
|
|
|
render_copyfunc_t get_render_copyfunc(int devid);
|
|
|
|
void gen8_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 gen7_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 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);
|
|
|
|
#endif /* RENDERCOPY_H */
|