Ian Romanick wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Chia-I Wu wrote: > >> This RFC patch series tries to bring OpenGL ES support to master. It is >> based on the work of opengl-es branch. The patch series is too large to >> send to the list. It is available here > > I'll try to look at these patches soon, especially the changes to the > Python. In the meantime, I have a couple questions / comments below.
I haven't had time to review the patches either. I'll be off for the next four days too. >> http://0xlab.org/~olv/mesa-es-rfc/ >> >> Or, gzipped, here >> >> http://0xlab.org/~olv/mesa-es-rfc.tar.gz >> >> It applies to master directly. Of all the patches, the important ones >> are patch 0004 ~ 0007. Most of the rests are taken from the opengl-es >> branch. I will give a summary of the important ones. To test out, one >> needs to >> >> $ cd $(TOP)/src/mesa/es >> $ make >> $ cd $(TOP)/src/gallium/state_trackers/es >> $ make >> >> There are some demos under progs. It needs libEGL and egl_softpipe to >> run. >> >> Patch 0004 makes the the generated glapi headers be included with a >> prefix. That is, >> >> #include "glapitable.h" >> >> becomes >> >> #include "glapi/glapitable.h" >> >> This is so that the real headers included can be changed by supplying >> suitable -I. >> >> 0005 adds -c option to some of the python scripts. When activated, it >> generates headers that is suitable for use with OpenGL ES overlay. Take >> ActiveTexture for example. In OpenGL, it is called ActiveTextureARB, >> and ActiveTexture is an alias. Mesa calls this function by >> CALL_ActiveTextureARB. And there is no CALL_ActiveTexture because it is >> an alias. >> >> However, in OpenGL ES, it is called ActiveTexture. To remedy this, >> ActiveTextureARB is added as an alias to ActiveTexture. When -c is >> given, gl_table.py would generate both CALL_ActiveTexture and >> CALL_ActiveTextureARB. > > Eric and I were just talking about this the other day. I think it might > be better to just switch core Mesa to the "core" names. There are a lot > of extensions that have been incorporated into the core that are still > accessed within Mesa using the ARB or EXT names. I'm OK with removing the ARB/EXT suffixes where we can, but we have to be careful. For example, glVertexPointer() and glVertexPointerEXT() take a different number of parameters. glBindVertexArray() and glBindVertexArrayAPPLE() have different semantics. There are other cases of differences between the ARB/EXT/core variations of functions. >> 0006 adds the OpenGL ES XMLs. There are two scripts to help verify the >> correctness. gl_parse_header.py parses es gl.h or gl2.h from khronos >> and outputs the contents in XML form. gl_compare.py takes two XMLs and >> output their union/intersection/difference in XML form. I use them to >> compare the differences between, say, es1_API.xml with a generated es1 >> xml. >> >> 0007 adds the OpenGL ES overlay to src/mesa/es/. It is largely based on >> the work of opengl-es branch. It builds, with different sets of glapi >> headers, >> >> * libes1.a and libes2.a, from a subset of $(MESA_SOURCES) >> * libes1gallium.a and libes2gallium.a, from a subset of >> $(MESA_GALLIUM_SOURCES) >> * libes1api.a and libes2api.a, from a subset of $(GLAPI_SOURCES) >> >> They serve the same purpose as libmesa.a, libmesagallium.a, and >> libglapi.a do for OpenGL. The last patch is an example how the static >> libraries can be used to build libGLESv1_CM.so and libGLESv2.so. >> libes1.a and libes2.a are not used yet. I will work on getting the DRI >> drivers to build against them. It will then be possible to provide >> accelerated OpenGL ES. >> >> To fill the gap between OpenGL ES and OpenGL, all gl functions are >> dispatched to es functions first >> >> glColor4x ----> _es_Color4x ----> _vbo_Color4f > > This sounds like the right approach. That's for libGLES, not regular libGL, right? I wouldn't want to introduce more API function call overhead for libGL. >> The dispatch is done through glapi. _es_Color4x is generated from >> APIspec.txt and es_generator.py, modified from opengl-es branch. It is >> a passthrough function that converts GLfixed to GLfloat, and passes the >> converted values to _vbo_Color4f. > > How are arrays of GL_FIXED handled? Can this implementation easily be > extended to handle GL_HALF_FLOAT? Core Mesa has support for GL_FIXED arrays. See "FEATURE_fixedpt" -Brian ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev