144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz#ifndef I915_SW_WINSYS_H
344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz#define I915_SW_WINSYS_H
444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz#include "i915/i915_winsys.h"
644bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
744bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
844bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz/*
944bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz * Winsys
1044bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz */
1144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
1244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
1344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzstruct i915_sw_winsys
1444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz{
1544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   struct i915_winsys base;
1644bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
1744bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   boolean dump_cmd;
1844bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
1944bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   size_t max_batch_size;
2044bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz};
2144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
2244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzstatic INLINE struct i915_sw_winsys *
2344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzi915_sw_winsys(struct i915_winsys *iws)
2444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz{
2544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   return (struct i915_sw_winsys *)iws;
2644bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz}
2744bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
2844bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzstruct pipe_fence_handle * i915_sw_fence_create(void);
2944bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
3044bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzvoid i915_sw_winsys_init_batchbuffer_functions(struct i915_sw_winsys *idws);
3144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzvoid i915_sw_winsys_init_buffer_functions(struct i915_sw_winsys *idws);
3244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzvoid i915_sw_winsys_init_fence_functions(struct i915_sw_winsys *idws);
3344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
3444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
3544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz/*
3644bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz * Buffer
3744bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz */
3844bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
3944bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
4044bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzstruct i915_sw_buffer {
4144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   unsigned magic;
4244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
4344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   void *ptr;
4444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   unsigned map_count;
4544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   enum i915_winsys_buffer_type type;
464a666488c4e3067eed984e272149411cc2198c77Daniel Vetter   enum i915_winsys_buffer_tile tiling;
474a666488c4e3067eed984e272149411cc2198c77Daniel Vetter   unsigned stride;
4844bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz};
4944bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
5044bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzstatic INLINE struct i915_sw_buffer *
5144bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantzi915_sw_buffer(struct i915_winsys_buffer *buffer)
5244bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz{
5344bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz   return (struct i915_sw_buffer *)buffer;
5444bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz}
5544bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz
5644bafca1a0b1e9bf06e05a3ec982e0feab5ada47Jakob Bornecrantz#endif
57