search for: nouveau_grobj

Displaying 20 results from an estimated 27 matches for "nouveau_grobj".

Did you mean: nouveau_gpuobj
2013 Apr 30
1
[Bug 64074] New: Mesalib Installation Error
...avec la la contenu des fcichiers suivant : ------------- nouveau_pushbhf.h------------- #ifndef __NOUVEAU_PUSHBUF_H__ #define __NOUVEAU_PUSHBUF_H__ #include <assert.h> #include <string.h> #include "nouveau/nouveau_channel.h" #include "nouveau_bo.h" #include "nouveau_grobj.h" int nouveau_pushbuf_flush(struct nouveau_channel *, unsigned min); int nouveau_pushbuf_marker_emit(struct nouveau_channel *chan, unsigned wait_dwords, unsigned wait_relocs); void nouveau_pushbuf_marker_undo(struct nouveau_channel *chan); int nouveau_pushbuf_emit_reloc(struct nouve...
2009 Dec 30
4
[PATCH 1/3] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
...define __NV50_SCREEN_H__ #include "nouveau/nouveau_screen.h" +#include "nv50_context.h" struct nv50_screen { struct nouveau_screen base; @@ -9,6 +10,7 @@ struct nv50_screen { struct nouveau_winsys *nvws; unsigned cur_pctx; + struct nv50_context *cur_ctx; struct nouveau_grobj *tesla; struct nouveau_grobj *eng2d; diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index c8bdf9d..6827863 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -185,6 +185,...
2010 Jan 18
1
[PATCH 1/2] nv30-nv40: Rewrite primitive splitting and emission
...= -1; + prim->vpp = vpp; + + nv30_state_emit(nv30); +} + +#define START_INDEX 0x80000000 + +static inline void +nv30_primitive_start_vertex(struct nv30_primitive* prim) +{ + struct nv30_screen *screen = prim->nv30->screen; + struct nouveau_channel *chan = screen->base.channel; + struct nouveau_grobj *rankine = screen->rankine; + + if(prim->startv & START_INDEX) + { + BEGIN_RING(chan, rankine, NV34TCL_VB_INDEX_BATCH, 1); + OUT_RING (chan, (prim->startv & ~START_INDEX)); + } + else + { + BEGIN_RING(chan, rankine, NV34TCL_VB_ELEMENT_U32, 1); + OUT_RING (chan, prim->start...
2009 Oct 10
0
[PATCH 1/7] nv50: use SIFC for TIC, TSC upload
...00644 --- a/src/gallium/drivers/nv50/nv50_context.c +++ b/src/gallium/drivers/nv50/nv50_context.c @@ -33,13 +33,6 @@ nv50_flush(struct pipe_context *pipe, unsigned flags, { struct nv50_context *nv50 = nv50_context(pipe); struct nouveau_channel *chan = nv50->screen->base.channel; - struct nouveau_grobj *eng2d = nv50->screen->eng2d; - - /* We need this in the ddx for reliable composite, not sure what we're - * actually flushing. We generate all our own flushes with flags = 0. */ - WAIT_RING(chan, 2); - BEGIN_RING(chan, eng2d, 0x0110, 1); - OUT_RING (chan, 0); if (flags & PIPE_F...
2009 Oct 14
0
[PATCH 3/7] nv50: submit user vbo data through the fifo
...signed, unsigned); + static INLINE unsigned nv50_prim(unsigned mode) { @@ -132,6 +144,7 @@ nv50_draw_arrays(struct pipe_context *pipe, unsigned mode, unsigned start, struct nv50_context *nv50 = nv50_context(pipe); struct nouveau_channel *chan = nv50->screen->tesla->channel; struct nouveau_grobj *tesla = nv50->screen->tesla; + boolean ret; nv50_state_validate(nv50); @@ -142,17 +155,22 @@ nv50_draw_arrays(struct pipe_context *pipe, unsigned mode, unsigned start, BEGIN_RING(chan, tesla, NV50TCL_VERTEX_BEGIN, 1); OUT_RING (chan, nv50_prim(mode)); - BEGIN_RING(chan, tesla, N...
2010 Jan 29
2
[PATCH 1/2] libdrm/nouveau: new optimized libdrm pushbuffer ABI
...ndex 294f749..ddcf8e4 100644 --- a/nouveau/nouveau_channel.h +++ b/nouveau/nouveau_channel.h @@ -29,11 +29,12 @@ struct nouveau_subchannel { }; struct nouveau_channel { + uint32_t *cur; + uint32_t *end; + struct nouveau_device *device; int id; - struct nouveau_pushbuf *pushbuf; - struct nouveau_grobj *nullobj; struct nouveau_grobj *vram; struct nouveau_grobj *gart; diff --git a/nouveau/nouveau_device.c b/nouveau/nouveau_device.c index 0982d3b..14bf8bb 100644 --- a/nouveau/nouveau_device.c +++ b/nouveau/nouveau_device.c @@ -26,7 +26,7 @@ #include "nouveau_private.h" -#if NOUVE...
2009 Dec 20
2
[PATCH 1/2] nv50: don't emit reloc markers after a referenced vtxbuf is mapped
...define __NV50_SCREEN_H__ #include "nouveau/nouveau_screen.h" +#include "nv50_context.h" struct nv50_screen { struct nouveau_screen base; @@ -9,6 +10,7 @@ struct nv50_screen { struct nouveau_winsys *nvws; unsigned cur_pctx; + struct nv50_context *cur_ctx; struct nouveau_grobj *tesla; struct nouveau_grobj *eng2d; diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index 871e809..8cf4ff4 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -185,6 +185,...
2009 Dec 20
1
[PATCH] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
...define __NV50_SCREEN_H__ #include "nouveau/nouveau_screen.h" +#include "nv50_context.h" struct nv50_screen { struct nouveau_screen base; @@ -9,6 +10,7 @@ struct nv50_screen { struct nouveau_winsys *nvws; unsigned cur_pctx; + struct nv50_context *cur_ctx; struct nouveau_grobj *tesla; struct nouveau_grobj *eng2d; diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index 871e809..8cf4ff4 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -185,6 +185,...
2009 Nov 04
1
[PATCH] nv10/exa: Spring-cleaning
..._info("Accelerating", op, src, mask, dst); return TRUE; } -static void NV10SetTexture(NVPtr pNv, int unit, PicturePtr Pict, PixmapPtr pixmap) +static void +setup_texture(NVPtr pNv, int unit, PicturePtr pict, PixmapPtr pixmap) { struct nouveau_channel *chan = pNv->chan; struct nouveau_grobj *celsius = pNv->Nv3D; struct nouveau_bo *bo = nouveau_pixmap_bo(pixmap); unsigned delta = nouveau_pixmap_offset(pixmap); - int log2w = log2i(Pict->pDrawable->width); - int log2h = log2i(Pict->pDrawable->height); - int w; + long w = pict->pDrawable->width, + h = pict-&g...
2012 May 23
5
[Bug 50280] New: Mesa 8.0.3 fails to build dri/nouveau against libdrm 2.4.34
...failed build As per summary. Building against libdrm 2.4.34 and kernel 3.2.16, Mandriva 2010.2 x86_64. The message error is: ************************** In file included from nouveau_fbo.c:27: nouveau_driver.h:41:28: error: nouveau_device.h: No such file or directory nouveau_driver.h:42:27: error: nouveau_grobj.h: No such file or directory nouveau_driver.h:43:29: error: nouveau_channel.h: No such file or directory nouveau_driver.h:44:24: error: nouveau_bo.h: No such file or directory nouveau_driver.h:45:30: error: nouveau_notifier.h: No such file or directory nouveau_driver.h:49:26: error: nv04_pushbuf.h:...
2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...{ nouveau_resource_free(&q->object); + LIST_DEL(&q->list); + } FREE(q); } @@ -44,20 +50,25 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_screen *screen = nv30->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj *rankine = screen->rankine; - - assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + uint64_t tmp; /* Happens when end_query() is called, then another begin_query() * without querying the result in-between. For now we'll wait for * the existing query to notify completion, but it...
2010 Jan 18
0
[PATCH] nv04-nv40: Rewrite and unify miptree and transfer code
...--- a/src/gallium/drivers/nv04/nv04_state_emit.c +++ b/src/gallium/drivers/nv04/nv04_state_emit.c @@ -92,11 +92,10 @@ static void nv04_emit_sampler(struct nv04_context *nv04, int unit) struct nv04_screen *screen = nv04->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj *fahrenheit = screen->fahrenheit; - struct nouveau_bo *bo = nouveau_bo(nv04mt->buffer); BEGIN_RING(chan, fahrenheit, NV04_TEXTURED_TRIANGLE_OFFSET, 3); - OUT_RELOCl(chan, bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD); - OUT_RELOCd(chan, bo, (nv04->fragtex.format | nv04->...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
...resource_free(&q->object); + LIST_DEL(&q->list); + } FREE(q); } @@ -44,20 +50,25 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_screen *screen = nv30->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj *rankine = screen->rankine; - - assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + uint64_t tmp; /* Happens when end_query() is called, then another begin_query() * without querying the result in-between. For now we'll wait for * the existing query to notify completion,...
2009 Jun 21
0
[PATCH] nv50: add support for two-sided lighting
...sla, 0x16ac, 2); - so_data (so, p->cfg.high_result); //8); - so_data (so, p->cfg.high_temp); so_method(so, tesla, 0x140c, 1); so_data (so, p->code->start); so_ref(so, &nv50->state.vertprog); @@ -2410,7 +2425,6 @@ nv50_fragprog_validate(struct nv50_context *nv50) struct nouveau_grobj *tesla = nv50->screen->tesla; struct nv50_program *p = nv50->fragprog; struct nouveau_stateobj *so; - unsigned i; if (!p->translated) { nv50_program_validate(nv50, p); @@ -2421,18 +2435,7 @@ nv50_fragprog_validate(struct nv50_context *nv50) nv50_program_validate_data(nv50,...
2010 Jan 18
0
[PATCH] nv04-nv40: Rewrite and unify miptree and transfer code (v2)
...--- a/src/gallium/drivers/nv04/nv04_state_emit.c +++ b/src/gallium/drivers/nv04/nv04_state_emit.c @@ -92,11 +92,10 @@ static void nv04_emit_sampler(struct nv04_context *nv04, int unit) struct nv04_screen *screen = nv04->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj *fahrenheit = screen->fahrenheit; - struct nouveau_bo *bo = nouveau_bo(nv04mt->buffer); BEGIN_RING(chan, fahrenheit, NV04_TEXTURED_TRIANGLE_OFFSET, 3); - OUT_RELOCl(chan, bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD); - OUT_RELOCd(chan, bo, (nv04->fragtex.format | nv04->...
2009 May 08
0
[PATCH] gallium/nv50: fix multi-texturing
...E struct nv50_context * diff --git a/src/gallium/drivers/nv50/nv50_tex.c b/src/gallium/drivers/nv50/nv50_tex.c index 223c8a3..e7e1521 100644 --- a/src/gallium/drivers/nv50/nv50_tex.c +++ b/src/gallium/drivers/nv50/nv50_tex.c @@ -136,8 +136,12 @@ nv50_tex_validate(struct nv50_context *nv50) struct nouveau_grobj *tesla = nv50->screen->tesla; struct nouveau_stateobj *so; int unit; + unsigned push_nr; - so = so_new(nv50->miptree_nr * 8 + 3, nv50->miptree_nr * 2); + push_nr = MAX2(nv50->miptree_nr, nv50->texbind_nr) * 2; + push_nr += nv50->miptree_nr * 8 + 3; + + so = so_new(push_nr,...
2009 Oct 31
0
[PATCH] nv/exa: fix 15/16 bits solid fill
...accel_common.c | 5 ++++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/nv04_exa.c b/src/nv04_exa.c index 132c9d5..1852f99 100644 --- a/src/nv04_exa.c +++ b/src/nv04_exa.c @@ -81,7 +81,7 @@ NV04EXAPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) struct nouveau_grobj *rect = pNv->NvRectangle; struct nouveau_bo *bo = nouveau_pixmap_bo(pPixmap); unsigned delta = nouveau_pixmap_offset(pPixmap); - unsigned int fmt, pitch, color; + unsigned int fmt, pitch, fmt2 = NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8; WAIT_RING(chan, 64); @@ -102,13 +102,12 @@ N...
2009 Dec 30
0
[PATCH] Fix surface_fill alpha
...24X8_UNORM: - return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8; - default: - return -1; - } -} - -static INLINE int nv04_scaled_image_format(enum pipe_format format) { switch (format) { @@ -319,13 +299,24 @@ nv04_surface_fill(struct nv04_surface_2d *ctx, struct pipe_surface *dst, struct nouveau_grobj *rect = ctx->rect; struct nouveau_bo *dst_bo = nouveau_bo(ctx->buf(dst)); unsigned dst_pitch = ((struct nv04_surface *)dst)->pitch; + int bpp = util_format_get_blocksize(dst->format); int cs2d_format, gdirect_format; - cs2d_format = nv04_surface_format(dst->format); - assert(c...
2009 Apr 08
0
[PATCH/Gallium] nv50: update nv50_clear to new interface
...encil) { + struct pipe_surface *ps = NULL; + /* silenced 'used uninitialized' warning by setting NULL, + * GCC doesn't know it can't actually happen */ struct nv50_context *nv50 = nv50_context(pipe); struct nouveau_channel *chan = nv50->screen->nvws->channel; struct nouveau_grobj *tesla = nv50->screen->tesla; @@ -37,21 +42,45 @@ nv50_clear(struct pipe_context *pipe, struct pipe_surface *ps, struct pipe_scissor_state sc, s_sc = nv50->scissor; unsigned dirty = nv50->dirty; + /* if 'no buffers' case is possible, change this to if/return */ + assert(buf...
2009 Sep 12
0
[PATCH 10/13] nv50: proper linkage between VP and FP
..._data (so, p->cfg.attr[0]); + so_data (so, p->cfg.attr[1]); so_method(so, tesla, NV50TCL_VP_REG_ALLOC_RESULT, 1); so_data (so, p->cfg.high_result); so_method(so, tesla, NV50TCL_VP_RESULT_MAP_SIZE, 2); @@ -2625,7 +2640,6 @@ nv50_fragprog_validate(struct nv50_context *nv50) struct nouveau_grobj *tesla = nv50->screen->tesla; struct nv50_program *p = nv50->fragprog; struct nouveau_stateobj *so; - unsigned i; if (!p->translated) { nv50_program_validate(nv50, p); @@ -2642,29 +2656,119 @@ nv50_fragprog_validate(struct nv50_context *nv50) NOUVEAU_BO_HIGH, 0, 0);...