This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Dri-devel] Re: OpenGL and the LinuxThreads pthread_descrstructure


   From: Jakub Jelinek <jakub@redhat.com>
   Date: Fri, 17 May 2002 07:58:37 -0400

   Well, if you do this, you should at least put this into an
   .section Gltext, "awx"
   so that it is not DT_TEXTREL.
   But I still wonder, how often will the target this jumps to change
   during lifetime of typical GL application if using GLX extensions.

Every time you record or play a copiled vertex array.

OpenGL provides a set of APIs where you are encapsulating "programs"
of OpenGL calls into a "CVA" (compiled vertex array) so what OpenGL
does when you start recording is:

	change_opengl_api_funcptrs_to_CVA_record();

So glVertex3f() gets diverted to __glVertex3F_RECORD_FOR_CVA()

Similar things happen when you ask OpenGL to play it back later.

Consider when the device can directly do the gl*() function call.
The GLAPI table gets directed to the device driver.  If you change
some graphics rendering attribute, the card may not be able to
do it directly in hardware without some SW help from MESA, and the
GLAPI function pointer changes again.

There are thousands upon thousands of ways the OpenGL state machine
can change and have the GLAPI functions pointers get updated, it
happens all the time.

Franks a lot,
David S. Miller
davem@redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]