Brian [Wed, 3 Oct 2007 16:33:05 +0000 (10:33 -0600)]
fix eq/neq bugs
Brian [Wed, 3 Oct 2007 15:55:36 +0000 (09:55 -0600)]
fix f/u mix-up in micro_trunc()
Brian [Wed, 3 Oct 2007 15:55:06 +0000 (09:55 -0600)]
move TEX code into exec_tex()
Michel Dänzer [Wed, 3 Oct 2007 18:37:59 +0000 (20:37 +0200)]
Some minor cleanups.
Michel Dänzer [Wed, 3 Oct 2007 18:35:19 +0000 (20:35 +0200)]
Double amount of memory allocated for generated shader code.
The code generated for the glxgears vertex shader didn't fit, causing a crash.
Michel Dänzer [Wed, 3 Oct 2007 18:33:23 +0000 (20:33 +0200)]
Track fragment and vertex shader code generation via pipe shader state objects.
Unfortunately, the generated fragment shader code is effectively unusable until
it handles quad->mask.
Michel Dänzer [Tue, 2 Oct 2007 11:01:07 +0000 (13:01 +0200)]
intel_winsys: Adapt to DRM changes (again).
It was decided after all to stick to 'pipes' here, even though the actual
meaning is now 'planes'.
Zack Rusin [Wed, 3 Oct 2007 16:00:52 +0000 (12:00 -0400)]
In vertex shaders also expect the template to be stack allocated
structure so allocate a private copy of it.
Zack Rusin [Wed, 3 Oct 2007 14:31:42 +0000 (10:31 -0400)]
Unify the definitions of the 4 component dot product into one
location.
Zack Rusin [Wed, 3 Oct 2007 14:08:45 +0000 (10:08 -0400)]
Unify handling of userplanes and regular planes to simplify
the clipping code.
(really done by Keith)
Zack Rusin [Mon, 1 Oct 2007 10:25:23 +0000 (06:25 -0400)]
Get rid of ST_NEW_SHADER flag and the dependency on _NEW_PROGRAM
which is being hit all the time. Done by Keith really.
Zack Rusin [Wed, 3 Oct 2007 12:50:27 +0000 (08:50 -0400)]
Explain a little better what we're doing here.
Zack Rusin [Wed, 3 Oct 2007 12:47:36 +0000 (08:47 -0400)]
Make softpipe behave more like a real driver by always allocating something
in the state functions.
Brian [Wed, 3 Oct 2007 01:44:55 +0000 (19:44 -0600)]
clean-ups
Brian [Wed, 3 Oct 2007 01:16:57 +0000 (19:16 -0600)]
Implement/use fragment kill results
Brian [Tue, 2 Oct 2007 23:13:06 +0000 (17:13 -0600)]
Implement TGSI_OPCODE_SNE with micro_ne()
Brian [Tue, 2 Oct 2007 23:07:30 +0000 (17:07 -0600)]
Separate TGSI_OPCODE_KIL and TGSI_OPCODE_KILP (predicated).
These correspond to the NV and ARB-style fragment program KIL instructions.
The former is really supposed to examine the NV condition codes but Mesa's
GLSL compiler always emits unconditional KIL instructions.
Brian [Tue, 2 Oct 2007 22:57:19 +0000 (16:57 -0600)]
assert that program length > 1 (some code, plus END)
Brian [Tue, 2 Oct 2007 22:56:02 +0000 (16:56 -0600)]
added MESA_FORMAT_Z16 in st_mesa_format_to_pipe_format(), for Glean
Brian [Tue, 2 Oct 2007 22:55:21 +0000 (16:55 -0600)]
Generate a texenv fragment program if there's a GLSL vertex shader but no GLSL fragment shader.
This allows Glean glsl1 test to get pretty far.
Brian [Tue, 2 Oct 2007 22:24:40 +0000 (16:24 -0600)]
Push mask stacks upon CAL, pop upon RET.
Still need to handle conditional RET statements...
Brian [Tue, 2 Oct 2007 22:17:34 +0000 (16:17 -0600)]
added license and interpreter comments
Brian [Tue, 2 Oct 2007 22:05:07 +0000 (16:05 -0600)]
Implement CONT statement.
Brian [Tue, 2 Oct 2007 21:17:37 +0000 (15:17 -0600)]
added micro_trunc(), re-order some code
Brian [Tue, 2 Oct 2007 20:25:43 +0000 (14:25 -0600)]
Minor optimization: no-op CAL when ExecMask==0x0.
Brian [Tue, 2 Oct 2007 20:17:47 +0000 (14:17 -0600)]
Added TGSI_FILE_OUTPUT case in fetch_src_file_channel().
GLSL output variables (such as vertex varyings) can be read (they're not
write-only).
Brian [Tue, 2 Oct 2007 20:05:21 +0000 (14:05 -0600)]
Implement CAL/RET and a call stack for subroutines.
The glsl/brick.c shader demo runs now.
Brian [Tue, 2 Oct 2007 19:49:38 +0000 (13:49 -0600)]
Added TGSI_OPCODE_END
Halt program execution when we get to END instruction. The GLSL compiler
puts subroutines after the end instruction so we have to stop before then.
Brian [Tue, 2 Oct 2007 19:41:56 +0000 (13:41 -0600)]
Fold expand_program() into tgsi_exec_prepare()
Brian [Tue, 2 Oct 2007 17:49:43 +0000 (11:49 -0600)]
no more need for tgsi_exec_machine_run2(), remove dead code
Brian [Tue, 2 Oct 2007 17:47:21 +0000 (11:47 -0600)]
remove dead code
Brian [Tue, 2 Oct 2007 17:46:11 +0000 (11:46 -0600)]
Move tgsi machine state init/allocations so they're done less frequently.
This, plus expanding all instructions ahead of time, seems to have improved
the performance of program execution by 8x or so.
Brian [Tue, 2 Oct 2007 16:38:56 +0000 (10:38 -0600)]
checkpoint: unpack all instructions before interpretation. Actual looping works.
Brian [Tue, 2 Oct 2007 00:10:53 +0000 (18:10 -0600)]
comments/code for min/max_lod - revisit someday
Brian [Mon, 1 Oct 2007 21:39:15 +0000 (15:39 -0600)]
use i915_miptree_layout when using an i915
Brian [Mon, 1 Oct 2007 20:46:19 +0000 (14:46 -0600)]
avoid updating vertex format when it doesn't really change
Brian [Mon, 1 Oct 2007 19:55:16 +0000 (13:55 -0600)]
don't crash in RasterPos if feedback not implemented yet
Brian [Mon, 1 Oct 2007 19:54:37 +0000 (13:54 -0600)]
disable debug printf
Brian [Mon, 1 Oct 2007 19:54:24 +0000 (13:54 -0600)]
don't crash when fog enabled, still not rendered correctly though
Brian [Mon, 1 Oct 2007 19:50:24 +0000 (13:50 -0600)]
remove specular color assertion (the path works)
Brian [Mon, 1 Oct 2007 19:45:53 +0000 (13:45 -0600)]
fix a few vert/frag program items to get i915 driver going again
Brian [Sat, 29 Sep 2007 16:44:05 +0000 (10:44 -0600)]
hack in some code to test loops, break
Brian [Sat, 29 Sep 2007 16:43:29 +0000 (10:43 -0600)]
Initial conditional execution support for loops and BRK instruction.
Also, instead of passing cond mask to each micro op, just apply it in the
store_dest() function.
Brian [Sat, 29 Sep 2007 15:51:11 +0000 (09:51 -0600)]
remove unused tgsi_exec_cond_* types
Brian [Sat, 29 Sep 2007 03:04:56 +0000 (21:04 -0600)]
temporary hack to test nested conditionals
Brian [Sat, 29 Sep 2007 03:04:34 +0000 (21:04 -0600)]
Initial implementation of IF/ELSE/ENDIF using conditional masking.
mach->CondMask controls writing to each of the 4 components in a quad.
mach->CondMaskStack handles nested conditionals.
Only a few of the micro ops (add/sub/mul/store) have been updated to obey CondMask at this time.
Brian [Sat, 29 Sep 2007 02:31:24 +0000 (20:31 -0600)]
fix bug causing unnecessary translations
Brian [Fri, 28 Sep 2007 22:20:10 +0000 (16:20 -0600)]
remove old debug code, fix warning
Brian [Fri, 28 Sep 2007 22:19:51 +0000 (16:19 -0600)]
fix st_use_program()
Brian [Fri, 28 Sep 2007 21:39:09 +0000 (15:39 -0600)]
Instead of linked program pairs, keep a list of vertex programs translated for each fragment program.
Brian [Fri, 28 Sep 2007 19:49:50 +0000 (13:49 -0600)]
Use texture->first_level, not 0, when not mipmapping.
Fixes crash when GL_BASE_LEVEL!=0.
Also, remove old assertion.
José Fonseca [Fri, 28 Sep 2007 17:48:15 +0000 (18:48 +0100)]
Gallium's doxygen documentation.
José Fonseca [Fri, 28 Sep 2007 17:17:11 +0000 (17:17 +0000)]
Update x86's static and profile configs.
Zack Rusin [Fri, 28 Sep 2007 11:33:54 +0000 (07:33 -0400)]
Use sse only if GALLIUM_SSE is defined
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Redoing the way we handle vertex shaders for the draw module.
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Remove gl dependency from the x86 assembler code
Zack Rusin [Fri, 28 Sep 2007 16:28:16 +0000 (12:28 -0400)]
Revert "Redoing the way we handle vertex shaders for the draw module."
This reverts commit
6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e.
Zack Rusin [Fri, 28 Sep 2007 16:28:06 +0000 (12:28 -0400)]
Revert "Use sse only if GALLIUM_SSE is defined"
This reverts commit
57b5d3605745c96ddc2b6de7d50c93db65ba1257.
Zack Rusin [Fri, 28 Sep 2007 11:33:54 +0000 (07:33 -0400)]
Use sse only if GALLIUM_SSE is defined
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Redoing the way we handle vertex shaders for the draw module.
Brian [Thu, 27 Sep 2007 22:33:01 +0000 (16:33 -0600)]
set miptree pitch to region pitch after allocating the region in st_miptree_create()
This fixes rendering with small (4x4) textures with softpipe.
Haven't yet tested with i915.
Brian [Thu, 27 Sep 2007 22:31:13 +0000 (16:31 -0600)]
comments
keithw [Thu, 27 Sep 2007 15:20:31 +0000 (16:20 +0100)]
remove dead code
keithw [Thu, 27 Sep 2007 11:50:02 +0000 (12:50 +0100)]
reduced debug
Keith Whitwell [Wed, 26 Sep 2007 12:30:01 +0000 (13:30 +0100)]
Fix some compiler warnings with -pedantic
Keith Whitwell [Wed, 26 Sep 2007 11:46:45 +0000 (12:46 +0100)]
Enable codegen based whenever __i386__ is defined.
keithw [Wed, 26 Sep 2007 11:10:46 +0000 (12:10 +0100)]
fix merge
Keith Whitwell [Wed, 26 Sep 2007 11:08:08 +0000 (12:08 +0100)]
disable debug
keithw [Wed, 26 Sep 2007 10:57:28 +0000 (11:57 +0100)]
restore primitive trimming in sp_draw_arrays.c
Keith Whitwell [Wed, 26 Sep 2007 10:56:17 +0000 (11:56 +0100)]
Make flushing more lazy in the draw module.
keithw [Wed, 26 Sep 2007 10:55:08 +0000 (11:55 +0100)]
Use Gallium in the renderer string
Brian [Thu, 27 Sep 2007 00:54:20 +0000 (18:54 -0600)]
Do image flipping in do_copy_texsubimage() and GL pixel transfer ops (except convolution).
Brian [Thu, 27 Sep 2007 00:39:14 +0000 (18:39 -0600)]
fallback_copy_texsubimage() basically works now (at least w/ Xlib driver).
Have to map regions before calling get_tile()/put_tile().
Need to invert srcY of glCopyTexSubImage() depending on renderbuffers
up/down orientation.
Still need to invert image in fallback_copy_texsubimage() when needed.
Brian [Thu, 27 Sep 2007 00:34:43 +0000 (18:34 -0600)]
added a8r8g8b8_put_tile()
Brian [Thu, 27 Sep 2007 00:34:13 +0000 (18:34 -0600)]
don't use scissored bounds in _mesa_clip_copytexsubimage()
Brian [Wed, 26 Sep 2007 23:57:15 +0000 (17:57 -0600)]
More work on glCopyTexSubImage.
Start sketching out a fallback path based on surface->get_tile(), put_tile()
which will do format convertion and GL's pixel transfer ops.
Brian [Wed, 26 Sep 2007 23:18:42 +0000 (17:18 -0600)]
checkpoint: glCopyTexImage work
Brian [Wed, 26 Sep 2007 23:03:40 +0000 (17:03 -0600)]
s/_mesa_copy_rect/copy_rect/
Brian [Wed, 26 Sep 2007 23:03:11 +0000 (17:03 -0600)]
Added new _mesa_clip_copytexsubimage() function to do avoid clipping down in the drivers.
This should probably be pulled into main-line Mesa...
Brian [Wed, 26 Sep 2007 21:34:51 +0000 (15:34 -0600)]
check for _NEW_PROGRAM mesa state (fixes arbfplight)
Brian [Wed, 26 Sep 2007 21:34:31 +0000 (15:34 -0600)]
better debugging
Brian [Tue, 25 Sep 2007 23:07:59 +0000 (17:07 -0600)]
comments, null ptr checks, etc.
Brian [Tue, 25 Sep 2007 23:03:19 +0000 (17:03 -0600)]
don't apply pixelzoom to bitmaps
Brian [Tue, 25 Sep 2007 22:56:35 +0000 (16:56 -0600)]
st_draw_vertices() no longer needs attribs[] array parameter
Brian [Tue, 25 Sep 2007 22:52:38 +0000 (16:52 -0600)]
Simple implementation of glBitmap rendering.
Create a texture matching the bitmap image and use a fragment program
to modulate current raster color by the boolean-valued texture. Need to
eventually use fragment culling (see comments in code).
Brian [Tue, 25 Sep 2007 21:48:14 +0000 (15:48 -0600)]
re-org/prep for glBitmap
Brian [Tue, 25 Sep 2007 21:21:19 +0000 (15:21 -0600)]
clean-up #includes
Brian [Tue, 25 Sep 2007 21:20:58 +0000 (15:20 -0600)]
better debug output
Brian [Tue, 25 Sep 2007 21:20:04 +0000 (15:20 -0600)]
include programopt.h
Brian [Tue, 25 Sep 2007 21:18:51 +0000 (15:18 -0600)]
Disable vertex shader fog, compute fog in fragment shader.
Brian [Tue, 25 Sep 2007 20:46:49 +0000 (14:46 -0600)]
some clean-up of ST_NEW_ shader flags
Brian [Tue, 25 Sep 2007 20:46:18 +0000 (14:46 -0600)]
disable TGSI_DEBUG
Brian [Tue, 25 Sep 2007 20:30:26 +0000 (14:30 -0600)]
replaced by st_atom_shader.c
Brian [Tue, 25 Sep 2007 20:29:11 +0000 (14:29 -0600)]
Translate mesa vertex/fragment programs to TGSI programs at same time to do proper linking.
Previously, programs were translated independently during validation.
The problem is the translation to TGSI format, which packs shader
input/outputs into continuous slots, depends on which vertex program is
being paired with which fragment shader. Now, we look at the outputs
of the vertex program in conjunction with the inputs of the fragment shader
to be sure the attributes match up correctly.
The new 'linked_program_pair' class keeps track of the associations
between vertex and fragment shaders. It's also the place where the TGSI
tokens are kept since they're no longer per-program state but per-linkage.
Still a few loose ends, like implementing some kind of hash/lookup table
for linked_program_pairs.
Brian [Tue, 25 Sep 2007 20:22:13 +0000 (14:22 -0600)]
translate Mesa programs to TGSI programs (formerly in st_atom_[fv]s.c)
Brian [Tue, 25 Sep 2007 20:21:18 +0000 (14:21 -0600)]
vertex/fragment shader state and linking
Brian [Fri, 21 Sep 2007 18:41:24 +0000 (12:41 -0600)]
test for presence of both front and back color vertex slots
Brian [Fri, 21 Sep 2007 18:39:26 +0000 (12:39 -0600)]
remove unused lookup array
Keith Whitwell [Tue, 25 Sep 2007 12:20:53 +0000 (13:20 +0100)]
First attempt at building vertex buffers post-clip.
Build a buffer of contigous vertices and indices at the backend of our
software transformation/clipping path. This will become the mechanism
for emitting buffers of vertices to rasterization hardware.
This is similar to but not the same as the post-transform vertex cache.
In particular, these vertices are subject to clipping, culling, poly offset,
etc. The vertices emitted will all be used by hardware.
TODOs include the actual transformation to hardware vertex formats, moving
this out of softpipe to somewhere more useful and allowing >1 primitive to
share the generated VB.
keithw [Tue, 25 Sep 2007 12:16:25 +0000 (13:16 +0100)]
turn off shader debug