From: Dimitry N. N. <di...@ti...> - 2003-06-18 06:24:36
|
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? |