nv50,nvc0: implement texture barrier
This commit is contained in:
parent
9d2ef284bb
commit
83ff3809f1
|
@ -46,6 +46,17 @@ nv50_flush(struct pipe_context *pipe,
|
||||||
FIRE_RING(screen->channel);
|
FIRE_RING(screen->channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
nv50_texture_barrier(struct pipe_context *pipe)
|
||||||
|
{
|
||||||
|
struct nouveau_channel *chan = nv50_context(pipe)->screen->base.channel;
|
||||||
|
|
||||||
|
BEGIN_RING(chan, RING_3D(SERIALIZE), 1);
|
||||||
|
OUT_RING (chan, 0);
|
||||||
|
BEGIN_RING(chan, RING_3D(TEX_CACHE_CTL), 1);
|
||||||
|
OUT_RING (chan, 0x20);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
nv50_default_flush_notify(struct nouveau_channel *chan)
|
nv50_default_flush_notify(struct nouveau_channel *chan)
|
||||||
{
|
{
|
||||||
|
@ -125,6 +136,7 @@ nv50_create(struct pipe_screen *pscreen, void *priv)
|
||||||
pipe->clear = nv50_clear;
|
pipe->clear = nv50_clear;
|
||||||
|
|
||||||
pipe->flush = nv50_flush;
|
pipe->flush = nv50_flush;
|
||||||
|
pipe->texture_barrier = nv50_texture_barrier;
|
||||||
|
|
||||||
if (!screen->cur_ctx)
|
if (!screen->cur_ctx)
|
||||||
screen->cur_ctx = nv50;
|
screen->cur_ctx = nv50;
|
||||||
|
|
|
@ -46,6 +46,15 @@ nvc0_flush(struct pipe_context *pipe,
|
||||||
FIRE_RING(screen->channel);
|
FIRE_RING(screen->channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
nvc0_texture_barrier(struct pipe_context *pipe)
|
||||||
|
{
|
||||||
|
struct nouveau_channel *chan = nvc0_context(pipe)->screen->base.channel;
|
||||||
|
|
||||||
|
IMMED_RING(chan, RING_3D(SERIALIZE), 0);
|
||||||
|
IMMED_RING(chan, RING_3D(TEX_CACHE_CTL), 0);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nvc0_context_unreference_resources(struct nvc0_context *nvc0)
|
nvc0_context_unreference_resources(struct nvc0_context *nvc0)
|
||||||
{
|
{
|
||||||
|
@ -128,6 +137,7 @@ nvc0_create(struct pipe_screen *pscreen, void *priv)
|
||||||
pipe->clear = nvc0_clear;
|
pipe->clear = nvc0_clear;
|
||||||
|
|
||||||
pipe->flush = nvc0_flush;
|
pipe->flush = nvc0_flush;
|
||||||
|
pipe->texture_barrier = nvc0_texture_barrier;
|
||||||
|
|
||||||
if (!screen->cur_ctx)
|
if (!screen->cur_ctx)
|
||||||
screen->cur_ctx = nvc0;
|
screen->cur_ctx = nvc0;
|
||||||
|
|
Loading…
Reference in New Issue