Displaying 11 results from an estimated 11 matches for "vtxfmt".
2009 Jul 28
0
[PATCH 6/8] nv50: support more vtxelt formats
...ot;invalid vbo format %s\n",pf_name(pf));
+ assert(0);
+ return (nf | 0x08000000);
+}
+
boolean
nv50_draw_arrays(struct pipe_context *pipe, unsigned mode, unsigned start,
unsigned count)
@@ -208,6 +259,10 @@ nv50_vbo_validate(struct nv50_context *nv50)
struct nouveau_stateobj *vtxbuf, *vtxfmt;
int i;
+ /* don't validate if Gallium took away our buffers */
+ if (nv50->vtxbuf_nr == 0)
+ return;
+
vtxbuf = so_new(nv50->vtxelt_nr * 4, nv50->vtxelt_nr * 2);
vtxfmt = so_new(nv50->vtxelt_nr + 1, 0);
so_method(vtxfmt, tesla, 0x1ac0, nv50->vtxelt_nr);
@@ -218,30 +27...
2009 Oct 14
0
[PATCH 3/7] nv50: submit user vbo data through the fifo
...8 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_context.h b/src/gallium/drivers/nv50/nv50_context.h
index be53990..8e2d695 100644
--- a/src/gallium/drivers/nv50/nv50_context.h
+++ b/src/gallium/drivers/nv50/nv50_context.h
@@ -120,6 +120,7 @@ struct nv50_state {
struct nouveau_stateobj *vtxfmt;
struct nouveau_stateobj *vtxbuf;
struct nouveau_stateobj *vtxattr;
+ unsigned vtxelt_nr;
};
struct nv50_context {
@@ -152,6 +153,8 @@ struct nv50_context {
unsigned sampler_nr;
struct nv50_miptree *miptree[PIPE_MAX_SAMPLERS];
unsigned miptree_nr;
+
+ uint16_t vbo_fifo;
};
static...
2015 May 26
2
[PATCH 2/2] nv30/draw: switch varying hookup logic to know about texcoords
...em].emit;
> break;
> }
> @@ -260,11 +262,11 @@ vroute_add(struct nv30_render *r, uint attrib, uint sem, uint *idx)
> draw_emit_vertex_attr(vinfo, emit, vroute[sem].interp, attrib);
> format = draw_translate_vinfo_format(emit);
>
> - r->vtxfmt[attrib] = nv30_vtxfmt(pscreen, format)->hw;
> + r->vtxfmt[attrib] = nv30_vtxfmt(&screen->base.base, format)->hw;
> r->vtxptr[attrib] = vinfo->size | NV30_3D_VTXBUF_DMA1;
> vinfo->size += draw_translate_vinfo_size(emit);
>
> - if (nv30_screen(...
2015 May 26
2
[PATCH 2/2] nv30/draw: switch varying hookup logic to know about texcoords
...}
>>> @@ -260,11 +262,11 @@ vroute_add(struct nv30_render *r, uint attrib, uint
>>> sem, uint *idx)
>>> draw_emit_vertex_attr(vinfo, emit, vroute[sem].interp, attrib);
>>> format = draw_translate_vinfo_format(emit);
>>> - r->vtxfmt[attrib] = nv30_vtxfmt(pscreen, format)->hw;
>>> + r->vtxfmt[attrib] = nv30_vtxfmt(&screen->base.base, format)->hw;
>>> r->vtxptr[attrib] = vinfo->size | NV30_3D_VTXBUF_DMA1;
>>> vinfo->size += draw_translate_vinfo_size(emit);
>>...
2009 Dec 21
2
[PATCH 1/2] Unreference state/buffer objects on context/screen destruction
...L, &nv50->state.tic_upload);
+ if (nv50->state.vertprog)
+ so_ref(NULL, &nv50->state.vertprog);
+ if (nv50->state.fragprog)
+ so_ref(NULL, &nv50->state.fragprog);
+ if (nv50->state.programs)
+ so_ref(NULL, &nv50->state.programs);
+ if (nv50->state.vtxfmt)
+ so_ref(NULL, &nv50->state.vtxfmt);
+ if (nv50->state.vtxbuf)
+ so_ref(NULL, &nv50->state.vtxbuf);
+ if (nv50->state.vtxattr)
+ so_ref(NULL, &nv50->state.vtxattr);
+
draw_destroy(nv50->draw);
FREE(nv50);
}
Index: nv40/nv40_screen.c
===============...
2015 May 25
3
[PATCH 1/2] nv30/draw: rework some of the output vertex buffer logic
This makes the vertex buffer go to GART, not VRAM, and redoes the
mapping to not use the UNSYNCHRONIZED access (which is meaningless on a
VRAM buffer anyways). While we're at it, add some flushes for VBO data.
Moving the vertex buffer from VRAM to GART makes glxgears work fully
with NV30_SWTNL=1. The other changes just seem like a good idea. I'm not
sure *why* moving the buffer from VRAM
2009 Dec 30
4
[PATCH 1/3] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
- This avoids problematic "reloc'ed while mapped" messages and
some associated corruption as well.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
src/gallium/drivers/nouveau/nouveau_screen.c | 21 +++++++++++++++++++++
src/gallium/drivers/nouveau/nouveau_screen.h | 3 +++
src/gallium/drivers/nouveau/nouveau_stateobj.h | 13 +++++++++++++
2009 Dec 05
0
[PATCH] nouveau: avoid running out of relocs (attempt 3)
...V50_NEW_SAMPLER)
+ so_get_push_reloc(nv50->state.tsc_upload, &push, &reloc);
+ if (nv50->state.dirty & NV50_NEW_TEXTURE)
+ so_get_push_reloc(nv50->state.tic_upload, &push, &reloc);
+ if (nv50->state.dirty & NV50_NEW_ARRAYS) {
+ so_get_push_reloc(nv50->state.vtxfmt, &push, &reloc);
+ so_get_push_reloc(nv50->state.vtxbuf, &push, &reloc);
+ if (nv50->state.vtxattr)
+ so_get_push_reloc(nv50->state.vtxattr, &push, &reloc);
+ }
+
+ /* Flush if needed. */
+ MARK_RING(chan, push, reloc);
+
if (nv50->state.dirty & NV50_NE...
2009 Sep 12
0
[PATCH 10/13] nv50: proper linkage between VP and FP
...100644
--- a/src/gallium/drivers/nv50/nv50_context.h
+++ b/src/gallium/drivers/nv50/nv50_context.h
@@ -116,6 +116,7 @@ struct nv50_state {
unsigned miptree_nr;
struct nouveau_stateobj *vertprog;
struct nouveau_stateobj *fragprog;
+ struct nouveau_stateobj *programs;
struct nouveau_stateobj *vtxfmt;
struct nouveau_stateobj *vtxbuf;
struct nouveau_stateobj *vtxattr;
@@ -190,6 +191,7 @@ extern void nv50_clear(struct pipe_context *pipe, unsigned buffers,
/* nv50_program.c */
extern void nv50_vertprog_validate(struct nv50_context *nv50);
extern void nv50_fragprog_validate(struct nv50_conte...
2010 Feb 26
5
[PATCH 0/5] renouveau: nv30/nv40 unification
This patchset applies some minor fixes to renouveau.xml and then unifies
the nv30 and nv40 register definitions.
nv30 and nv40 are very similar and have the same offsets for the registers
they share.
The major differences are:
1. Texture setup is different due to full NPOT support on nv40
2. More advanced blending/render targets on nv40
3. NV30 has fixed function registers, which NV40 lacks
The
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,