mesa.git
16 years agogallium: fix trim() function bug when count < first
Brian Paul [Fri, 4 Jul 2008 15:59:43 +0000 (09:59 -0600)]
gallium: fix trim() function bug when count < first

If the user called glDrawArrays(GL_TRIANGLES, count=1), trim() returned a
very large integer because of the unsigned arithmetic.

16 years agomesa: generate GL_INVALID_OPERATION in _mesa_get_uniform_location() if program isn...
Brian Paul [Fri, 4 Jul 2008 15:58:14 +0000 (09:58 -0600)]
mesa: generate GL_INVALID_OPERATION in _mesa_get_uniform_location() if program isn't linked

16 years agomesa: move assertion
Brian Paul [Fri, 4 Jul 2008 15:56:08 +0000 (09:56 -0600)]
mesa: move assertion

16 years agopsb: Fill all texture fields when creating texture blanket.
José Fonseca [Fri, 4 Jul 2008 15:56:36 +0000 (00:56 +0900)]
psb: Fill all texture fields when creating texture blanket.

16 years agosoftpipe: Implement texture blankets.
José Fonseca [Fri, 4 Jul 2008 15:55:18 +0000 (00:55 +0900)]
softpipe: Implement texture blankets.

16 years agoscons: Enable gcc SSE2 intrinsics on x86.
José Fonseca [Fri, 4 Jul 2008 13:27:50 +0000 (22:27 +0900)]
scons: Enable gcc SSE2 intrinsics on x86.

16 years agomesa: added _vbo_VertexAttrib4f()
Brian Paul [Thu, 3 Jul 2008 22:59:24 +0000 (16:59 -0600)]
mesa: added _vbo_VertexAttrib4f()

16 years agomesa: fix incorrect array size, added assertion
Brian Paul [Thu, 3 Jul 2008 22:24:26 +0000 (16:24 -0600)]
mesa: fix incorrect array size, added assertion

16 years agomesa: fix array storage allocation bug
Brian Paul [Thu, 3 Jul 2008 22:23:18 +0000 (16:23 -0600)]
mesa: fix array storage allocation bug

16 years agomesa: regenerated file
Brian Paul [Thu, 3 Jul 2008 22:22:49 +0000 (16:22 -0600)]
mesa: regenerated file

16 years agomesa: additional vec4 constructor
Brian Paul [Thu, 3 Jul 2008 22:22:36 +0000 (16:22 -0600)]
mesa: additional vec4 constructor

16 years agomesa: fix various error codes
Brian Paul [Thu, 3 Jul 2008 22:21:15 +0000 (16:21 -0600)]
mesa: fix various error codes

16 years agomesa: fix some error codes in _mesa_ShaderSourceARB()
Brian Paul [Thu, 3 Jul 2008 22:02:13 +0000 (16:02 -0600)]
mesa: fix some error codes in _mesa_ShaderSourceARB()

16 years agomesa: fix problem freeing framebuffer/renderbuffer objects
Brian Paul [Thu, 3 Jul 2008 21:41:45 +0000 (15:41 -0600)]
mesa: fix problem freeing framebuffer/renderbuffer objects

Basically, set up no-op Delete() methods for the DummyFrame/Renderbuffer obj

16 years agogallium: added a4r4g4b4_put_tile_rgba()
Brian Paul [Thu, 3 Jul 2008 20:55:14 +0000 (14:55 -0600)]
gallium: added a4r4g4b4_put_tile_rgba()

16 years agomesa: added case for fixed pt
Brian Paul [Thu, 3 Jul 2008 20:12:27 +0000 (14:12 -0600)]
mesa: added case for fixed pt

16 years agogallium: increase TGSI interpreter's number of temp registers to 64
Brian Paul [Thu, 3 Jul 2008 18:56:33 +0000 (12:56 -0600)]
gallium: increase TGSI interpreter's number of temp registers to 64

Also, clean up the definitions of the misc/extra temp regs.
A few new assertions too.

16 years agogallium: move, increase ST_MAX_SHADER_TOKENS
Brian Paul [Thu, 3 Jul 2008 16:43:14 +0000 (10:43 -0600)]
gallium: move, increase ST_MAX_SHADER_TOKENS

