Am Dienstag, 16. Februar 2010 11:13:06 schrieb Maarten Maathuis:
> On Tue, Feb 16, 2010 at 11:00 AM, Johannes Obermayr
> <johannesoberm...@gmx.de> wrote:
> > Am Dienstag, 16. Februar 2010 09:53:58 schrieb Ben Skeggs:
> >> On Tue, 2010-02-16 at 09:25 +0100, Johannes Obermayr wrote:
> >> > Hi,
> >> >
> >> > Ben Skeggs latest changes in Mesa cause a build failure (libdrm is
> >> > latest git ...).
> >> Rebuild latest libdrm from git, you'll also need an updated kernel
> >> module.
> >>
> >> Ben.
> > <snip>
> >
> > What does it mean? Do I need kernel-source for compiling Mesa now? Must
> > kernel modules be installed at build time?
>
> He meant, you need a new libdrm (and the latest requires a new kernel
> module to actually run). In reality that part of mesa needs to be
> updated to the latest libdrm api, because you already have the latest
> libdrm.
>
Attached patch fixes the build problem on current git with this output:
(looked what Ben Skeggs did with commit "nouveau: fix for latest libdrm")
In file included from nouveau_render_t.c:289,
from nv10_render.c:201:
nouveau_vbo_t.c: In function 'vbo_draw_vbo':
nouveau_vbo_t.c:322: warning: passing argument 3 of 'get_max_vertices' makes
integer from pointer without a cast
nouveau_render_t.c:256: note: expected 'unsigned int' but argument is of type
'struct nouveau_channel *'
nouveau_vbo_t.c: In function 'vbo_draw_imm':
nouveau_vbo_t.c:358: warning: passing argument 3 of 'get_max_vertices' makes
integer from pointer without a cast
nouveau_render_t.c:256: note: expected 'unsigned int' but argument is of type
'struct nouveau_channel *'
In file included from nouveau_render_t.c:290,
from nv10_render.c:201:
nouveau_swtnl_t.c: In function 'swtnl_flush_vertices':
nouveau_swtnl_t.c:213: warning: passing argument 3 of 'get_max_vertices' makes
integer from pointer without a cast
nouveau_render_t.c:256: note: expected 'unsigned int' but argument is of type
'struct nouveau_channel *'
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c
index 664632f..fc5f77b 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c
@@ -32,7 +32,6 @@ nouveau_bo_marker_emit(GLcontext *ctx, struct nouveau_bo_marker *m,
uint32_t flags)
{
struct nouveau_channel *chan = context_chan(ctx);
- struct nouveau_pushbuf *push = chan->pushbuf;
uint32_t packet;
if (m->gr->bound == NOUVEAU_GROBJ_UNBOUND)
@@ -41,11 +40,10 @@ nouveau_bo_marker_emit(GLcontext *ctx, struct nouveau_bo_marker *m,
if (MARK_RING(chan, 2, 2))
return GL_FALSE;
- push->remaining -= 2;
packet = (m->gr->subc << 13) | (1 << 18) | m->mthd;
if (flags) {
- if (nouveau_pushbuf_emit_reloc(chan, push->cur++, m->bo,
+ if (nouveau_pushbuf_emit_reloc(chan, chan->cur++, m->bo,
packet, 0, flags |
(m->flags & (NOUVEAU_BO_VRAM |
NOUVEAU_BO_GART |
@@ -53,10 +51,10 @@ nouveau_bo_marker_emit(GLcontext *ctx, struct nouveau_bo_marker *m,
0, 0))
goto fail;
} else {
- *(push->cur++) = packet;
+ *(chan->cur++) = packet;
}
- if (nouveau_pushbuf_emit_reloc(chan, push->cur++, m->bo, m->data,
+ if (nouveau_pushbuf_emit_reloc(chan, chan->cur++, m->bo, m->data,
m->data2, flags | m->flags,
m->vor, m->tor))
goto fail;
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c b/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
index 8fa922f..9abaa90 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c
@@ -210,7 +210,7 @@ swtnl_flush_vertices(GLcontext *ctx)
swtnl_bind_vertices(ctx);
while (count) {
- push = get_max_vertices(ctx, NULL, chan->pushbuf->remaining);
+ push = get_max_vertices(ctx, NULL, chan);
push = MIN2(push / 12 * 12, count);
count -= push;
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
index ba1192a..35a7c43 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
@@ -319,7 +319,7 @@ vbo_draw_vbo(GLcontext *ctx, const struct gl_client_array **arrays,
min_index, max_index);
}
- if (count > get_max_vertices(ctx, ib, chan->pushbuf->remaining))
+ if (count > get_max_vertices(ctx, ib, chan))
WAIT_RING(chan, PUSHBUF_DWORDS);
BATCH_BEGIN(nvgl_primitive(prims[i].mode));
@@ -355,7 +355,7 @@ vbo_draw_imm(GLcontext *ctx, const struct gl_client_array **arrays,
end = start + prims[i].count;
if (prims[i].count > get_max_vertices(ctx, ib,
- chan->pushbuf->remaining))
+ chan))
WAIT_RING(chan, PUSHBUF_DWORDS);
BATCH_BEGIN(nvgl_primitive(prims[i].mode));
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev