[xorg-bugzilla-noise] [Bug 1033] Non-DRI build broken on PPC recently (6.7.99.1).

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 10 23:13:17 PDT 2004


Please do not reply to this email: if you want to comment on the bug, go to          
the URL shown below and enter yourcomments there.   
 
https://freedesktop.org/bugzilla/show_bug.cgi?id=1033        
   

mharris at www.linux.org.uk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mharris at www.linux.org.uk
         AssignedTo|xorg-bugzilla-              |mharris at redhat.com
                   |noise at freedesktop.org       |




------- Additional Comments From mharris at www.linux.org.uk  2004-08-10 23:13 -------
Here's the problem:

    if (info->accel->NeedToSync) {
        info->accel->Sync(pScrn);
        if (info->CPStarted)
            RADEONInit3DEngineForRender(pScrn);
    }

The code above, from R100SetupTextureMMIO() gets called, but the check for
info-CPStarted blows up because CPStarted structure member isn't defined for
the non-DRI case.  Then RADEONInit3DEngineForRender(pScrn) is called but only
if CPStarted is set.  This is obviously incorrect, since the code in
RADEONInit3DEngineForRender(pScrn) has conditional compilation for both the
DRI and non-DRI cases, and for the DRI case, it already checks internally
if CPStarted has been set or not:

void RADEONInit3DEngineForRender(ScrnInfoPtr pScrn)
{
#ifdef XF86DRI
    RADEONInfoPtr info = RADEONPTR (pScrn);

    if (info->CPStarted)
        RadeonInit3DEngineCP(pScrn);
    else
#endif
        RadeonInit3DEngineMMIO(pScrn);
}


As such, the if blocks in both R100SetupTextureMMIO() and
R200SetupTextureMMIO() right now which check if CPStarted is set or not, will
result in RADEONInit3DEngineForRender() never being called unless DRI is
enabled, which is obviously wrong.

The correct fix for this problem, is to remove the conditional checks for
CPStarted prior to calling RADEONInit3DEngineForRender(), which will result
in RADEONInit3DEngineForRender() making that decision internally.  This should
fix both the compile time problem, and also the runtime problem that would
have occured in the non-DRI case, had the existing code actually compiled
(had CPStarted been a structure member outside of the XF86DRI conditional).

I'll attach a patch to fix this shortly.        
   
   
--         
Configure bugmail: https://freedesktop.org/bugzilla/userprefs.cgi?tab=email       
   
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the xorg-bugzilla-noise mailing list