16 years agogallium: increase TGSI_EXEC_MAX_COND_NESTING, etc
Brian Paul [Thu, 3 Jul 2008 16:42:31 +0000 (10:42 -0600)]
gallium: increase TGSI_EXEC_MAX_COND_NESTING, etc

16 years agogallium: fix surface memleak in bitmap code
Brian Paul [Thu, 3 Jul 2008 16:12:00 +0000 (10:12 -0600)]
gallium: fix surface memleak in bitmap code

Found w/ tunnel2.c demo.

16 years agopipebuffer: Silent warnings.
José Fonseca [Thu, 3 Jul 2008 12:28:56 +0000 (21:28 +0900)]
pipebuffer: Silent warnings.

Although rarely hit in normal apps, they are too noisy with test suites.

16 years agoSupport conversion of YUV surfaces.
José Fonseca [Thu, 3 Jul 2008 10:55:14 +0000 (19:55 +0900)]
Support conversion of YUV surfaces.

16 years agogallium: Don't forget to get overllaping blits working again.
José Fonseca [Thu, 3 Jul 2008 10:52:05 +0000 (19:52 +0900)]
gallium: Don't forget to get overllaping blits working again.

16 years agoi915: EGL almost works again
Jakob Bornecrantz [Thu, 3 Jul 2008 10:12:25 +0000 (12:12 +0200)]
i915: EGL almost works again

16 years agoegl: Fix demodriver
Jakob Bornecrantz [Thu, 3 Jul 2008 10:10:36 +0000 (12:10 +0200)]
egl: Fix demodriver

16 years agogallium: Use surface_copy for 1:1 blits.
José Fonseca [Thu, 3 Jul 2008 06:02:56 +0000 (15:02 +0900)]
gallium: Use surface_copy for 1:1 blits.

16 years agoscons: Add a env.CodeGenerate method to simplify code generation via python scripts.
José Fonseca [Thu, 3 Jul 2008 03:42:23 +0000 (12:42 +0900)]
scons: Add a env.CodeGenerate method to simplify code generation via python scripts.

env.CodeGenerate(
target = 'my_source.c',
script = 'my_generator.py',
source = ['input.txt', 'another.txt'],
command = 'python $SCRIPT $SOURCE > $TARGET'
)

It will take care generating all appropriate dependencies, including any
module imported by the generator script, and the respective .pyc file
side effects.

16 years agomesa: fix vertex array validation test for attribute 0 (vert pos)
Brian Paul [Thu, 3 Jul 2008 01:18:10 +0000 (19:18 -0600)]
mesa: fix vertex array validation test for attribute 0 (vert pos)

We don't actually need vertex array[0] enabled when using a vertex
program/shader.

cherry-picked from master

16 years agogallium: replace an assertion with "if (!texobj) continue"
Brian Paul [Thu, 3 Jul 2008 01:11:49 +0000 (19:11 -0600)]
gallium: replace an assertion with "if (!texobj) continue"

It's possible to call update_samplers() between the time a fragment shader
is bound and when a texture image is defined (such as glClear).  This
fixes the case where we don't have a complete texture object yet.

16 years agogallium: fix a bug in vertex program output mapping
Brian Paul [Thu, 3 Jul 2008 01:07:11 +0000 (19:07 -0600)]
gallium: fix a bug in vertex program output mapping

Need to translate VERT_RESULT_PSIZ, BFC0, BFC1 to TGSI shader output slots
after all other attributes have been handled.  This fixes a bug where
generic vertex program outputs (varying vars) could get mapped to the
same slot at point size or back-face colors.

16 years agogallium: nr_attrs was off by one, updated comments, minor code movement
Brian Paul [Thu, 3 Jul 2008 01:05:18 +0000 (19:05 -0600)]
gallium: nr_attrs was off by one, updated comments, minor code movement

16 years agomesa: additional GLSL built-in constants
Brian Paul [Wed, 2 Jul 2008 23:10:42 +0000 (17:10 -0600)]
mesa: additional GLSL built-in constants

16 years agomesa: when linking a shader program, make sure all the shaders compiled OK
Brian Paul [Wed, 2 Jul 2008 23:08:47 +0000 (17:08 -0600)]
mesa: when linking a shader program, make sure all the shaders compiled OK

cherry-picked from master

16 years agomesa: added some debug code (disabled)
Brian Paul [Wed, 2 Jul 2008 23:08:28 +0000 (17:08 -0600)]
mesa: added some debug code (disabled)

cherry-picked from master

16 years agomesa: fix error codes in _mesa_shader_source(), _mesa_get_shader_source()
Brian Paul [Wed, 2 Jul 2008 23:08:09 +0000 (17:08 -0600)]
mesa: fix error codes in _mesa_shader_source(), _mesa_get_shader_source()

If the 'shader' parameter is wrong, need to either generate GL_INVALID_VALUE
or GL_INVALID_OPERATION.  It depends on whether 'shader' actually names a
'program' or is a totally unknown ID.
There might be other cases to fix...

cherry-picked from master

16 years agomesa: regenerated file
Brian Paul [Wed, 2 Jul 2008 23:06:26 +0000 (17:06 -0600)]
mesa: regenerated file

16 years agomesa: added some missing equal() notEqual() intrinsics
Brian Paul [Wed, 2 Jul 2008 23:05:56 +0000 (17:05 -0600)]
mesa: added some missing equal() notEqual() intrinsics

cherry-picked from master

16 years agomesa: disable some debug assertions
Brian Paul [Wed, 2 Jul 2008 18:47:18 +0000 (12:47 -0600)]
mesa: disable some debug assertions

We can sometimes fail these assertions because of how swizzled storage
works.  Will revisit someday.

16 years agomesa: regenerated files
Brian Paul [Wed, 2 Jul 2008 18:46:18 +0000 (12:46 -0600)]
mesa: regenerated files

16 years agomesa: fix all(bvec2) function typo, add missing bvec2/3/4() constuctors
Brian Paul [Wed, 2 Jul 2008 18:45:55 +0000 (12:45 -0600)]
mesa: fix all(bvec2) function typo, add missing bvec2/3/4() constuctors

cherry-picked from master

16 years agogallium: replace 128 with MAX_LABELS
Brian Paul [Wed, 2 Jul 2008 18:41:18 +0000 (12:41 -0600)]
gallium: replace 128 with MAX_LABELS

16 years agomesa: added _mesa_print_swizzle() debugging helper
Brian Paul [Wed, 2 Jul 2008 18:40:03 +0000 (12:40 -0600)]
mesa: added _mesa_print_swizzle() debugging helper

16 years agomesa: fix issues around multisample enable
Roland Scheidegger [Wed, 2 Jul 2008 18:08:27 +0000 (20:08 +0200)]
mesa: fix issues around multisample enable

multisample enable is enabled by default, however gl mandates multisample
rendering rules only apply if there's also a multisampled buffer.

16 years agogallium: Allow draw module to work on non-x86 platforms again.
Michel Dänzer [Wed, 2 Jul 2008 10:10:15 +0000 (12:10 +0200)]
gallium: Allow draw module to work on non-x86 platforms again.

16 years agopipebuffer: Debug buffer manager to detect buffer under- and overflows.
José Fonseca [Wed, 2 Jul 2008 03:24:19 +0000 (12:24 +0900)]
pipebuffer: Debug buffer manager to detect buffer under- and overflows.

It should detect both cpu and gpu buffer overflows.

16 years agopipebuffer: Verify usage flag consistency. Minor cleanups.
José Fonseca [Wed, 2 Jul 2008 03:22:51 +0000 (12:22 +0900)]
pipebuffer: Verify usage flag consistency. Minor cleanups.

16 years agomesa: fix a GLSL vector subscript/writemask bug
Brian Paul [Wed, 2 Jul 2008 00:40:23 +0000 (18:40 -0600)]
mesa: fix a GLSL vector subscript/writemask bug

This fixes a failure for cases like:
   vec4 v;
   v[1] *= 2.0;

The v[1] actually acts like a writemask, equivalent to v.y
The fix is a bit convoluted, but will do for now.

cherry-picked from master

16 years agomesa: move some functions
Brian Paul [Wed, 2 Jul 2008 00:39:46 +0000 (18:39 -0600)]
mesa: move some functions

cherry-picked from master

16 years agomesa: make _slang_swizzle_swizzle() non-private
Brian Paul [Wed, 2 Jul 2008 00:39:22 +0000 (18:39 -0600)]
mesa: make _slang_swizzle_swizzle() non-private

cherry-picked from master

16 years agomesa: better function inlining in the presence of 'return' statements
Brian Paul [Tue, 1 Jul 2008 17:48:57 +0000 (11:48 -0600)]
mesa: better function inlining in the presence of 'return' statements

Before, the presence of a 'return' statement always prevented inlining
a function.  This was because we didn't want to accidentally return from
the _calling_ function.  We still need the semantic of 'return' when inlining
but we can't always use unconditional branches/jumps (GPUs don't always
support arbitrary branching).

Now, we allow inlining functions w/ return if the return is the last
statement in the function.  This fixes the common case of a function
that returns a value, such as:

vec4 square(const in vec4 x)
{
   return x * x;
}

which effectively compiles into:

vec4 square(const in vec4 x)
{
   __retVal = x * x;
   return;
}

The 'return' can be no-op'd now and we can inline the function.

cherry-picked from master

16 years agomesa: add/fix some IrInfo entries for debugging purposes
Brian Paul [Tue, 1 Jul 2008 17:48:27 +0000 (11:48 -0600)]
mesa: add/fix some IrInfo entries for debugging purposes

cherry-picked from master

16 years agoi915: Last reference to surface -> pitch
Jakob Bornecrantz [Tue, 1 Jul 2008 13:52:37 +0000 (15:52 +0200)]
i915: Last reference to surface -> pitch

16 years agogallium: Use the inline keyword on C++.
José Fonseca [Tue, 1 Jul 2008 13:04:58 +0000 (22:04 +0900)]
gallium: Use the inline keyword on C++.

16 years agoscons: Output mapfile on windows ddk profile builds.
José Fonseca [Tue, 1 Jul 2008 13:04:01 +0000 (22:04 +0900)]
scons: Output mapfile on windows ddk profile builds.

16 years agogles: Don't define GLAPIENTRY here.
José Fonseca [Mon, 30 Jun 2008 03:49:14 +0000 (12:49 +0900)]
gles: Don't define GLAPIENTRY here.

16 years agomesa: added null ptr checks
Brian Paul [Sat, 28 Jun 2008 22:47:39 +0000 (16:47 -0600)]
mesa: added null ptr checks

16 years agos/GL_INVALID_VALUE/GL_INVALID_OPERATION/ in _mesa_get_uniformfv()
Brian Paul [Sat, 28 Jun 2008 22:47:22 +0000 (16:47 -0600)]
s/GL_INVALID_VALUE/GL_INVALID_OPERATION/ in _mesa_get_uniformfv()

16 years agomesa: check FEATURE_point_size_array
Brian Paul [Sat, 28 Jun 2008 22:15:03 +0000 (16:15 -0600)]
mesa: check FEATURE_point_size_array

16 years agoegl: set config's EGL_CONFORMANT, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE attributes
Brian Paul [Sat, 28 Jun 2008 22:04:01 +0000 (16:04 -0600)]
egl: set config's EGL_CONFORMANT, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE attributes

16 years agoegl: fix default value of EGL_SURFACE_TYPE, added some sanity check assertions
Brian Paul [Sat, 28 Jun 2008 22:03:28 +0000 (16:03 -0600)]
egl: fix default value of EGL_SURFACE_TYPE, added some sanity check assertions

16 years agoegl: WinCE doesn't have sys/types.h
José Fonseca [Sat, 28 Jun 2008 11:40:44 +0000 (20:40 +0900)]
egl: WinCE doesn't have sys/types.h

16 years agoegl: helps if the stride is right
Zack Rusin [Fri, 27 Jun 2008 20:47:22 +0000 (16:47 -0400)]
egl: helps if the stride is right

16 years agoeh, we need a buildbot... fix the compilation
Zack Rusin [Fri, 27 Jun 2008 19:56:09 +0000 (15:56 -0400)]
eh, we need a buildbot... fix the compilation

16 years agogallium: handle msaa
Roland Scheidegger [Fri, 27 Jun 2008 14:02:43 +0000 (16:02 +0200)]
gallium: handle msaa

16 years agoegl: These changes allow an eglBindAPI(EGL_OPENGL_ES_API) to succeed, and to work...
Robert Ellison [Thu, 26 Jun 2008 14:55:00 +0000 (08:55 -0600)]
egl: These changes allow an eglBindAPI(EGL_OPENGL_ES_API) to succeed, and to work correctly with GLES1 and GLES2.

