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);...