nouveau: share pushbuf interface code between pipe drivers

This commit is contained in:
Ben Skeggs
2008-01-07 01:02:30 +11:00
parent 37e9587178
commit 9bac4c7268
17 changed files with 35 additions and 32 deletions
@@ -1,15 +1,21 @@
#ifndef __NV50_DMA_H__
#define __NV50_DMA_H__
#ifndef __NOUVEAU_PUSH_H__
#define __NOUVEAU_PUSH_H__
#include "pipe/nouveau/nouveau_winsys.h"
#ifndef NOUVEAU_PUSH_CONTEXT
#error undefined push context
#endif
#define OUT_RING(data) do { \
(*nv50->nvws->channel->pushbuf->cur++) = (data); \
NOUVEAU_PUSH_CONTEXT(pc); \
(*pc->nvws->channel->pushbuf->cur++) = (data); \
} while(0)
#define OUT_RINGp(src,size) do { \
memcpy(nv50->nvws->channel->pushbuf->cur, (src), (size) * 4); \
nv50->nvws->channel->pushbuf->cur += (size); \
NOUVEAU_PUSH_CONTEXT(pc); \
memcpy(pc->nvws->channel->pushbuf->cur, (src), (size) * 4); \
pc->nvws->channel->pushbuf->cur += (size); \
} while(0)
#define OUT_RINGf(data) do { \
@@ -19,10 +25,11 @@
} while(0)
#define BEGIN_RING(obj,mthd,size) do { \
if (nv50->nvws->channel->pushbuf->remaining < ((size) + 1)) \
nv50->nvws->push_flush(nv50->nvws->channel, ((size) + 1)); \
OUT_RING((nv50->obj->subc << 13) | ((size) << 18) | (mthd)); \
nv50->nvws->channel->pushbuf->remaining -= ((size) + 1); \
NOUVEAU_PUSH_CONTEXT(pc); \
if (pc->nvws->channel->pushbuf->remaining < ((size) + 1)) \
pc->nvws->push_flush(pc->nvws->channel, ((size) + 1)); \
OUT_RING((pc->obj->subc << 13) | ((size) << 18) | (mthd)); \
pc->nvws->channel->pushbuf->remaining -= ((size) + 1); \
} while(0)
#define BEGIN_RING_NI(obj,mthd,size) do { \
@@ -30,14 +37,16 @@
} while(0)
#define FIRE_RING() do { \
nv50->nvws->push_flush(nv50->nvws->channel, 0); \
NOUVEAU_PUSH_CONTEXT(pc); \
pc->nvws->push_flush(pc->nvws->channel, 0); \
} while(0)
#define OUT_RELOC(bo,data,flags,vor,tor) do { \
nv50->nvws->push_reloc(nv50->nvws->channel, \
nv50->nvws->channel->pushbuf->cur, \
(struct nouveau_bo *)(bo), \
(data), (flags), (vor), (tor)); \
NOUVEAU_PUSH_CONTEXT(pc); \
pc->nvws->push_reloc(pc->nvws->channel, \
pc->nvws->channel->pushbuf->cur, \
(struct nouveau_bo *)(bo), \
(data), (flags), (vor), (tor)); \
OUT_RING(0); \
} while(0)
@@ -49,8 +58,8 @@
/* FB/TT object handle */
#define OUT_RELOCo(bo,flags) do { \
OUT_RELOC((bo), 0, (flags) | NOUVEAU_BO_OR, \
nv50->nvws->channel->vram->handle, \
nv50->nvws->channel->gart->handle); \
pc->nvws->channel->vram->handle, \
pc->nvws->channel->gart->handle); \
} while(0)
/* Low 32-bits of offset */
-2
View File
@@ -3,8 +3,6 @@
#include "pipe/p_state.h"
#include "nv40_context.h"
#include "nv40_dma.h"
void
nv40_clear(struct pipe_context *pipe, struct pipe_surface *ps,
-1
View File
@@ -4,7 +4,6 @@
#include "pipe/p_util.h"
#include "nv40_context.h"
#include "nv40_dma.h"
static const char *
nv40_get_name(struct pipe_context *pipe)
+4
View File
@@ -10,6 +10,10 @@
#include "pipe/nouveau/nouveau_winsys.h"
#include "pipe/nouveau/nouveau_gldefs.h"
#define NOUVEAU_PUSH_CONTEXT(ctx) \
struct nv40_context *ctx = nv40
#include "pipe/nouveau/nouveau_push.h"
#include "nv40_state.h"
#define NOUVEAU_ERR(fmt, args...) \
-1
View File
@@ -7,7 +7,6 @@
#include "pipe/tgsi/util/tgsi_util.h"
#include "nv40_context.h"
#include "nv40_dma.h"
#define SWZ_X 0
#define SWZ_Y 1
-1
View File
@@ -1,7 +1,6 @@
#include "pipe/p_context.h"
#include "nv40_context.h"
#include "nv40_dma.h"
struct nv40_query {
struct nouveau_resource *object;
-1
View File
@@ -3,7 +3,6 @@
#include "pipe/p_util.h"
#include "nv40_context.h"
#include "nv40_dma.h"
#include "nv40_state.h"
static void *
-1
View File
@@ -1,5 +1,4 @@
#include "nv40_context.h"
#include "nv40_dma.h"
#include "nv40_state.h"
void
-1
View File
@@ -1,5 +1,4 @@
#include "nv40_context.h"
#include "nv40_dma.h"
#define _(m,tf,ts0x,ts0y,ts0z,ts0w,ts1x,ts1y,ts1z,ts1w) \
{ \
-1
View File
@@ -3,7 +3,6 @@
#include "pipe/p_util.h"
#include "nv40_context.h"
#include "nv40_dma.h"
#include "nv40_state.h"
#include "pipe/nouveau/nouveau_channel.h"
-1
View File
@@ -6,7 +6,6 @@
#include "pipe/tgsi/util/tgsi_parse.h"
#include "nv40_context.h"
#include "nv40_dma.h"
#include "nv40_state.h"
/* TODO (at least...):
-2
View File
@@ -3,8 +3,6 @@
#include "pipe/p_state.h"
#include "nv50_context.h"
#include "nv50_dma.h"
void
nv50_clear(struct pipe_context *pipe, struct pipe_surface *ps,
-1
View File
@@ -4,7 +4,6 @@
#include "pipe/p_util.h"
#include "nv50_context.h"
#include "nv50_dma.h"
static boolean
nv50_is_format_supported(struct pipe_context *pipe, enum pipe_format format,
+4
View File
@@ -10,6 +10,10 @@
#include "pipe/nouveau/nouveau_winsys.h"
#include "pipe/nouveau/nouveau_gldefs.h"
#define NOUVEAU_PUSH_CONTEXT(ctx) \
struct nv50_context *ctx = nv50
#include "pipe/nouveau/nouveau_push.h"
#include "nv50_state.h"
#define NOUVEAU_ERR(fmt, args...) \
-1
View File
@@ -1,7 +1,6 @@
#include "pipe/p_context.h"
#include "nv50_context.h"
#include "nv50_dma.h"
static struct pipe_query *
nv50_query_create(struct pipe_context *pipe, unsigned type)
+2 -1
View File
@@ -3,7 +3,6 @@
#include "pipe/p_util.h"
#include "nv50_context.h"
#include "nv50_dma.h"
#include "nv50_state.h"
static void *
@@ -85,6 +84,7 @@ static void *
nv50_vp_state_create(struct pipe_context *pipe,
const struct pipe_shader_state *cso)
{
return NULL;
}
static void
@@ -101,6 +101,7 @@ static void *
nv50_fp_state_create(struct pipe_context *pipe,
const struct pipe_shader_state *cso)
{
return NULL;
}
static void
-1
View File
@@ -3,7 +3,6 @@
#include "pipe/p_util.h"
#include "nv50_context.h"
#include "nv50_dma.h"
#include "nv50_state.h"
boolean