Hello. 

I've been very busy lately at work, and have sadly checked that there have 
been no progress in the mach64 work, or at least it wasn't  posted in this 
list.

Today I've tried to make gears work under the mach64 drm code. Well, gears 
just shows a window with rests of KDE initialization screen. I've been 
debugging the execution and found the following:
Neither mach64_dma_clear or mach64_dma_swap are working. This is, in my 
opinion, the cause for gears just to show a fixed image with some old buffer 
in it. The things gears does are:
1.-gears gets a back buffer and clears it.
2.-gears draws in the back buffer and swaps buffers for every frame.

None of this things are working.

I've been looking at the code implementing mach64_dma_clear and 
mach64_dma_swap (mach64_state.c) and at a first glance I get surprised, 
because it was using  DMA for register writing (like Utah-GLX) with the macro 
sequence:

DMAGETPTR
DMAOUTREG
DMAADVANCE

but looking at those macros implementation, I've found that Gareth was making 
direct register programming (perhaps while investigating the DMA problem), 
and so the macros were (mach64_drv.h) :

DMAGETPTR(dev_priv,n) =   mach64_do_wait_for_fifo(dev_priv,n)
DMAOUTREG(reg,val) = MACH64_WRITE(reg,val)
DMAADVANCE() = Nothing to do here

Some time ago, with another laptop, I tested Gareth's mach64 branch, and it 
worked (it was with an early XFree 4 version) for me. So, I think that the 
register manipulation for swaping and clearing are fine. 

What do you think that could be happening? The only supposition I have is 
that we're not writing to the correct location. Could this be possible? My 
drm logs are saying:
mmio->offset=0xF4200000 ( in the dma_init function)

and testing cat /proc/pci
   VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x 
(rev 100).
      IRQ 11.
      Master Capable.  Latency=66.  Min Gnt=8.
      Non-prefetchable 32 bit memory at 0xf5000000 [0xf5ffffff].
      I/O at 0x2000 [0x20ff].
      Non-prefetchable 32 bit memory at 0xf4200000 [0xf4200fff].

Could be that the aperture notified in the 'cat /proc/pci' is not the one we 
are looking for?  I don't think so, it's size is fine, and I cant' imagine 
what other thing could it be.
Could the auxiliar aperture be disabled? ATI's documentation says that the 
auxiliar aperture is always enabled.

Perhaps all the problem is derived from a bad initialization in the 2d driver 
code. Frank, have you found something new about this?

Well, I would like you to give me some idea about what could be happening. I 
think that the two problems (no swapping nor clearing and BusMastering 
trouble) could share the same seed.

BTW. Somebody said that the mach64 driver crashed under 2.4.10 kernel (I 
don't remember who said it). I've made all these tests under 2.4.12 without 
problems.

Best regards.
--
M. Teira

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to