Dave Airlie writes:
 > >
 > > I've made a patch against the DRM code in CVS adding a few pieces that
 > > were missing.
 > > The code works for me on both radeon and r128. I've also tried to test
 > > mga however the mga code in CVS doesn't seem to work at all right now.
 > 
 > My guess would be idr's changes might need some compat work .. no idea
 > though..

I didn't see any problems. 
mga client side needs two adjustments. One really is a bugfix in code
that isn't used with newer versions of DRM and the other one is a fix
to the DRIRec structure.
We may be able to do some compat work there but I'm not sure if it's
worth it. 
We have already discussed eliminating drmAddress. These changes can
be done simultaniously.

 > 
 > >  > I am currently assigning completely arbitrary 32-bit tokens for maps
 > >  > just to see how that works, and it seems to be fine on my G5 (which
 > >  > has AGP and a radeon 9600 card).  I think it would be preferable to
 > >  > use Egbert's code which uses the map->offset value if it fits into 32
 > >  > bits in the longer term.
 > >
 > > I've changed this to use the address value if possible (if it fits into
 > > 32bits and if the value has not been used as token for something else).
 > >
 > > This should help to maintain backward compatibility, on the other
 > > hand it may not sufficiently deter people from using handles as base
 > > addresses.
 > >
 > >    DRM will work with either version.
 > >    The kernel does not use drm_handle_t (except for the mga driver)
 > >    where the use of it has been introduced just recently.
 > 
 > I only consider published kernels and released X as stable ABIs so we can
 > change the kernel stuff for the mga now... its in -mm but that is only
 > experimental..
 > 

OK, how should we proceed then?

I would propose the following:
Phase 1: 
      a. Make changes to DRM but leave drm_handle_t unsigned long
         We could then make texture_handle u32 as this would suffice to
         hold all significant bits of drm_handle_t although drm_handle_t
         is still unsigned long.
      b. convert unsigned long handle to drm_handle_t handle in Mesa and X
         code.

Phase 2:
      a. change drm_handle_t to unsigned int.
      b. eliminate drmAddress and make the appropriate changes to driver 
         DRIRec structures in Mesa and X.

I can commit all the changes to X. However since some code (the driver DRI
files for example) live both in Mesa and X things need to be coordinated
somewhat.
Can anyone give me a clue how this coordination is done?

Cheers,
        Egbert.


-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to