On Thu, Jul 08, 2004 at 08:07:50AM -0700, Ian Romanick wrote:
> [EMAIL PROTECTED] wrote:
>
> >I am developing a new DRI driver based on XFree86 4.3.0,Mesa 4.0.4,and
> >redhat9.0.
>
> You might be better off basing your driver on a more recent Mesa tree.
> Right now, the open-source drivers live in src/mesa/drivers/dri in the
> Mesa tree, and they will work with older version of XFree86. There have
> been a lot of new features added and bugs fixed in Mesa since 4.0.4!
>
My work is based on r200 for XFree86 4.3.0. I compiled mesa 4.0.4 into a standalone
object file,and linked it into my driver,so I didn't need to compile mesa file every
time I builded my driver. The sources of r200 driver and mesa4.0.4 are all for
XFree86 4.3.0. I am worry whether my driver works if I only build the latest mesa(now
it is 6.0.1)
into my driver,but don't update other libraries such as libGL,libglx,libdri and libdrm.
Do I need to update all these libraries from the latest mesa tree?
> >Because my hardware can do TCL,I hook my "tcl render" stage into mesa's
> >pipe,and make it as the first stage,just like r200 driver.
> >
> >In my "run_tcl_render", I don't use mesa's template file t_dd_dmatmp2.h to
> >generate my tcl render table. My code looks like(for vertices,not
> >elements):
> >
> > for (i = VB->FirstPrimitive ; !(flags & PRIM_LAST) ; i += length) {
> > flags = VB->Primitive[i];
> > length = VB->PrimitiveLength[i];
> >
> > if (!length)
> > continue;
> >
> > if (flags & PRIM_BEGIN) {
> > start_prim(flags,current_vertex_counter);
> > }
> >
> > copy_vertex_data(ctx,inputs,i,length);
> >
> > if (flags & PRIM_END) {
> > end_prim(flags,current_vertex_counter);
> > }
> > }
> >
> >But I find PRIM_BEGIN and PRIM_END don't always pairs for a single
> >display list call or a vertex array drawing. Then sometimes I meet with a
> >non-ended primitive,and when I flush these primtives,I will lose some
> >primitives.
>
> That's interesting. Keith or Brian would probably be the best ones to
> answer that, and they're both away on vacation.
>
R200 driver doesn't care these flags much. It batches primitives into vertex
buffer,and when state changes,it flushes them. So macro R200_STATECHANGE appears
in every state DDI functions. I flush at the end of "run_tcl_render" if PRIM_BEGIN
and PRIM_END pair.If not,it means mesa VB is partial,and next time,PRIM_END maybe
occurs,then I can flush. I think my logic is true,although performance may be lower.
It works very for most of games and programs,but not for all.
> >I know r200 works well, but I don't know why my method meets this problem.
>
> I seem to recall there being a bug once in the R200 driver where a GLUT
> sphere was only partially rendered. I looked through the bug database,
> but I couldn't find it.
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel