HI

Unfortunatly my notebook with Savage MX video subsystem is broken at the 
moment :',-( so I can not do real coding / testing for a while, but I am 
studing the problem an have some questions

First of all, I have not any documentation for Savage chip, but I have 
Utah-GLX source and will refer to it

1. The Vertex Format.
The r128 driver define vertex format in t_dd_vertex.h template as union of v, 
pv and tv structures and some arraies. The Utah Savage driver define vertex 
format in savage_hw.h as

typedef struct _SavageVertex {
        float fX;
        float fY;
        float fZ;
        float fW;
        SavageColor stDiffuse;
        SavageColor stSpecularFog;
        float fU;
        float fV;
} SavageVertex, *SavageVertexPtr;

which do not correspond directly to structures in r128Vertex. The closest 
probably v fild of the union but compare to SavageVertex it have addition 
filds u1, v1, u2, v2, u3, v3
SO question is how to right define vertex format for Savage in DRI (and what 
is function of filds u1, v1, u2, v2, u3, v3)?

2.sending commands to hardware
in Utah-GLX all simple. When we draw triangle, we put command and vertices of 
the trianle after command in the bci buffer. (savage_tri.h and savage_line.h)
But in r128 we put _ONLY_ wertices in the dma buffer (r128_tris.c and 
t_dd_tritmp.h) and I can not find the place of code were we put command for 
hardware in the dma buffer :-( the dri tree is too big. . .

3. Tiny vertex
What it is? and for what htey are used? are they correspond to the tv fild of 
r128Vertex? r128_vb.c define HAVE_TINY_VERTICES in 1 . . .

probably I can use this format of vertex with Savage if I setup flags 
BCI_SKIP_W | BCI_SKIP_SPECULAR | BCI_SKIP_U | BCI_SKIP_V in the command
Is this true?

4. GL context
The definition of context for savage (savage_glx.h) in Utah-GLX is very simpl

typedef struct _SavageContext {
        SavageBufferPtr pDrawBuffer;
        GLcontext *gl_ctx; // mesa context with all states and other goodies 
        float fViewportHeight;
} SavageContext, *SavageContextPtr;

But the definiton of context for r128 (r128_context.h) in DRI more complex :-(
what filds in the struct r128_context are specific for r128 hardware ???

5 Savage hardware registers mmap
savage_hw.h define SavageRegs struct wich is, as I understand, mmap for 
hardware context regs. and we probably need to define something similar. 
what is the best place for this?



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to