Hello. I was investigating on how to allow both 2D and 3D acceleration in the Mach64. So I'm a little confused:
First of all, I looked at the R128 and RADEON drivers and they are only doing a DRILock/DRIUnlock in the LeaveVT and EnterVT functions. Does this mean that those cards can do 3D and 2D operation at the same time? Then I looked a little in the mga 2D driver and a few more locking operations are showed. After this, I'm not sure about what we must interlock between 2D and 3D operation. I would like to know what do you think about the following assumptions: 1.-The proper function to lock 3D operation from XFree is DRILock. 2.-We must lock all the operations in the 2D driver that tries: Mach64WaitForIdle Mach64WaitForFIFO to guarantee that the reached FIFO condition is true. This investigation shows me another funny thing: When the 2D Xfree driver only has to make one register write, it doesn't try a Mach64WaitForFIFO. Is this correct? If the DRI driver was writing on the command FIFO, couldn't the 2D attempt to write on the FIFO fail ? On the other hand, when there are more than one register write, say N-register writes, the 2D driver makes a Mach64WaitForFIFO(N) before trying to write to the registers. Is there any other 2D operation that we should need to lock? What criteria must I follow to make this the right way? I suppose that I don't need to lock any register write, but I'm not sure, because the FIFO could get full while I'm writing from the 2D driver. I will keep looking to the other drivers, but I would like to have others opinions. On the MESA side, it looks that the hardware locking is already implemented through the functions LOCK_HARDWARE and UNLOCK_HARDWARE. Best regards. -- Manuel Teira _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel