mesa.git
16 years agoMerge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Ben Skeggs [Tue, 15 Apr 2008 03:23:23 +0000 (13:23 +1000)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1

16 years agogallium: enable new quad output code, remove old code
Brian [Tue, 15 Apr 2008 03:01:40 +0000 (21:01 -0600)]
gallium: enable new quad output code, remove old code

16 years agogallium: fix semantic indexes for outputs
Brian [Tue, 15 Apr 2008 02:58:05 +0000 (20:58 -0600)]
gallium: fix semantic indexes for outputs

16 years agogallium: fix multi drawbuffer fb state
Brian [Tue, 15 Apr 2008 02:57:15 +0000 (20:57 -0600)]
gallium: fix multi drawbuffer fb state

16 years agogallium: set ctx->Const.MaxDrawBuffers
Brian [Tue, 15 Apr 2008 02:56:08 +0000 (20:56 -0600)]
gallium: set ctx->Const.MaxDrawBuffers

16 years agogallium: fix PIPE_CAP_MAX_RENDER_TARGETS query
Brian [Tue, 15 Apr 2008 02:55:14 +0000 (20:55 -0600)]
gallium: fix PIPE_CAP_MAX_RENDER_TARGETS query

16 years agogallium: Add draw_pt_fetch_shade_pipeline.c to scons build.
José Fonseca [Tue, 15 Apr 2008 01:38:05 +0000 (10:38 +0900)]
gallium: Add draw_pt_fetch_shade_pipeline.c to scons build.

16 years agogallium: Don't assume snprintf are always available.
José Fonseca [Mon, 14 Apr 2008 14:55:36 +0000 (23:55 +0900)]
gallium: Don't assume snprintf are always available.

16 years agogallium: Serialize buffers writes.
José Fonseca [Mon, 14 Apr 2008 13:39:33 +0000 (22:39 +0900)]
gallium: Serialize buffers writes.

Allow concurrent reads from buffers by the CPU/GPU, but serialize
all writes.

16 years agofix GL_ARB_texture_rectangle breakage
Brian Paul [Mon, 14 Apr 2008 20:38:11 +0000 (14:38 -0600)]
fix GL_ARB_texture_rectangle breakage

16 years agomesa: define #extension GL_ARB_texture_rectangle
David Flynn [Mon, 14 Apr 2008 18:56:10 +0000 (12:56 -0600)]
mesa: define #extension GL_ARB_texture_rectangle

16 years agogallium: take reduced prim, fill modes into account when culling
Brian Paul [Mon, 14 Apr 2008 16:56:56 +0000 (10:56 -0600)]
gallium: take reduced prim, fill modes into account when culling

16 years agouse the new macro
Zack Rusin [Mon, 14 Apr 2008 16:32:25 +0000 (12:32 -0400)]
use the new macro

16 years agosilence some warnings
Zack Rusin [Mon, 14 Apr 2008 16:29:23 +0000 (12:29 -0400)]
silence some warnings

16 years agopass vertex size to shaders so that callee can decide on the size
Zack Rusin [Mon, 14 Apr 2008 16:27:24 +0000 (12:27 -0400)]
pass vertex size to shaders so that callee can decide on the size
of the vertices and not always have to use the maximum vertex
allocation size for them

16 years agosoftpipe: calculate determinant for all triangles, don't rely on draw module to do it
Keith Whitwell [Mon, 14 Apr 2008 15:18:00 +0000 (16:18 +0100)]
softpipe: calculate determinant for all triangles, don't rely on draw module to do it

16 years agodraw: remove dead code
Keith Whitwell [Mon, 14 Apr 2008 15:15:39 +0000 (16:15 +0100)]
draw: remove dead code

16 years agodraw: always malloc verts for fetch_shade_pipeline
Keith Whitwell [Mon, 14 Apr 2008 11:46:47 +0000 (12:46 +0100)]
draw: always malloc verts for fetch_shade_pipeline

16 years agodraw: flush pipeline before trying to allocate more hw vertices
Keith Whitwell [Mon, 14 Apr 2008 11:32:53 +0000 (12:32 +0100)]
draw: flush pipeline before trying to allocate more hw vertices

16 years agodraw: move vertex header init out of fetch_shade_pipeline.c
Keith Whitwell [Mon, 14 Apr 2008 11:27:25 +0000 (12:27 +0100)]
draw: move vertex header init out of fetch_shade_pipeline.c

16 years agodraw: hide passthrough shading paths behind an environment variable
Keith Whitwell [Mon, 14 Apr 2008 11:08:46 +0000 (12:08 +0100)]
draw: hide passthrough shading paths behind an environment variable

16 years agosoftpipe: do our own culling, don't rely on the draw module.
Keith Whitwell [Mon, 14 Apr 2008 10:32:50 +0000 (11:32 +0100)]
softpipe: do our own culling, don't rely on the draw module.

May not always happen due to passthrough modes, etc.

16 years agoImplement fetch/shade/pipeline or emit vertex passthrough.
Zack Rusin [Sun, 13 Apr 2008 05:47:07 +0000 (01:47 -0400)]
Implement fetch/shade/pipeline or emit vertex passthrough.

16 years agoMake shaders operate on a block of memory instead of arrays of vertex_header's
Zack Rusin [Sun, 13 Apr 2008 01:52:46 +0000 (21:52 -0400)]
Make shaders operate on a block of memory instead of arrays of vertex_header's

16 years agoreturn true if one of the vertices has been clipped
Zack Rusin [Fri, 11 Apr 2008 23:58:22 +0000 (19:58 -0400)]
return true if one of the vertices has been clipped

16 years agopass arbitrary number of vertices to the shader execution cycle
Zack Rusin [Sat, 12 Apr 2008 19:45:28 +0000 (15:45 -0400)]
pass arbitrary number of vertices to the shader execution cycle

16 years agointroduce a define to maxout the processed vertices
Zack Rusin [Tue, 8 Apr 2008 00:38:39 +0000 (20:38 -0400)]
introduce a define to maxout the processed vertices

16 years agogallium: Add u_time.c
José Fonseca [Sun, 13 Apr 2008 09:52:54 +0000 (18:52 +0900)]
gallium: Add u_time.c

16 years agogallium: Buffer cache.
José Fonseca [Sun, 13 Apr 2008 06:10:01 +0000 (15:10 +0900)]
gallium: Buffer cache.

16 years agogallium: Initial port of Thomas slab suballocator to pipebuffer.
José Fonseca [Sun, 13 Apr 2008 05:10:46 +0000 (14:10 +0900)]
gallium: Initial port of Thomas slab suballocator to pipebuffer.

Not tested yet -- just compiles.

This includes only the slab algorithm. Fencing is already
implemented in pb_bufmgr_fence and time-based caching will be commited in a
separate module shortly.

16 years agogallium: OS independent time-manipulation functions.
José Fonseca [Sun, 13 Apr 2008 03:23:26 +0000 (12:23 +0900)]
gallium: OS independent time-manipulation functions.

16 years agotgsi: Fix source register short dump code.
Michal Krol [Sat, 12 Apr 2008 20:59:17 +0000 (22:59 +0200)]
tgsi: Fix source register short dump code.

16 years agonv30: Update miptree stuff
Patrice Mandin [Sat, 12 Apr 2008 20:16:42 +0000 (22:16 +0200)]
nv30: Update miptree stuff

16 years agogallium: move duplicated compute_clipmask() code to draw_vs.h
Brian [Sat, 12 Apr 2008 17:03:56 +0000 (11:03 -0600)]
gallium: move duplicated compute_clipmask() code to draw_vs.h

16 years agonv30: Move some structures and functions from context to screen
Patrice Mandin [Fri, 11 Apr 2008 21:39:29 +0000 (23:39 +0200)]
nv30: Move some structures and functions from context to screen

16 years agogallium: merge the tgsi_emit_sse2() and tgsi_emit_sse2_fs() functions.
Brian Paul [Fri, 11 Apr 2008 21:27:00 +0000 (15:27 -0600)]
gallium: merge the tgsi_emit_sse2() and tgsi_emit_sse2_fs() functions.

The two functions were mostly the same.  We can look at the shader header
info to determine if it's a vertex or fragment shader.

16 years agogallium: handle TGSI immediates in SSE code for vertex shaders
Brian Paul [Fri, 11 Apr 2008 21:02:21 +0000 (15:02 -0600)]
gallium: handle TGSI immediates in SSE code for vertex shaders

16 years agogallium: implement immediates (aka literals) for SSE fragment shaders
Brian Paul [Fri, 11 Apr 2008 20:18:07 +0000 (14:18 -0600)]
gallium: implement immediates (aka literals) for SSE fragment shaders

16 years agogallium: comments
Brian Paul [Fri, 11 Apr 2008 19:44:47 +0000 (13:44 -0600)]
gallium: comments

16 years agogallium: fix SCS codegen (sin scalar src comes from X, not Y)
Brian Paul [Fri, 11 Apr 2008 19:21:39 +0000 (13:21 -0600)]
gallium: fix SCS codegen (sin scalar src comes from X, not Y)

16 years agomesa: fix broken x86_call()
Keith Whitwell [Fri, 11 Apr 2008 19:21:22 +0000 (13:21 -0600)]
mesa: fix broken x86_call()

16 years agogallium: fix broken x86_call()
Keith Whitwell [Fri, 11 Apr 2008 19:20:52 +0000 (13:20 -0600)]
gallium: fix broken x86_call()

16 years agonv30: Do flip
Patrice Mandin [Fri, 11 Apr 2008 19:37:41 +0000 (21:37 +0200)]
nv30: Do flip

16 years agonv30: Set pipe status on clear
Patrice Mandin [Fri, 11 Apr 2008 19:37:28 +0000 (21:37 +0200)]
nv30: Set pipe status on clear

16 years agogallium: Flush render cache at the beginning of fallback_copy_texsubimage().
Michel Dänzer [Fri, 11 Apr 2008 16:45:41 +0000 (17:45 +0100)]
gallium: Flush render cache at the beginning of fallback_copy_texsubimage().

It may get stale bits otherwise.

16 years agomesa: Fix glBegin-time test for invalid programs/shaders.
Brian Paul [Fri, 11 Apr 2008 16:14:17 +0000 (10:14 -0600)]
mesa: Fix glBegin-time test for invalid programs/shaders.

Cherry-picked from master.

16 years agomesa: new Z-compositing test (glDrawPixels(GL_DEPTH) + stencil)
Brian Paul [Fri, 11 Apr 2008 15:21:37 +0000 (09:21 -0600)]
mesa: new Z-compositing test (glDrawPixels(GL_DEPTH) + stencil)

16 years agoadd missing glViewport calls
Brian Paul [Fri, 11 Apr 2008 15:01:04 +0000 (09:01 -0600)]
add missing glViewport calls

cherry-picked from master

16 years agotgsi: Dump processor type and version as a single token.
Michal Krol [Mon, 7 Apr 2008 09:46:57 +0000 (11:46 +0200)]
tgsi: Dump processor type and version as a single token.

16 years agotgsi: Dump semantics before interpolator.
Michal Krol [Mon, 7 Apr 2008 09:44:34 +0000 (11:44 +0200)]
tgsi: Dump semantics before interpolator.

16 years agogallium: Thread condition variables.
José Fonseca [Fri, 11 Apr 2008 03:11:14 +0000 (12:11 +0900)]
gallium: Thread condition variables.

16 years agomesa: add a new test for glDrawPixels(GL_DEPTH_COMPONENT)
Brian Paul [Fri, 11 Apr 2008 00:28:43 +0000 (18:28 -0600)]
mesa: add a new test for glDrawPixels(GL_DEPTH_COMPONENT)

16 years agogallium: flags param to surface_alloc_storage() is unused and deprecated
Brian Paul [Mon, 7 Apr 2008 22:53:41 +0000 (16:53 -0600)]
gallium: flags param to surface_alloc_storage() is unused and deprecated

16 years agogallium: Attribute realloc leaks to the first malloc call.
José Fonseca [Thu, 10 Apr 2008 13:57:21 +0000 (22:57 +0900)]
gallium: Attribute realloc leaks to the first malloc call.

16 years agoremove usage of vertex_header
Keith Whitwell [Tue, 8 Apr 2008 16:59:28 +0000 (17:59 +0100)]
remove usage of vertex_header

16 years agogallium: fix readback of z16 values
Brian Paul [Thu, 10 Apr 2008 16:30:46 +0000 (10:30 -0600)]
gallium: fix readback of z16 values

16 years agogallium: more elaborate tracking of front color buffer state
Brian Paul [Thu, 10 Apr 2008 00:39:51 +0000 (18:39 -0600)]
gallium: more elaborate tracking of front color buffer state

This fixes the case where the app calls SwapBuffers then calls glReadPixels
to read the front color buffer.  We now keep track of when the front buffer
is a _logically_ copy of the back buffer (after SwapBuffers) and read from
the back color buffer instead of the front.

16 years agogallium: more flush/finish changes
Brian Paul [Wed, 9 Apr 2008 22:59:14 +0000 (16:59 -0600)]
gallium: more flush/finish changes

New, separate is_front_buffer_dirty() function.

16 years agogallium: reorder funcs
Brian Paul [Wed, 9 Apr 2008 22:32:46 +0000 (16:32 -0600)]
gallium: reorder funcs

16 years agogallium: call_flush_front_buffer() from st_glFinish()
Brian Paul [Wed, 9 Apr 2008 22:32:22 +0000 (16:32 -0600)]
gallium: call_flush_front_buffer() from st_glFinish()

16 years agogallium: fold st_gl_flush() into st_glFlush()
Brian Paul [Wed, 9 Apr 2008 22:30:28 +0000 (16:30 -0600)]
gallium: fold  st_gl_flush() into st_glFlush()

16 years agogallium: refactor code, new flush_front_buffer() function
Brian Paul [Wed, 9 Apr 2008 22:26:56 +0000 (16:26 -0600)]
gallium: refactor code, new flush_front_buffer() function

16 years agogallium: remove unneeded st->haveFramebufferSurfaces field.
Brian Paul [Wed, 9 Apr 2008 22:09:46 +0000 (16:09 -0600)]
gallium: remove unneeded st->haveFramebufferSurfaces field.

16 years agogallium: fix bug in PIPE_BLENDFACTOR_INV_DST_ALPHA case
Brian Paul [Wed, 9 Apr 2008 20:17:48 +0000 (14:17 -0600)]
gallium: fix bug in PIPE_BLENDFACTOR_INV_DST_ALPHA case

16 years agonv40: use vb/ve counts rather than shader inputs for related loops
Ben Skeggs [Wed, 9 Apr 2008 03:58:51 +0000 (13:58 +1000)]
nv40: use vb/ve counts rather than shader inputs for related loops

16 years agogallium: re-order, clean-up PIPE_MAX_* definitions
Brian [Wed, 9 Apr 2008 03:43:36 +0000 (21:43 -0600)]
gallium: re-order, clean-up PIPE_MAX_* definitions

16 years agoMerge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Ben Skeggs [Wed, 9 Apr 2008 03:42:55 +0000 (13:42 +1000)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1

16 years agogallium: remove obsolete/unused PIPE_ATTRIB_MAX
Brian [Wed, 9 Apr 2008 03:38:44 +0000 (21:38 -0600)]
gallium: remove obsolete/unused PIPE_ATTRIB_MAX

16 years agocell: keep track of num_vertex_attribs/buffers for shorter loops
Brian [Wed, 9 Apr 2008 03:18:21 +0000 (21:18 -0600)]
cell: keep track of num_vertex_attribs/buffers for shorter loops

16 years agoi915: keep track of num_vertex_attribs/buffers for shorter loops
Brian [Wed, 9 Apr 2008 03:14:58 +0000 (21:14 -0600)]
i915: keep track of num_vertex_attribs/buffers for shorter loops

16 years agogallium: keep track of num_vertex_attribs/buffers for shorter loops
Brian [Wed, 9 Apr 2008 03:07:14 +0000 (21:07 -0600)]
gallium: keep track of num_vertex_attribs/buffers for shorter loops

16 years agogallium: Fix overzealous assert.
José Fonseca [Tue, 8 Apr 2008 11:42:06 +0000 (20:42 +0900)]
gallium: Fix overzealous assert.

16 years agogallium: Fix up scons build.
Michel Dänzer [Tue, 8 Apr 2008 09:53:37 +0000 (10:53 +0100)]
gallium: Fix up scons build.

16 years agogallium: get rid of bufloop quad stage
Brian [Tue, 8 Apr 2008 04:00:41 +0000 (22:00 -0600)]
gallium: get rid of bufloop quad stage

16 years agogallium: begin reworking quad stages for multiple color outputs
Brian [Tue, 8 Apr 2008 03:59:12 +0000 (21:59 -0600)]
gallium: begin reworking quad stages for multiple color outputs

16 years agogallium: Allow to debug memory leaks in nested scopes.
José Fonseca [Tue, 8 Apr 2008 02:30:36 +0000 (11:30 +0900)]
gallium: Allow to debug memory leaks in nested scopes.

16 years agogallium: check ctx->DrawBuffer before flushing bitmap cache.
Brian Paul [Mon, 7 Apr 2008 22:45:17 +0000 (16:45 -0600)]
gallium: check ctx->DrawBuffer before flushing bitmap cache.

During context unbind, we may not have a draw buffer.
This fixes demos/tunnel2.c

16 years agogallium: fix the texture case in default_deep_rgba_format()
Brian Paul [Mon, 7 Apr 2008 21:53:49 +0000 (15:53 -0600)]
gallium: fix the texture case in default_deep_rgba_format()

Fixes glean pixelFormat test

16 years agogallium: slightly improved accum clear/mad operations
Brian Paul [Mon, 7 Apr 2008 21:05:28 +0000 (15:05 -0600)]
gallium: slightly improved accum clear/mad operations

Instead of get/put_tile(), map the buffer and operate on values directly.

16 years agogallium: accum buffer fixes
Brian Paul [Mon, 7 Apr 2008 20:53:49 +0000 (14:53 -0600)]
gallium: accum buffer fixes

If the driver can't create a PIPE_FORMAT_R16G16B16A16_SNORM surface, create
an accum surface using a shallower format and taller height.  Since only the
accum buffer code accesses the surface the actual format doesn't really
matter, just that there's enough memory.

16 years agogallium: remove stray comment
Brian Paul [Mon, 7 Apr 2008 20:17:32 +0000 (14:17 -0600)]
gallium: remove stray comment

16 years agogallium: clean-up in st_renderbuffer_alloc_storage()
Brian Paul [Mon, 7 Apr 2008 19:50:02 +0000 (13:50 -0600)]
gallium: clean-up in st_renderbuffer_alloc_storage()

16 years agomesa: call _mesa_remove_varying_reads() after compiling vertex shaders
Brian [Mon, 7 Apr 2008 17:22:41 +0000 (11:22 -0600)]
mesa: call _mesa_remove_varying_reads() after compiling vertex shaders

16 years agomesa: new _mesa_remove_varying_reads() function
Brian [Mon, 7 Apr 2008 17:20:21 +0000 (11:20 -0600)]
mesa: new _mesa_remove_varying_reads() function

We'll apply this function to GLSL vertex programs.  In GLSL it's legal to
read and write varying (output) vars in a vertex shader.  But reading from
an output register isn't supported by all hardware.  This routine examines
the vertex program for that condition and rewrites it to use temporary
registers where needed.

16 years agomesa: added _mesa_insert_instructions()
Brian [Mon, 7 Apr 2008 17:16:18 +0000 (11:16 -0600)]
mesa: added _mesa_insert_instructions()

Also, use new _mesa_free_instructions() in a few places.

16 years agomesa: added _mesa_free_instructions()
Brian [Mon, 7 Apr 2008 17:15:23 +0000 (11:15 -0600)]
mesa: added _mesa_free_instructions()

16 years agonv40: implement user clip planes
Ben Skeggs [Mon, 7 Apr 2008 10:10:40 +0000 (20:10 +1000)]
nv40: implement user clip planes

It turns out the user planes handed to the driver are already in clip space.
Hence, we no longer need to transform incoming vertices before computing the
clip distance, and no longer need to change the interface provided by
gallium.  Yay :)

The clip state change handling could be better, but this works.

16 years agodraw: strip edgeflags out of fetch-emit path
Keith Whitwell [Mon, 7 Apr 2008 11:28:31 +0000 (12:28 +0100)]
draw: strip edgeflags out of fetch-emit path

16 years agodraw: fix edgeflag handling on the pt paths
Keith Whitwell [Sun, 6 Apr 2008 13:29:30 +0000 (14:29 +0100)]
draw: fix edgeflag handling on the pt paths

Encode edgeflags (and reset_stipple info) into the top two bits of the
fetch elements.  This info could be moved elsewhere, but for now we
can live with a 1<<30 maximum element size...

Also use the primitive decomposition code from draw_prim.c verbatim, as
it includes all this stuff and is known to work.

16 years agodraw: Use debug_printf().
Michal Krol [Sat, 5 Apr 2008 08:22:47 +0000 (10:22 +0200)]
draw: Use debug_printf().

16 years agogallium: Keep fenced buffers list ordered.
José Fonseca [Sat, 5 Apr 2008 02:29:26 +0000 (11:29 +0900)]
gallium: Keep fenced buffers list ordered.

This allows to keep the list small without the overhead of full walks.

16 years agogallium: Fix typo.
José Fonseca [Sat, 5 Apr 2008 00:49:50 +0000 (09:49 +0900)]
gallium: Fix typo.

16 years agogallium: Use the custom snprintf implementation everywhere (for Win32).
José Fonseca [Wed, 2 Apr 2008 01:21:24 +0000 (10:21 +0900)]
gallium: Use the custom snprintf implementation everywhere (for Win32).

Because winddk's implemenation does not handle floats.

16 years agomesa: no longer combine vertex/fragment shader parameters/uniforms
Brian [Sat, 5 Apr 2008 00:59:21 +0000 (18:59 -0600)]
mesa: no longer combine vertex/fragment shader parameters/uniforms

GLSL Vertex and fragment shaders now have independent parameter buffers.
A new gl_uniform_list is used to keep track of program uniforms and where
each uniform is located in each shader's parameter buffer.
This makes better use of the space in each buffer and simplifies shader linking.

16 years agomesa: new functions for managing list/index of uniforms
Brian [Sat, 5 Apr 2008 00:57:40 +0000 (18:57 -0600)]
mesa: new functions for managing list/index of uniforms

16 years agomesa: test code to exercise more GLSL functions
Brian [Sat, 5 Apr 2008 00:56:22 +0000 (18:56 -0600)]
mesa: test code to exercise more GLSL functions

16 years agomesa: added more ext funcs (from Mesa/master)
Brian [Sat, 5 Apr 2008 00:55:48 +0000 (18:55 -0600)]
mesa: added more ext funcs (from Mesa/master)

16 years agogallium: always pass size=4 to make_immediate()
Brian [Sat, 5 Apr 2008 00:28:14 +0000 (18:28 -0600)]
gallium: always pass size=4 to make_immediate()

Mesa always packs 4 immediates into each parameter/const buffer slot.
I think we were just getting lucky with this as it was.

16 years agogallium: adjust the code in update_textures() to look more like update_samplers()
Brian [Fri, 4 Apr 2008 22:44:09 +0000 (16:44 -0600)]
gallium: adjust the code in update_textures() to look more like update_samplers()

16 years agomesa: add missing glPush/PopMatrix() calls
Brian [Fri, 4 Apr 2008 15:37:21 +0000 (09:37 -0600)]
mesa: add missing glPush/PopMatrix() calls