mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
nouveau: hand nouveau_winsys in with pipe_screen init
This commit is contained in:
parent
84cc07dc89
commit
baaae562f0
11 changed files with 34 additions and 25 deletions
|
|
@ -50,21 +50,24 @@ struct nouveau_winsys {
|
|||
};
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv30_screen_create(struct pipe_winsys *ws, unsigned chipset);
|
||||
nv30_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *,
|
||||
unsigned chipset);
|
||||
|
||||
extern struct pipe_context *
|
||||
nv30_create(struct pipe_screen *, struct nouveau_winsys *);
|
||||
nv30_create(struct pipe_screen *);
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv40_screen_create(struct pipe_winsys *ws, unsigned chipset);
|
||||
nv40_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *,
|
||||
unsigned chipset);
|
||||
|
||||
extern struct pipe_context *
|
||||
nv40_create(struct pipe_screen *, struct nouveau_winsys *);
|
||||
nv40_create(struct pipe_screen *);
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv50_screen_create(struct pipe_winsys *ws, unsigned chipset);
|
||||
nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *,
|
||||
unsigned chipset);
|
||||
|
||||
extern struct pipe_context *
|
||||
nv50_create(struct pipe_screen *, struct nouveau_winsys *);
|
||||
nv50_create(struct pipe_screen *);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -265,9 +265,10 @@ nv30_init_hwctx(struct nv30_context *nv30, int rankine_class)
|
|||
#define NV35TCL_CHIPSET_3X_MASK 0x000001e0
|
||||
|
||||
struct pipe_context *
|
||||
nv30_create(struct pipe_screen *screen, struct nouveau_winsys *nvws)
|
||||
nv30_create(struct pipe_screen *screen)
|
||||
{
|
||||
struct pipe_winsys *pipe_winsys = screen->winsys;
|
||||
struct nouveau_winsys *nvws = nv30_screen(screen)->nvws;
|
||||
unsigned chipset = nv30_screen(screen)->chipset;
|
||||
struct nv30_context *nv30;
|
||||
int rankine_class = 0, ret;
|
||||
|
|
|
|||
|
|
@ -125,7 +125,8 @@ nv30_screen_destroy(struct pipe_screen *screen)
|
|||
}
|
||||
|
||||
struct pipe_screen *
|
||||
nv30_screen_create(struct pipe_winsys *winsys, unsigned chipset)
|
||||
nv30_screen_create(struct pipe_winsys *winsys, struct nouveau_winsys *nvws,
|
||||
unsigned chipset)
|
||||
{
|
||||
struct nv30_screen *nv30screen = CALLOC_STRUCT(nv30_screen);
|
||||
|
||||
|
|
@ -133,6 +134,7 @@ nv30_screen_create(struct pipe_winsys *winsys, unsigned chipset)
|
|||
return NULL;
|
||||
|
||||
nv30screen->chipset = chipset;
|
||||
nv30screen->nvws = nvws;
|
||||
|
||||
nv30screen->screen.winsys = winsys;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
struct nv30_screen {
|
||||
struct pipe_screen screen;
|
||||
|
||||
struct nouveau_winsys *nvws;
|
||||
unsigned chipset;
|
||||
};
|
||||
|
||||
|
|
@ -14,7 +16,4 @@ nv30_screen(struct pipe_screen *screen)
|
|||
return (struct nv30_screen *)screen;
|
||||
}
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv30_screen_create(struct pipe_winsys *winsys, unsigned chipset);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -196,11 +196,12 @@ nv40_destroy(struct pipe_context *pipe)
|
|||
}
|
||||
|
||||
struct pipe_context *
|
||||
nv40_create(struct pipe_screen *pscreen, struct nouveau_winsys *nvws)
|
||||
nv40_create(struct pipe_screen *pscreen)
|
||||
{
|
||||
struct pipe_winsys *ws = pscreen->winsys;
|
||||
struct nv40_context *nv40;
|
||||
unsigned chipset = nv40_screen(pscreen)->chipset;
|
||||
struct nouveau_winsys *nvws = nv40_screen(pscreen)->nvws;
|
||||
|
||||
nv40 = CALLOC(1, sizeof(struct nv40_context));
|
||||
if (!nv40)
|
||||
|
|
|
|||
|
|
@ -125,7 +125,8 @@ nv40_screen_destroy(struct pipe_screen *pscreen)
|
|||
}
|
||||
|
||||
struct pipe_screen *
|
||||
nv40_screen_create(struct pipe_winsys *ws, unsigned chipset)
|
||||
nv40_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws,
|
||||
unsigned chipset)
|
||||
{
|
||||
struct nv40_screen *screen = CALLOC_STRUCT(nv40_screen);
|
||||
|
||||
|
|
@ -133,6 +134,7 @@ nv40_screen_create(struct pipe_winsys *ws, unsigned chipset)
|
|||
return NULL;
|
||||
|
||||
screen->chipset = chipset;
|
||||
screen->nvws = nvws;
|
||||
|
||||
screen->pipe.winsys = ws;
|
||||
screen->pipe.destroy = nv40_screen_destroy;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
struct nv40_screen {
|
||||
struct pipe_screen pipe;
|
||||
|
||||
struct nouveau_winsys *nvws;
|
||||
unsigned chipset;
|
||||
};
|
||||
|
||||
|
|
@ -14,7 +16,4 @@ nv40_screen(struct pipe_screen *screen)
|
|||
return (struct nv40_screen *)screen;
|
||||
}
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv40_screen_create(struct pipe_winsys *winsys, unsigned chipset);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -56,9 +56,10 @@ nv50_init_hwctx(struct nv50_context *nv50, int tesla_class)
|
|||
#define GRCLASS5097_CHIPSETS 0x00000000
|
||||
#define GRCLASS8297_CHIPSETS 0x00000010
|
||||
struct pipe_context *
|
||||
nv50_create(struct pipe_screen *pscreen, struct nouveau_winsys *nvws)
|
||||
nv50_create(struct pipe_screen *pscreen)
|
||||
{
|
||||
struct pipe_winsys *pipe_winsys = pscreen->winsys;
|
||||
struct nouveau_winsys *nvws = nv50_screen(pscreen)->nvws;
|
||||
unsigned chipset = nv50_screen(pscreen)->chipset;
|
||||
struct nv50_context *nv50;
|
||||
int tesla_class, ret;
|
||||
|
|
|
|||
|
|
@ -90,7 +90,8 @@ nv50_screen_destroy(struct pipe_screen *pscreen)
|
|||
}
|
||||
|
||||
struct pipe_screen *
|
||||
nv50_screen_create(struct pipe_winsys *ws, unsigned chipset)
|
||||
nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws,
|
||||
unsigned chipset)
|
||||
{
|
||||
struct nv50_screen *screen = CALLOC_STRUCT(nv50_screen);
|
||||
|
||||
|
|
@ -98,6 +99,7 @@ nv50_screen_create(struct pipe_winsys *ws, unsigned chipset)
|
|||
return NULL;
|
||||
|
||||
screen->chipset = chipset;
|
||||
screen->nvws = nvws;
|
||||
|
||||
screen->pipe.winsys = ws;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
struct nv50_screen {
|
||||
struct pipe_screen pipe;
|
||||
|
||||
struct nouveau_winsys *nvws;
|
||||
unsigned chipset;
|
||||
};
|
||||
|
||||
|
|
@ -14,7 +16,4 @@ nv50_screen(struct pipe_screen *screen)
|
|||
return (struct nv50_screen *)screen;
|
||||
}
|
||||
|
||||
extern struct pipe_screen *
|
||||
nv50_screen_create(struct pipe_winsys *winsys, unsigned chipset);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@ nouveau_pipe_create(struct nouveau_context *nv)
|
|||
{
|
||||
struct nouveau_winsys *nvws = CALLOC_STRUCT(nouveau_winsys);
|
||||
struct pipe_screen *(*hws_create)(struct pipe_winsys *,
|
||||
struct nouveau_winsys *,
|
||||
unsigned chipset);
|
||||
struct pipe_context *(*hw_create)(struct pipe_screen *,
|
||||
struct nouveau_winsys *);
|
||||
struct pipe_context *(*hw_create)(struct pipe_screen *);
|
||||
struct pipe_winsys *ws;
|
||||
struct pipe_screen *pscreen;
|
||||
|
||||
|
|
@ -126,7 +126,7 @@ nouveau_pipe_create(struct nouveau_context *nv)
|
|||
nvws->surface_fill = nouveau_pipe_surface_fill;
|
||||
|
||||
ws = nouveau_create_pipe_winsys(nv);
|
||||
pscreen = hws_create(ws, nv->chipset);
|
||||
return hw_create(pscreen, nvws);
|
||||
pscreen = hws_create(ws, nvws, nv->chipset);
|
||||
return hw_create(pscreen);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue