[Mesa-dev] EGL on Windows

Kristian Høgsberg krh at bitplanet.net
Tue Jun 1 05:59:48 PDT 2010


On Sun, May 30, 2010 at 10:54 AM, José Fonseca <jfonseca at vmware.com> wrote:
> On Sun, 2010-05-30 at 05:55 -0700, Jakob Bornecrantz wrote:
>> On Sat, May 29, 2010 at 9:49 AM, Chia-I Wu <olvaffe at gmail.com> wrote:
>> > On Sat, May 29, 2010 at 1:19 AM, Jakob Bornecrantz <wallbraker at gmail.com> wrote:
>> >> On Fri, May 28, 2010 at 8:46 AM, Chia-I Wu <olvaffe at gmail.com> wrote:
>> >>> I've got access to a Windows machine recently, and I've spent some time today
>> >>> to add GDI backend to st/egl.  The code can be found at
>> >>>  http://cgit.freedesktop.org/~olv/mesa/log/?h=egl-gdi
>> >> Cool stuff! Nice work.
>> > Thanks.
>> >>>
>> >>> The command options I use to build the DLLs are
>> >>>
>> >>>  $ scons statetrackers=egl drivers=softpipe
>> >> You can also crosscompile easily from Linux if you have
>> >> mingw32/mingw-w64 packages installed with scons.
>> > The last time I tried, the cross-compiled DLLs didn't load when I
>> > tried them on a Windows box.  No idea how to investigate that :(
>> >>> The DLLs are able to run the "tiger" demo from the OpenVG reference
>> >>> implementation (after fixing a bug in the demo) on Windows.
>> >>>
>> >>> I will clean up the branch as I find the time.  It is mostly SConscript work.
>> >>> The GDI backend itself is only slightly over 500 lines of code.
>> >> I would recommend breaking out the fixes from the SConscript commits.
>> >> Most of the fixes can probably be brought in directly. Especially the
>> >> "st/vega: Use FREE" commit.
>> > Sure.  I will do that.
>> >
>> > About the portability issues.  I have to do the following
>> >
>> > In EGL core,
>> >  #define snprintf _snprintf
>> >  #define strcasecmp _stricmp
>> >
>> > In st/vega,
>> >  #define isnan _isnanf
>> >  #define isfinite _finitef
>> >
>> > Everywhere,
>> >  #define PUBLIC __declspec(dllexport)
>> >
>> > Suggestions?
>>
>> Hey, for the st/vega stuff that should just be a matter of creating
>> util_* functions and stuffing them somewhere inside aux/util/.
>>
>> For the other two I think that José and Kristian where talking about
>> moving the aux/os stuff from gallium and into src/os so that it could
>> be shared between mesa/gallium/egl. Should that be done I think the
>> remaining two would fit into there.
>>
>> José, Kristian still plans for this?
>
> Plans yes. Time not so much..

Same here :)

>> Is this somebody with to much
>> time on their hands can take care of?
>
> Sure. It's essentially a janitorial task that anybody minimally familiar
> with the code can undertake. My plan was to:
>  - create a new mesa/src/cgrt subtree (where cgrt stands for common
> graphics runtime) which creates a libcgrt.a that will be used by all
> mesa/gallium drivers and utilities
>  - migrate/fork src/gallium/include/pipe/p_config.h and p_compiler.h
> into cgrt
>  - start migrating src/gallium/auxiliary/os -> src/cgrt/os
>  - migrate the gallium-independent debugging tools from
> src/gallium/auxiliary/util into src/cgrt/debug
>  - migrate the gallium-independent abstract data types  from
> src/gallium/auxiliary/util into src/cgrt/adt
>  - etc

Sounds like a fine plan.

Kristian


More information about the mesa-dev mailing list