- egl_xdri.c just sets the EGL_OPENGL_ES_BIT as well as the
  EGL_OPENGL_BIT in ClientAPIsMask

- eglconfig.c allows the renderable type to include EGL_OPENGL_ES2_BIT
  as well as EGL_OPENGL_ES_BIT.

- egl_xlib.c sets the EGL_NATIVE_RENDERABLE attribute to EGL_FALSE for
  all softpipe configurations.  (Otherwise, an eglChooseConfig() that
  looks for particular values of EGL_NATIVE_RENDERABLE will fail.)

16 years agoegl: Windows updates to the platform.h files
Jonathan White [Fri, 27 Jun 2008 13:13:30 +0000 (07:13 -0600)]
egl: Windows updates to the platform.h files

16 years agoi915: Fix the last of the stride/pitch changes
Jakob Bornecrantz [Fri, 27 Jun 2008 12:16:42 +0000 (14:16 +0200)]
i915: Fix the last of the stride/pitch changes

16 years agomesa: Replace void * arithmetic.
José Fonseca [Fri, 27 Jun 2008 11:56:49 +0000 (20:56 +0900)]
mesa: Replace void * arithmetic.

16 years agogdi: Update for cpp removal.
José Fonseca [Fri, 27 Jun 2008 11:56:29 +0000 (20:56 +0900)]
gdi: Update for cpp removal.

16 years agocell: Update for cpp removal.
José Fonseca [Fri, 27 Jun 2008 11:10:04 +0000 (20:10 +0900)]
cell: Update for cpp removal.

Not tested -- just mymic the softpipe changes.

16 years agogallium: Drop pipe_texture->cpp and pipe_surface->cpp.
José Fonseca [Fri, 27 Jun 2008 10:37:56 +0000 (19:37 +0900)]
gallium: Drop pipe_texture->cpp and pipe_surface->cpp.

The chars-per-pixel concept falls apart with compressed and yuv images,
where more than one pixel are coded in a single data block.

16 years agoscons: Get x86-64<->x86 cross build of assembly files right.
José Fonseca [Fri, 27 Jun 2008 04:41:23 +0000 (13:41 +0900)]
scons: Get x86-64<->x86 cross build of assembly files right.

16 years agoscons: Fix i965/xlib build.
José Fonseca [Fri, 27 Jun 2008 04:01:37 +0000 (13:01 +0900)]
scons: Fix i965/xlib build.

16 years agoscons: Fix typo.
José Fonseca [Fri, 27 Jun 2008 03:35:18 +0000 (12:35 +0900)]
scons: Fix typo.

16 years agomesa: Use the appropriate relocation.
José Fonseca [Fri, 27 Jun 2008 03:34:57 +0000 (12:34 +0900)]
mesa: Use the appropriate relocation.

