Brian Paul [Tue, 2 Nov 2010 17:49:10 +0000 (11:49 -0600)]
llvmpipe: assign context's frag shader pointer before using it
The call to draw_bind_fragment_shader() was using the old fragment
shader. This bug would have really only effected the draw module's
use of the fragment shader in the wide point stage.
Chad Versace [Mon, 1 Nov 2010 21:23:53 +0000 (14:23 -0700)]
mesa: Fix C++ includes in sampler.cpp
Some C++ header files were included in an extern "C" block. When building with
Clang, this caused the build to fail due to namespace errors. (GCC did not
report any errors.)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Keith Whitwell [Tue, 2 Nov 2010 16:29:10 +0000 (16:29 +0000)]
st/mesa: unbind constant buffer when not in use
Important as more constant buffers per shader start to get used.
Fix up r600 (tested) and nv50 (untested) to cope with this. Drivers
previously didn't see unbinds of constant buffers often or ever, so
this isn't always dealt with cleanly.
For r600 just return and keep the reference. Will try to do better in
a followup change.
Keith Whitwell [Tue, 2 Nov 2010 12:05:46 +0000 (12:05 +0000)]
llvmpipe: guard against NULL task->query pointer
This doesn't seem like it should be possible, but some test suites
manage to hit this case. Avoid crashing release builds under those
circumstances.
Keith Whitwell [Tue, 2 Nov 2010 14:20:20 +0000 (14:20 +0000)]
llvmpipe: avoid generating tri_16 for tris which extend past tile bounds
Don't trim triangle bounding box to scissor/draw-region until after
the logic for emitting tri_16. Don't generate tri_16 commands for
triangles with untrimmed bounding boxes outside the current tile.
This is important as the tri-16 itself can extend past tile bounds and
we don't want to add code to it to check against tile bounds (slow) or
restrict it to locations within a tile (pessimistic).
Brian Paul [Tue, 2 Nov 2010 15:56:04 +0000 (09:56 -0600)]
mesa: fix aux/accum comment and error message mixups
Brian Paul [Tue, 2 Nov 2010 15:40:55 +0000 (09:40 -0600)]
mesa: remove always-false conditional in check_compatible()
The two gl_config pointers can never be equal.
Brian Paul [Tue, 2 Nov 2010 15:30:47 +0000 (09:30 -0600)]
dri/util: add a bunch of comments
Brian Paul [Tue, 2 Nov 2010 15:05:16 +0000 (09:05 -0600)]
mesa: move the gl_config struct declaration
It was in the middle of the lighting-related structures before.
Also add some info about field sizes in this structure.
Brian Paul [Tue, 2 Nov 2010 14:22:40 +0000 (08:22 -0600)]
mesa: use GLubyte for edge flag arrays
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31310
José Fonseca [Tue, 2 Nov 2010 14:20:12 +0000 (14:20 +0000)]
scons: Propagate installation targets.
Fixes libgl-xlib target.
José Fonseca [Tue, 2 Nov 2010 13:49:35 +0000 (13:49 +0000)]
scons: i915 can't build on MSVC either.
I thought I had singled it out before, but apparently not.
José Fonseca [Tue, 2 Nov 2010 12:35:23 +0000 (12:35 +0000)]
scons: Add aliases for several pipe drivers.
José Fonseca [Tue, 2 Nov 2010 12:34:52 +0000 (12:34 +0000)]
r600g: List recently added files in SConscript.
Zhenyu Wang [Tue, 2 Nov 2010 03:08:58 +0000 (11:08 +0800)]
i965: refresh wm push constant also for BRW_NEW_FRAMENT_PROGRAM on gen6
Fix compiz crash.
https://bugs.freedesktop.org/show_bug.cgi?id=31124
Chia-I Wu [Tue, 26 Oct 2010 03:31:37 +0000 (11:31 +0800)]
mesa: Allow contexts of different APIs to coexist.
This effectively redoes
1741ddb747ca0be284315adb4b6fe67ddf292d03 in a
way that allows contexts of different APIs to coexist.
First, the changes to the remap table are reverted. The remap table
(driDispatchRemapTable) is always initialized in the same way regardless
of the context API.
es_generator.py is updated to use a local remap table, whose sole
purpose is to help initialize its dispatch table. The local remap table
and the global one are always different, as they use different
glapidispatch.h. But the dispatch tables initialized by both remap
tables are always compatible with glapi (libGL.so).
Finally, the semantics of one_time_init are changed to per-api one-time
initialization.
Chia-I Wu [Tue, 26 Oct 2010 08:16:14 +0000 (16:16 +0800)]
mesa: Select FEATURE_remap_table when multiple APIs are enabled.
Core mesa should query glapi for the positions of the functions in
_glapi_table when multiple APIs are supported. It does not know which
glapitable.h glapi used.
Tom Stellard [Tue, 2 Nov 2010 05:06:20 +0000 (22:06 -0700)]
r300/compiler: Don't track readers into an IF block.
This makes rc_get_readers_normal() more conservative than it needs to be,
but it fixes some incorrect behavior in the optimization passes.
Chia-I Wu [Mon, 1 Nov 2010 17:23:13 +0000 (01:23 +0800)]
egl: Rework _eglGetSearchPath.
So that the directory part of EGL_DRIVER, if exists, is prepended to the
search path. This commit also adds a sanity check to _eglLog.
José Fonseca [Mon, 1 Nov 2010 15:27:34 +0000 (15:27 +0000)]
scons: Disable python state tracker when swig is not present.
José Fonseca [Mon, 1 Nov 2010 14:37:18 +0000 (14:37 +0000)]
scons: Restore x11 tool behavior for backwards compatability.
José Fonseca [Mon, 1 Nov 2010 14:24:08 +0000 (14:24 +0000)]
scons: Some pipe drivers are not portable for MSVC
José Fonseca [Mon, 1 Nov 2010 13:56:16 +0000 (13:56 +0000)]
scons: Fix MinGW cross-compilation.
José Fonseca [Mon, 1 Nov 2010 13:30:22 +0000 (13:30 +0000)]
scons: Revamp how to specify targets to build.
Use scons target and dependency system instead of ad-hoc options.
Now is simply a matter of naming what to build. For example:
scons libgl-xlib
scons libgl-gdi
scons graw-progs
scons llvmpipe
and so on. And there is also the possibility of scepcified subdirs, e.g.
scons src/gallium/drivers
If nothing is specified then everything will be build.
There might be some rough corners over the next days. Please bare with me.
Francisco Jerez [Sun, 31 Oct 2010 21:05:16 +0000 (22:05 +0100)]
dri/nouveau: Re-emit the BO state when coming back from a software fallback.
Francisco Jerez [Sun, 31 Oct 2010 21:07:26 +0000 (22:07 +0100)]
dri/nouveau: Validate the framebuffer state on read buffer changes.
Francisco Jerez [Sun, 31 Oct 2010 18:00:31 +0000 (19:00 +0100)]
dri/nouveau: Fix type promotion issue on 32bit platforms.
Fixes some VTX protection errors introduced by
e89af209261.
Benjamin Franzke [Sun, 31 Oct 2010 15:01:52 +0000 (16:01 +0100)]
st/egl image: multiply drm buf-stride with blocksize
[olv: formatted for 80-column wrapping]
Chia-I Wu [Sun, 31 Oct 2010 13:14:20 +0000 (21:14 +0800)]
targets/egl: Fix a warning with --disable-opengl build.
API_DEFINES is the defines for libmesagallium.a. Append it to
egl_CPPFLAGS only when st_GL.so, which uses libmesagallium.a, is built.
Chia-I Wu [Sun, 31 Oct 2010 13:01:54 +0000 (21:01 +0800)]
autoconf: Tidy configure output for EGL.
Prefix EGL driver names by "egl_". Make it clear that EGL_CLIENT_APIS
is only used by egl_gallium.
Tom Stellard [Fri, 29 Oct 2010 22:59:43 +0000 (15:59 -0700)]
r300/compiler: Don't clobber presubtract sources during optimizations
https://bugs.freedesktop.org/show_bug.cgi?id=28294
Francisco Jerez [Fri, 29 Oct 2010 16:16:08 +0000 (18:16 +0200)]
dri/nouveau: Pipeline glTexSubImage texture transfers.
Francisco Jerez [Sat, 30 Oct 2010 23:37:47 +0000 (01:37 +0200)]
dri/nouveau: Keep small DYNAMIC_DRAW vertex buffers in system ram.
Francisco Jerez [Fri, 29 Oct 2010 19:36:42 +0000 (21:36 +0200)]
dri/nouveau: Optimize VBO binding re-emission.
Francisco Jerez [Fri, 29 Oct 2010 20:31:34 +0000 (22:31 +0200)]
dri/nouveau: Split out array handling to its own file.
Francisco Jerez [Fri, 29 Oct 2010 19:29:15 +0000 (21:29 +0200)]
dri/nouveau: Use a macro to iterate over the bound vertex attributes.
Francisco Jerez [Fri, 29 Oct 2010 19:14:49 +0000 (21:14 +0200)]
dri/nouveau: Avoid recursion in nouveau_bo_context_reset().
Francisco Jerez [Fri, 29 Oct 2010 19:56:50 +0000 (21:56 +0200)]
dri/nouveau: Split out the scratch helpers to a separate file.
Francisco Jerez [Fri, 29 Oct 2010 19:12:01 +0000 (21:12 +0200)]
dri/nouveau: Tell the vbo module we want real hardware BOs.
Francisco Jerez [Sat, 30 Oct 2010 23:30:55 +0000 (01:30 +0200)]
dri/nouveau: Honor the access flags in nouveau_bufferobj_map_range.
Francisco Jerez [Mon, 25 Oct 2010 19:35:54 +0000 (21:35 +0200)]
dri/nouveau: Call _mesa_update_state() after framebuffer invalidation.
Previously nouveau_state_emit() was being called directly, sometimes
that doesn't work because it doesn't update the derived GL context.
Francisco Jerez [Fri, 29 Oct 2010 19:53:56 +0000 (21:53 +0200)]
dri/nv25: Bind a hierarchical depth buffer.
Francisco Jerez [Fri, 29 Oct 2010 19:44:54 +0000 (21:44 +0200)]
dri/nouveau: Don't assert(0) on compressed internal formats.
Francisco Jerez [Sat, 23 Oct 2010 01:01:06 +0000 (03:01 +0200)]
dri/nv20: Clear with the 3D engine.
Chia-I Wu [Sat, 30 Oct 2010 17:13:27 +0000 (01:13 +0800)]
st/mesa: Unreference the sampler view in st_bind_surface.
Without this, update_textures may not pick up the new pipe_resource.
It is actually update_textures that should check
stObj->sampler_view->texture != stObj->pt, but let's follow st_TexImage
and others for now.
Brian Paul [Sat, 30 Oct 2010 16:10:52 +0000 (10:10 -0600)]
osmesa: fix renderbuffer memleak in OSMesaMakeCurrent()
Fixes fd.o bug 31128.
Chia-I Wu [Sat, 30 Oct 2010 06:26:01 +0000 (14:26 +0800)]
autoconf: st/vega requires --enable-openvg.
Make it a warning for now to smooth the transition.
Kenneth Graunke [Fri, 29 Oct 2010 18:42:22 +0000 (11:42 -0700)]
glsl: Remove unused ARRAY_SIZE macro.
It's also equivalent to Elements(...) which is already used elsewhere.
Eric Anholt [Fri, 29 Oct 2010 18:28:38 +0000 (11:28 -0700)]
mesa: Make metaops use program refcounts instead of names.
Fixes failure on restoring state when the program was active but
deleted, and the name no longer exists.
Bug #31194
Brian Paul [Fri, 29 Oct 2010 14:13:31 +0000 (08:13 -0600)]
mesa: remove dead code
José Fonseca [Fri, 29 Oct 2010 12:05:31 +0000 (13:05 +0100)]
mesa: Fix windows build (uint -> GLuint).
Chia-I Wu [Fri, 29 Oct 2010 04:59:45 +0000 (12:59 +0800)]
targets: Add missing quotes to Makefile.xorg.
Fix
$ make CC="ccache gcc"
Chia-I Wu [Fri, 29 Oct 2010 04:45:04 +0000 (12:45 +0800)]
Merge branch 'glapi-reorg'
Conflicts:
src/mapi/glapi/glapi_sparc.S
src/mapi/glapi/glapi_x86.S
src/mapi/glapi/glapidispatch.h
src/mapi/glapi/glapioffsets.h
src/mapi/glapi/glprocs.h
Chia-I Wu [Fri, 29 Oct 2010 04:34:44 +0000 (12:34 +0800)]
autoconf: Update configuration info.
Output API info first. Move GLU/GLw/GLUT and EGL near driver info.
Chia-I Wu [Thu, 28 Oct 2010 09:25:07 +0000 (17:25 +0800)]
docs: Update egl and openvg docs.
Chia-I Wu [Wed, 27 Oct 2010 08:14:27 +0000 (16:14 +0800)]
autoconf: Better client API selection.
Make autoconf decide the client APIs enabled first. Then when OpenGL
and OpenGL ES are disabled, there is no need to build src/mesa/; when
OpenGL is disabled, no $mesa_driver should be built. Finally, add
--enable-openvg to enable OpenVG.
With these changes, an OpenVG only build can be configured with
$ ./configure --disable-opengl --enable-openvg
src/mesa, src/glsl, and src/glx will be skipped, which saves a great
deal of compilation time.
And an OpenGL ES only build can be configured with
$ ./configure --disable-opengl --enable-gles-overlay
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: pixel transfer ops do not apply to integer-valued textures
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: additional integer formats in _mesa_bytes_per_pixel()
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: add const qualifier to _mesa_is_legal_format_and_type()
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: fix integer cases in _mesa_is_legal_format_and_type()
Some integer formats work with some packed datatypes.
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: fix incorrect type in _mesa_texstore_rgba_int16()
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: remove obsolete comment
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: add extension table entry for GL_EXT_gpu_shader4
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: clean-up array element code
Remove unnecessary GLAPIENTRY keywords, update comments, re-indent.
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: glArrayElement support for integer-valued arrays
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: state/queries for GL_MIN/MAX_PROGRAM_TEXEL_OFFSET_EXT
Brian Paul [Fri, 29 Oct 2010 03:17:42 +0000 (21:17 -0600)]
mesa: consolidate glVertex/Color/etcPointer() code
This removes a bunch of similar error checking code in all the vertex
pointer functions and puts nearly all the error checking in update_array().
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: add gl_client_array::Integer field and related vertex array state code
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: implement integer-valued vertex attribute functions
The integers still get converted to floats. That'll have to change someday.
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: add new GLvertexformat entries for integer-valued attributes
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: plug in more GL_EXT_gpu_shader4 functions
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: add glGetUniformuiv(), plug in uint glUniform funcs
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: plug in stubs for glBindFragDataLocation(), glGetFragDataLocation()
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
glapi: regenerated API files
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
glapi: include EXT_gpu_shader4.xml
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
glapi: xml spec file for GL_EXT_gpu_shader4
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
vbo: re-indent file
Brian Paul [Fri, 29 Oct 2010 03:17:41 +0000 (21:17 -0600)]
mesa: remove 'normalized' parameter from _mesa_VertexAttribIPointer()
Eric Anholt [Thu, 28 Oct 2010 23:09:41 +0000 (16:09 -0700)]
i965: Update the gen6 stencil ref state when stencil state changes.
Fixes 6 piglit tests about stencil operations.
Eric Anholt [Thu, 28 Oct 2010 22:30:09 +0000 (15:30 -0700)]
i965: Upload required gen6 VS push constants even when using pull constants.
Matches pre-gen6, and fixes glsl-vs-large-uniform-array.
Eric Anholt [Thu, 28 Oct 2010 22:23:23 +0000 (15:23 -0700)]
i965: Update gen6 SF state when point state (sprite or attenuation) changes.
Eric Anholt [Wed, 27 Oct 2010 18:00:14 +0000 (11:00 -0700)]
i965: Add user clip planes support to gen6.
Fixes piglit user-clip, and compiz desktop switching when dragging a
window and using just 2 desktops. Bug #30446.
José Fonseca [Mon, 18 Oct 2010 13:24:30 +0000 (06:24 -0700)]
gallivm: Remove the EMMS opcodes.
Unnecessary now that lp_set_target_options() successful disables MMX code
emission.
José Fonseca [Mon, 25 Oct 2010 17:42:03 +0000 (18:42 +0100)]
gallivm: always enable LLVMAddInstructionCombiningPass()
José Fonseca [Thu, 28 Oct 2010 16:38:18 +0000 (17:38 +0100)]
gallium: Avoid using __doc__ in python scripts.
Vinson Lee [Thu, 28 Oct 2010 13:08:19 +0000 (06:08 -0700)]
st/mesa: Silence uninitialized variable warning.
Fixes this GCC warning.
state_tracker/st_program.c: In function 'st_print_shaders':
state_tracker/st_program.c:735: warning: 'sh' may be used uninitialized in this function
Tom Stellard [Fri, 22 Oct 2010 01:55:12 +0000 (18:55 -0700)]
r300/compiler: Use rc_get_readers_normal() for presubtract optimizations
Kenneth Graunke [Tue, 19 Oct 2010 00:28:56 +0000 (17:28 -0700)]
i965: Add bit operation support to the fragment shader backend.
Eric Anholt [Mon, 25 Oct 2010 19:52:29 +0000 (12:52 -0700)]
i965: Make FS uniforms be the actual type of the uniform at upload time.
This fixes some insanity that would otherwise be required for GLSL
1.30 bit ops or gen6 integer uniform operations in general, at the
cost of upload-time pain. Given that we only have that pain because
mesa's mangling our integer uniforms to be floats, this something that
should be fixed outside of the shader codegen.
Ian Romanick [Wed, 27 Oct 2010 20:45:29 +0000 (13:45 -0700)]
docs: add GL_EXT_separate_shader_objects to release notes
Ian Romanick [Wed, 13 Oct 2010 21:00:56 +0000 (14:00 -0700)]
intel: Enable GL_EXT_separate_shader_objects in Intel drivers
Ian Romanick [Wed, 13 Oct 2010 21:00:24 +0000 (14:00 -0700)]
swrast: Enable GL_EXT_separate_shader_objects in software paths
Ian Romanick [Wed, 13 Oct 2010 20:58:44 +0000 (13:58 -0700)]
Track separate programs for each stage
The assumption is that all stages are the same program or that
varyings are passed between stages using built-in varyings.
Ian Romanick [Mon, 11 Oct 2010 23:07:08 +0000 (16:07 -0700)]
mesa: Track an ActiveProgram distinct from CurrentProgram
ActiveProgram is the GL_EXT_separate_shader_objects state variable
used for glUniform calls. glUseProgram also sets this.
Ian Romanick [Wed, 13 Oct 2010 20:54:13 +0000 (13:54 -0700)]
mesa: Add display list support for GL_EXT_separate_shader_objects functions
Ian Romanick [Mon, 11 Oct 2010 22:50:04 +0000 (15:50 -0700)]
mesa: Skeletal support for GL_EXT_separate_shader_objects
Really just filling in the entry points. None of them do anything
other than validate their inputs.
Ian Romanick [Mon, 11 Oct 2010 22:09:41 +0000 (15:09 -0700)]
mesa: Add infrastructure to track GL_EXT_separate_shader_objects
Ian Romanick [Mon, 11 Oct 2010 22:07:43 +0000 (15:07 -0700)]
glapi: Commit files changed by previous commit
Ian Romanick [Mon, 11 Oct 2010 22:04:59 +0000 (15:04 -0700)]
glapi: Add GL_EXT_separate_shader_objects
Kenneth Graunke [Mon, 25 Oct 2010 20:52:58 +0000 (13:52 -0700)]
Fix build on systems where "python" is python 3.
First, it changes autoconf to use a "python2" binary when available,
rather than plain "python" (which is ambiguous). Secondly, it changes
the Makefiles to use $(PYTHON) $(PYTHON_FLAGS) rather than calling
python directly.
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Matthew William Cox <matt@mattcox.ca>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>