search for: mark_ring

Displaying 12 results from an estimated 12 matches for "mark_ring".

Did you mean: back_ring
2009 Dec 05
0
[PATCH] nouveau: avoid running out of relocs (attempt 3)
...2d.c index 932893e..3020806 100644 --- a/src/gallium/drivers/nv04/nv04_surface_2d.c +++ b/src/gallium/drivers/nv04/nv04_surface_2d.c @@ -133,6 +133,9 @@ nv04_surface_copy_swizzle(struct nv04_surface_2d *ctx, assert(sub_w == w || util_is_pot(sub_w)); assert(sub_h == h || util_is_pot(sub_h)); + MARK_RING (chan, 8 + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*17, 2 + + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*2); + BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_DMA_IMAGE, 1); OUT_RELOCo(chan, dst_bo, NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_WR); @@ -202,7 +205,7 @@ nv04_surface_c...
2009 Dec 05
1
[PATCH] nouveau: avoid running out of relocs (attempt 4)
...2d.c index 932893e..3020806 100644 --- a/src/gallium/drivers/nv04/nv04_surface_2d.c +++ b/src/gallium/drivers/nv04/nv04_surface_2d.c @@ -133,6 +133,9 @@ nv04_surface_copy_swizzle(struct nv04_surface_2d *ctx, assert(sub_w == w || util_is_pot(sub_w)); assert(sub_h == h || util_is_pot(sub_h)); + MARK_RING (chan, 8 + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*17, 2 + + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*2); + BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_DMA_IMAGE, 1); OUT_RELOCo(chan, dst_bo, NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_WR); @@ -202,7 +205,7 @@ nv04_surface_c...
2009 Dec 13
3
[PATCH] nouveau: avoid running out of relocs (attempt 5)
...2d.c index 932893e..3020806 100644 --- a/src/gallium/drivers/nv04/nv04_surface_2d.c +++ b/src/gallium/drivers/nv04/nv04_surface_2d.c @@ -133,6 +133,9 @@ nv04_surface_copy_swizzle(struct nv04_surface_2d *ctx, assert(sub_w == w || util_is_pot(sub_w)); assert(sub_h == h || util_is_pot(sub_h)); + MARK_RING (chan, 8 + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*17, 2 + + ((w+sub_w)/sub_w)*((h+sub_h)/sub_h)*2); + BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_DMA_IMAGE, 1); OUT_RELOCo(chan, dst_bo, NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_WR); @@ -202,7 +205,7 @@ nv04_surface_c...
2009 Dec 04
3
[PATCH] nouveau: avoid running out of relocs
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com> --- src/gallium/drivers/nouveau/nouveau_stateobj.h | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/nouveau/nouveau_stateobj.h b/src/gallium/drivers/nouveau/nouveau_stateobj.h index b595405..28f483f 100644 --- a/src/gallium/drivers/nouveau/nouveau_stateobj.h +++
2009 Dec 30
0
[PATCH] Fix surface_fill alpha
...AT_Y8; + } + else if(bpp == 2) + { + gdirect_format = NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5; + cs2d_format = NV04_CONTEXT_SURFACES_2D_FORMAT_Y16; + } + else + { + gdirect_format = NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8; + cs2d_format = NV04_CONTEXT_SURFACES_2D_FORMAT_Y32; + } MARK_RING (chan, 16, 4); BEGIN_RING(chan, surf2d, NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE, 2);
2013 Apr 30
1
[Bug 64074] New: Mesalib Installation Error
...void *ptr, struct nouveau_bo *, uint32_t data, uint32_t data2, uint32_t flags, uint32_t vor, uint32_t tor); int nouveau_pushbuf_submit(struct nouveau_channel *chan, struct nouveau_bo *bo, unsigned offset, unsigned length); /* Push buffer access macros */ static __inline__ int MARK_RING(struct nouveau_channel *chan, unsigned dwords, unsigned relocs) { return nouveau_pushbuf_marker_emit(chan, dwords, relocs); } static __inline__ void MARK_UNDO(struct nouveau_channel *chan) { nouveau_pushbuf_marker_undo(chan); } static __inline__ void OUT_RING(struct nouveau_channel *chan, unsig...
2014 Jun 16
2
[PATCH 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
...= nv50_screen(pscreen); - struct nouveau_pushbuf *push = screen->base.pushbuf; + struct nv50_screen *screen = NULL; + struct nouveau_pushbuf *push; + + screen = container_of(mgr, screen, base.fence); + push = screen->base.pushbuf; /* we need to do it after possible flush in MARK_RING */ *sequence = ++screen->base.fence.sequence; @@ -369,9 +372,12 @@ nv50_screen_fence_emit(struct pipe_screen *pscreen, u32 *sequence) } static u32 -nv50_screen_fence_update(struct pipe_screen *pscreen) +nv50_screen_fence_update(struct nouveau_fence_mgr *mgr) { - return nv50_scree...
2014 Jun 17
2
[PATCH try 2 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
...en = nv50_screen(pscreen); - struct nouveau_pushbuf *push = screen->base.pushbuf; + struct nv50_screen *screen = NULL; + struct nouveau_pushbuf *push; + + screen = container_of(mgr, screen, base.fence); + push = screen->base.pushbuf; /* we need to do it after possible flush in MARK_RING */ *sequence = ++screen->base.fence.sequence; @@ -369,9 +372,12 @@ nv50_screen_fence_emit(struct pipe_screen *pscreen, u32 *sequence) } static u32 -nv50_screen_fence_update(struct pipe_screen *pscreen) +nv50_screen_fence_update(struct nouveau_fence_mgr *mgr) { - return nv50_screen(psc...
2010 Jan 18
1
[PATCH 1/2] nv30-nv40: Rewrite primitive splitting and emission
The current code for primitive splitting and emission on pre-nv50 is severely broken. In particular: 1. Quads and lines are totally broken because "&= 3" should be "&= ~3" and similar for lines 2. Triangle fans and polygons are broken because the first vertex must be repeated for each split chunk 3. Line loops are broken because the must be converted to a line strip,
2014 Jun 17
0
[PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...} + +static void +nv50_context_fence_emit(struct nouveau_fence_mgr *mgr, u32 *sequence) +{ + struct nv50_context *nv50 = NULL; + struct nouveau_pushbuf *push; + + nv50 = container_of(mgr, nv50, base.fence); + push = nv50->base.pushbuf; + + /* we need to do it after possible flush in MARK_RING */ + *sequence = ++nv50->base.fence.sequence; + + PUSH_DATA (push, NV50_FIFO_PKHDR(NV50_3D(QUERY_ADDRESS_HIGH), 4)); + PUSH_DATAh(push, nv50->fence.bo->offset + nv50->fence.ofs); + PUSH_DATA (push, nv50->fence.bo->offset + nv50->fence.ofs); + PUSH_DATA (push, *sequenc...
2014 Jun 21
3
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...emit(struct nouveau_fence_mgr *mgr, u32 *sequence) > +{ > + struct nv50_context *nv50 = NULL; > + struct nouveau_pushbuf *push; > + > + nv50 = container_of(mgr, nv50, base.fence); > + push = nv50->base.pushbuf; > + > + /* we need to do it after possible flush in MARK_RING */ > + *sequence = ++nv50->base.fence.sequence; > + > + PUSH_DATA (push, NV50_FIFO_PKHDR(NV50_3D(QUERY_ADDRESS_HIGH), 4)); > + PUSH_DATAh(push, nv50->fence.bo->offset + nv50->fence.ofs); > + PUSH_DATA (push, nv50->fence.bo->offset + nv50->fence.ofs); >...
2009 Nov 04
1
[PATCH] nv10/exa: Spring-cleaning
* Kill the A8+A8 hack. Recent enough X servers (>=1.7) fall back to ARGB glyphs for drivers not supporting A8 render targets. * Kill all the global state. It doesn't matter a lot yet but it might if we get multicard working at some point. * Other random clean-ups with no functional changes. Some numbers from x11perf -aa10text -aa24text -comppixwin10 -comppixwin500: * Before, with A