I don't fully understand this, but this matches the assembly code gcc
generates glapi.c and fixes following error on x86-64 with assembly:

  relocation R_X86_64_PC32 against `_gl_DispatchTSD' can not be used when making a shared object

16 years agogallium: Describe pixel block.
José Fonseca [Thu, 26 Jun 2008 14:39:13 +0000 (23:39 +0900)]
gallium: Describe pixel block.

Chars-per-pixel paradigm is not enough to represent compressed and yuv
pixel formats.

16 years agomesa: point size arrays
Brian Paul [Wed, 25 Jun 2008 14:45:14 +0000 (08:45 -0600)]
mesa: point size arrays

16 years agogallium: remove some old dispatch code
Brian Paul [Tue, 24 Jun 2008 14:47:15 +0000 (08:47 -0600)]
gallium: remove some old dispatch code

16 years agogallium: remove bad assertion
Brian Paul [Tue, 24 Jun 2008 14:45:59 +0000 (08:45 -0600)]
gallium: remove bad assertion

16 years agogallium: Fix whole source being used in u_blit
Jakob Bornecrantz [Tue, 24 Jun 2008 14:06:59 +0000 (16:06 +0200)]
gallium: Fix whole source being used in u_blit

16 years agoFix CRLF line endings.
José Fonseca [Tue, 24 Jun 2008 13:26:19 +0000 (22:26 +0900)]
Fix CRLF line endings.

16 years agoAllow CRLF automatic conversion on MSVC project files.
José Fonseca [Tue, 24 Jun 2008 13:17:39 +0000 (22:17 +0900)]
Allow CRLF automatic conversion on MSVC project files.

MSVC doesn't really care, and it is frequently causing merge conflicts.

16 years agoi915: Create a texture and surface for shared frontbuffer
Jakob Bornecrantz [Tue, 24 Jun 2008 12:42:12 +0000 (14:42 +0200)]
i915: Create a texture and surface for shared frontbuffer

16 years agoi915: Added texture_blanket function
Jakob Bornecrantz [Tue, 24 Jun 2008 12:19:30 +0000 (14:19 +0200)]
i915: Added texture_blanket function

16 years agoi915: Moved screen creation to intel_be_device
Jakob Bornecrantz [Tue, 24 Jun 2008 11:09:43 +0000 (13:09 +0200)]
i915: Moved screen creation to intel_be_device

16 years agogallium: Fix warning in u_blit.h
Jakob Bornecrantz [Tue, 24 Jun 2008 11:00:42 +0000 (13:00 +0200)]
gallium: Fix warning in u_blit.h

16 years agoegl: Stdint was missing from eglconfigutil.h
Jakob Bornecrantz [Tue, 24 Jun 2008 12:30:38 +0000 (14:30 +0200)]
egl: Stdint was missing from eglconfigutil.h

16 years agomesa: Fix Windows GDI winsys build.
José Fonseca [Tue, 24 Jun 2008 11:44:47 +0000 (20:44 +0900)]
mesa: Fix Windows GDI winsys build.

16 years agogallium: Avoid double arithmetic.
José Fonseca [Tue, 24 Jun 2008 05:22:09 +0000 (14:22 +0900)]
gallium: Avoid double arithmetic.

16 years agomesa: Use standard integer types.
José Fonseca [Tue, 24 Jun 2008 05:18:07 +0000 (14:18 +0900)]
mesa: Use standard integer types.

Especially get rid of the non-portable long long.

16 years agomesa: Replace deprecated __MSC__ macro.
José Fonseca [Tue, 24 Jun 2008 05:02:24 +0000 (14:02 +0900)]
mesa: Replace deprecated __MSC__ macro.

16 years agodri/intel: Use standard integer types.
José Fonseca [Tue, 24 Jun 2008 05:00:10 +0000 (14:00 +0900)]
dri/intel: Use standard integer types.

16 years agogallium: Drop deprecated __MSC__ macro.
José Fonseca [Tue, 24 Jun 2008 04:56:41 +0000 (13:56 +0900)]
gallium: Drop deprecated __MSC__ macro.

16 years agoegl: Use standard integer types.
José Fonseca [Tue, 24 Jun 2008 04:55:38 +0000 (13:55 +0900)]
egl: Use standard integer types.

16 years agomesa/dri: User standard integer types.
José Fonseca [Tue, 24 Jun 2008 04:51:52 +0000 (13:51 +0900)]
mesa/dri: User standard integer types.

16 years agomesa: More signed/unsigned float/integer fixes.
José Fonseca [Tue, 24 Jun 2008 04:12:41 +0000 (13:12 +0900)]
mesa: More signed/unsigned float/integer fixes.

16 years agomesa: WGL is not part of the WinCE API.
José Fonseca [Tue, 24 Jun 2008 04:00:03 +0000 (13:00 +0900)]
mesa: WGL is not part of the WinCE API.

Although it would be interesting having the GDI winsys running on WinCE
several Windows GDI API functions and data structures are missing from
WinCE headers, making this far from a trivial endeavor.

16 years agogdi: Update for surface_alloc_storage changes.
José Fonseca [Tue, 24 Jun 2008 02:40:25 +0000 (11:40 +0900)]
gdi: Update for surface_alloc_storage changes.

16 years agomesa: Use appropriate unsigned/signed, float/integer types.
José Fonseca [Tue, 24 Jun 2008 02:34:46 +0000 (11:34 +0900)]
mesa: Use appropriate unsigned/signed, float/integer types.

16 years agomesa: Use _mesa_bsearch.
José Fonseca [Tue, 24 Jun 2008 02:33:03 +0000 (11:33 +0900)]
mesa: Use _mesa_bsearch.