On Fri, Aug 5, 2011 at 12:27 PM, Chad Versace <c...@chad-versace.us> wrote: > On 08/04/2011 11:25 AM, Chia-I Wu wrote: >> Hi Chad, >> >> On Thu, Aug 4, 2011 at 6:47 PM, Chad Versace <c...@chad-versace.us> wrote: >>> This is the first step in porting i965 to Android, initially to Gingerbread. >>> Android is ubiquituous now, and the platform's importance can't be denied. >>> The >>> Intel drivers really should support it. >>> >>> The series first builds libglapi, then libmesa, and then libi965_dri. >>> lib965_dri doens't work yet; it doesn't even link to libdrm. This is just >>> the >>> initial work to get it to build. >>> >>> I'm aware that this may be controversial, so I've attempted to integrate the >>> Android makefiles as non-disruptively as possible. >>> - The Android makefiles attempt to duplicate as little as possible from the >>> existing makefiles. In one case, this dictated that some Makefile code be >>> extracted into a shared makefile. >>> - I've avoided modifying the existsing makefiles except when absolutely >>> necessary. When a modification or cleanup was necessary, I have attempted >>> to keep the changes minimal and do them incrementally. >>> - The locations of the Android makefiles mirror those of the existing >>> makefiles. >>> >>> The series does not break the Linux i965 build. I doubt it breaks other >>> drivers' builds, but I haven't tested it. If you want me to check that it >>> doesn't break your build, just let me know the autoconf options. >>> >>> The series lives on my android-gingerbread-i965 branch. If you'd like to try >>> the Android build yourself, you should pull from my personal Android >>> manifest >>> [1], which closely mirrors android-x86, and set `BOARD_USES_I965 := true` in >>> buildspeck.mk. >>> >>> [1] repo init -u >>> git://anongit.freedesktop.git/~chadversary/android.manifeset.git -b >>> gingerbread-i965 >> Thanks for bringing this up and working on it. Before commenting on >> the changes to Mesa, I'd like to talk a little bit about the external >> dependencies. >> >> To have a working build of Mesa for the Android Gingerbread source >> tree, these external changes are needed >> >> 1) modify Android's init (pid 1) to create DRI device nodes under /dev >> 2) make off_t 64-bit so that mmap() a GEM object works >> 3) figure out how to authenticate a DRM fd >> 4) add libdrm to Android source tree >> 5) add drm_gralloc (the DDX driver, sort of) to Android source tree >> >> There may be more that I cannot recall now. >> >> Of these changes, only 3), 4), and 5) affect how Mesa is built. >> It is safe to assume 4) and 5) are already there, as we have >> good relationship with those projects. But how to solve 3) is still >> an open question. > > Luckily, some key people who can help us with 3 belong to my team: the author > of > Wayland, and the authors of Intel's DRM module, i915.ko. I will probe them > when > we reach that bridge. > >> We can either spend several months discussing 3) with the Android team >> before landing Android support to Mesa. > > I have been given a timeframe to complete this, and though I cannot discuss > the > details, several months is unacceptable. The Mesa port needs to be completed > before yesterday. > >> Or we can assume it is >> solved, land the Android support for Mesa probably over the next few >> weeks, and initiate the discussion with the Android team with >> something concrete. Now that we are at this, my preference is the >> latter. > > Yes. We should take the latter approach. I forgot to mention that we need to do 1), 2), ..., 5) only when we target for integrating into the vanilla Android tree. When we target for integration with Android-x86, these tasks are either done or worked around. >> Back to your changes. I am fine with landing your version and is >> willing to help review them, proivided your work won't stop after >> i915/i965 is supported. Otherwise, I prefer to prepare my version[1] >> for upstreaming, which can build all actively maintained drivers >> including Gallium ones. It would also be really great you can help, >> and suppose the list is fine with yet another build system for Mesa. >> >> [1] http://cgit.freedesktop.org/~olv/mesa/log/?h=android-gingerbread-7.11 > > You have done a lot of work on the Mesa port, and I want to acknowledge your > expertise there. Please don't interpret my submission of this series as a > dismissal of that work. My intent in submitting my own patches was just to > start > the process of getting Android support upstream, incrementally, in a public, > code-reviewed forum. > > Other drivers, of course, should also be supported. I do not want to place any > obstacle in way of that goal. At each step of the review process, we should > check with each other that the approach taken is compatible with both Gallium > and non-Gallium drivers. We will be basically doing everything from scratch, in smaller steps. In that case, I see no reason not to do this based on what is already there. I did plan to upstream my changes. So cleaning it up should not be a nightmare.
Are there missing commits in your branch? I tried to build it, but it is almost no-op because sources are listed in the unused LOCAL_C_SOURCES instead of LOCAL_SRC_FILES. > My work won't stop once i965 support is completed. I will continue to maintain > Android i965 for the forseeable future. I expect that we will be collaborating > on this for a long time. > > -- > Chad Versace > c...@chad-versace.us > > -- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev