[Mesa-dev] [PATCH 09/12] egl: Adding Haiku configs, not stable yet

kallisti5 kallisti5 at ssl.unixzen.com
Mon Dec 22 07:32:03 PST 2014


On 2014-12-22 09:24, Emil Velikov wrote:
> On 22/12/14 14:36, Alexander von Gluck IV wrote:
>> From: Adrián Arroyo Calle <adrian.arroyocalle at gmail.com>
>> 
>> ---
>>  src/egl/drivers/dri2/egl_dri2.c         |    7 ++
>>  src/egl/drivers/dri2/platform_haiku.cpp |  172 
>> +++++++++++++++++++++++++------
>>  src/egl/main/SConscript                 |   14 ++-
>>  src/egl/main/egldisplay.c               |    4 +
>>  4 files changed, 160 insertions(+), 37 deletions(-)
>> 
>> diff --git a/src/egl/drivers/dri2/egl_dri2.c 
>> b/src/egl/drivers/dri2/egl_dri2.c
>> index 062fb54..5bda4fd 100644
>> --- a/src/egl/drivers/dri2/egl_dri2.c
>> +++ b/src/egl/drivers/dri2/egl_dri2.c
>> @@ -398,9 +398,16 @@ dri2_open_driver(_EGLDisplay *disp)
>>  	       "%.*s/tls/%s_dri.so", len, p, dri2_dpy->driver_name);
>>        dri2_dpy->driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
>>  #endif
>> +
>> +
>>        if (dri2_dpy->driver == NULL) {
>> +#ifndef HAVE_HAIKU_PLATFORM
>>  	 snprintf(path, sizeof path,
>>  		  "%.*s/%s_dri.so", len, p, dri2_dpy->driver_name);
>> +#else
>> +	 snprintf(path, sizeof path,
>> +		  "lib%s.so",len,p,dri2_dpy->driver_name);
>> +#endif
> Imho Haiku's way of "reinventing" the DRI model/modules is rather
> unfortunate, and it would be nice if it can just follow suite. Unless 
> of
> course there is some real (technical) reasons which prohibits it from
> going otherwise.

A few reasons:

   * libpciaccess needs ported to Haiku to use dri2 or wrapper code needs 
created.
   * our video card driver model is substantially different from Linux 
splitting
     apart the card driver from the card functions.  The driver only 
enables
     multiple accelerants to connect to the card device 
(/dev/graphics/radeonhd_0_0)
     at once.  The driver sets up memory areas and passes these areas to 
each
     accelerant.  It could be done but it would require someone with deep 
understanding
     of dri2 and Haiku's graphics card stack.
   * Our OpenGL subsystem works using the Mesa GL Dispatch code adding 
additional complexity.
     http://cgit.freedesktop.org/mesa/mesa/tree/src/hgl/GLDispatcher.cpp


And the biggest reason:
   * I don't have a ton of free time anymore due to a baby :-)

If someone smarter than me could figure out how to do dri2 in a way that 
makes sense
we would likely jump on it to help reduce upkeep for Mesa (and us)

   -- Alex



More information about the mesa-dev mailing list