summaryrefslogtreecommitdiffstats
path: root/src/glx/glxglvnd.c
Commit message (Collapse)AuthorAgeFilesLines
* glx/glvnd: Don't modify the dummy slot in the dispatch tableAdam Jackson2016-11-091-0/+3
| | | | | | | Cc: "13.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Adam Jackson <ajax@redhat.com> (cherry picked from commit deb0eb1660f612862c77d225582e102e7ab717ee)
* glx/glvnd: list the strcmp arguments in correct orderEmil Velikov2016-09-051-2/+2
| | | | | | | | | | | Currently, due to the inverse order, strcmp will produce negative result when the needle is towards the start of the haystack. Thus on the next iteration(s) we'll end up further towards the end and eventually fail to locate the entry. Cc: "12.0" <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
* Avoid overflow in 'last' variable of FindGLXFunction(...)Stefan Dirsch2016-07-201-3/+3
| | | | | | | | | | | | | | This 'last' variable used in FindGLXFunction(...) may become negative, but has been defined as unsigned int resulting in an overflow, finally resulting in a segfault when accessing _glXDispatchTableStrings[...]. Fixed this by definining it as signed int. 'first' variable also needs to be defined as signed int. Otherwise condition for while loop fails due to C implicitly converting signed to unsigned values before comparison. Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Stefan Dirsch <sndirsch@suse.de> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* glx/glvnd: rework dispatch functions/indices tables lookupEmil Velikov2016-05-301-11/+8
| | | | | | | | | | | Rather than checking if the function name maps to a valid entry in the respective table, just create a dummy entry at the end of each table. This allows us to remove some unnessesary "index >= 0" checks, which get executed quite often. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* glx/glvnd: Use strcmp() based binary search in FindGLXFunction()Emil Velikov2016-05-301-5/+14
| | | | | | | | | | It will allows us to find the function within 6 attempts, out of the ~80 entry long table. v2: calculate middle on each iteration, correctly set the lower limit. Reviewed-by: Adam Jackson <ajax@redhat.com> (v1) Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* glx: Implement the libglvnd interface.Kyle Brenneman2016-05-301-0/+75
With reference to the libglvnd branch: https://cgit.freedesktop.org/mesa/mesa/log/?h=libglvnd This is a squashed commit containing all of Kyle's commits, all but two of Emil's commits (to follow), and a small fixup from myself to mark the rest of the glX* functions as _GLX_PUBLIC so they are not exported when building for libglvnd. I (ajax) squashed them together both for ease of review, and because most of the changes are un-useful intermediate states representing the evolution of glvnd's internal API. Co-author: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Adam Jackson <ajax@redhat.com>