mesa.git
16 years agoInit draw->prim = ~0
Brian [Thu, 11 Oct 2007 17:09:36 +0000 (11:09 -0600)]
Init draw->prim = ~0

We weren't rendering correctly if the first thing drawn was a point (PRIM_MODE_POINT=0).

16 years agorename some vars, updated comments
Brian [Thu, 11 Oct 2007 16:03:59 +0000 (10:03 -0600)]
rename some vars, updated comments

16 years agoremove unused tgsi_attrib_to_mesa_attrib()
Brian [Thu, 11 Oct 2007 16:01:17 +0000 (10:01 -0600)]
remove unused tgsi_attrib_to_mesa_attrib()

16 years agoupdate st_feedback_draw_vbo()
Brian [Thu, 11 Oct 2007 16:00:54 +0000 (10:00 -0600)]
update st_feedback_draw_vbo()

16 years agostreamline st_draw_vbo() a bit more, free user-space buffers at end
Brian [Thu, 11 Oct 2007 15:48:06 +0000 (09:48 -0600)]
streamline st_draw_vbo() a bit more, free user-space buffers at end

16 years agoclean-up, streamline st_draw_vbo()
Brian [Thu, 11 Oct 2007 15:11:13 +0000 (09:11 -0600)]
clean-up, streamline st_draw_vbo()

16 years agoimplement intel_user_buffer_create()
Brian [Thu, 11 Oct 2007 15:10:43 +0000 (09:10 -0600)]
implement intel_user_buffer_create()

16 years agoInitial support for user-space buffer objects.
Brian [Thu, 11 Oct 2007 15:10:19 +0000 (09:10 -0600)]
Initial support for user-space buffer objects.

Basically, add userBuffer/Data/Size fields to _DriBufferObject, check those
fields in driBOMap/Unmap().
New driGenUserBuffer() function.

16 years agoUse winsys->user_buffer_create() to wrap user-space vertex arrays and element buffers.
Brian [Thu, 11 Oct 2007 00:00:12 +0000 (18:00 -0600)]
Use winsys->user_buffer_create() to wrap user-space vertex arrays and element buffers.

Now client-side vertex arrays and glDrawElements work.
More testing/debug/clean-up to come...

16 years agoimplement the user_buffer_create() function
Brian [Wed, 10 Oct 2007 23:58:12 +0000 (17:58 -0600)]
implement the user_buffer_create() function

16 years agoAdded user_buffer_create() method
Brian [Wed, 10 Oct 2007 23:57:47 +0000 (17:57 -0600)]
Added user_buffer_create() method

This is used to wrap user-space data in a pipe buffer object to allow more
uniform treatment of various things.  For example, wrapping client-side
vertex arrays so they look like VBOs.

16 years agoadded SSCALED cases in fetch_attrib4()
Brian [Wed, 10 Oct 2007 23:50:31 +0000 (17:50 -0600)]
added SSCALED cases in fetch_attrib4()

16 years agoupdate comments (s/softpipe/gallium/ etc)
Brian [Wed, 10 Oct 2007 22:51:09 +0000 (16:51 -0600)]
update comments (s/softpipe/gallium/ etc)

16 years agominor optimization for color/z results
Brian [Wed, 10 Oct 2007 22:21:28 +0000 (16:21 -0600)]
minor optimization for color/z results

16 years agodisable some assertions which pop up during window resize, but can be ignored for now
Brian [Wed, 10 Oct 2007 22:19:49 +0000 (16:19 -0600)]
disable some assertions which pop up during window resize, but can be ignored for now

16 years agofix get_result_vector() since fp output slots are not fixed anymore
Brian [Wed, 10 Oct 2007 21:45:57 +0000 (15:45 -0600)]
fix get_result_vector() since fp output slots are not fixed anymore

16 years agofix softpipe_clear() to handle ps->offset!=0 (such as when rendering to texture and...
Brian [Wed, 10 Oct 2007 21:09:57 +0000 (15:09 -0600)]
fix softpipe_clear() to handle ps->offset!=0 (such as when rendering to texture and level!=0)

16 years agofree/unreference pipe_surface in get_texel()
Brian [Wed, 10 Oct 2007 21:05:24 +0000 (15:05 -0600)]
free/unreference pipe_surface in get_texel()

16 years agouse correct mipmap level in st_render_texture()
Brian [Wed, 10 Oct 2007 20:13:21 +0000 (14:13 -0600)]
use correct mipmap level in st_render_texture()

16 years agouse pipe_region_reference() in softpipe_get_tex_surface() to fix refcount error
Brian [Wed, 10 Oct 2007 17:40:04 +0000 (11:40 -0600)]
use pipe_region_reference() in softpipe_get_tex_surface() to fix refcount error

16 years agofix width/height padding that caused failed assertion upon window resize
Brian [Wed, 10 Oct 2007 17:04:48 +0000 (11:04 -0600)]
fix width/height padding that caused failed assertion upon window resize

16 years agoSize of input_to_index array should be VERT_ATTRIB_MAX.
Brian [Wed, 10 Oct 2007 16:33:38 +0000 (10:33 -0600)]
Size of input_to_index array should be VERT_ATTRIB_MAX.

This fixes an out of bounds array write that was causing the glsl/bump demo to render incorrectly.

16 years agoMerge tgsi_mesa_compile_fp_program() and tgsi_mesa_compile_vp_program() into tgsi_tra...
Brian [Wed, 10 Oct 2007 15:44:54 +0000 (09:44 -0600)]
Merge tgsi_mesa_compile_fp_program() and tgsi_mesa_compile_vp_program() into tgsi_translate_mesa_program().

16 years agoremove unused var
Brian [Wed, 10 Oct 2007 15:43:37 +0000 (09:43 -0600)]
remove unused var

16 years agostart on a unified vertex/fragment program translation function
Brian [Tue, 9 Oct 2007 22:56:25 +0000 (16:56 -0600)]
start on a unified vertex/fragment program translation function

16 years agoGenerate DCLs for temporaries.
Brian [Tue, 9 Oct 2007 22:28:01 +0000 (16:28 -0600)]
Generate DCLs for temporaries.

16 years agoFinish up decls for packed fragment program outputs.
Brian [Tue, 9 Oct 2007 22:20:00 +0000 (16:20 -0600)]
Finish up decls for packed fragment program outputs.

16 years agoPack fragment program outputs to be consistant with vertex programs.
Brian [Tue, 9 Oct 2007 20:55:22 +0000 (14:55 -0600)]
Pack fragment program outputs to be consistant with vertex programs.

Previously, output[0] was always Z and output[1] was color.  Now output[0]
will be color if Z is not written.
In shade_quad() use the semantic info to determine which quantity is in
which output slot.

16 years agoupdate some comments
Brian [Tue, 9 Oct 2007 20:52:26 +0000 (14:52 -0600)]
update some comments

16 years agoMore work on flow control for CAL/RET.
Brian [Tue, 9 Oct 2007 20:40:11 +0000 (14:40 -0600)]
More work on flow control for CAL/RET.

16 years agoNew ATTRIB interpolation type for vertex program inputs/declarations.
Brian [Tue, 9 Oct 2007 20:36:14 +0000 (14:36 -0600)]
New ATTRIB interpolation type for vertex program inputs/declarations.

16 years agoDon't emit semantic info for vertex program inputs.
Brian [Tue, 9 Oct 2007 20:31:45 +0000 (14:31 -0600)]
Don't emit semantic info for vertex program inputs.

16 years agoUse linked fragment shader inputs (if present) to determine which outputs are needed.
Brian [Tue, 9 Oct 2007 20:12:26 +0000 (14:12 -0600)]
Use linked fragment shader inputs (if present) to determine which outputs are needed.

16 years agouse different temps in exec_tex() for bias
Brian [Wed, 3 Oct 2007 22:34:04 +0000 (16:34 -0600)]
use different temps in exec_tex() for bias

16 years agoupdated comments
Brian [Wed, 3 Oct 2007 22:18:44 +0000 (16:18 -0600)]
updated comments

16 years agoAdd outputs_written bitfield to pipe_shader_state, use it to determine if fragment...
Brian [Wed, 3 Oct 2007 20:43:57 +0000 (14:43 -0600)]
Add outputs_written bitfield to pipe_shader_state, use it to determine if fragment shader writes Z.

16 years agoMove XSTDCALL definition to p_compiler.h
Brian [Wed, 3 Oct 2007 19:49:31 +0000 (13:49 -0600)]
Move XSTDCALL definition to p_compiler.h

16 years agohandle frag progs that write Z
Brian [Wed, 3 Oct 2007 19:46:48 +0000 (13:46 -0600)]
handle frag progs that write Z

16 years agobasic support for reading GL_DEPTH_COMPONENT
Brian [Wed, 3 Oct 2007 19:45:24 +0000 (13:45 -0600)]
basic support for reading GL_DEPTH_COMPONENT

16 years agoadded s8z24_get_tile()
Brian [Wed, 3 Oct 2007 19:44:53 +0000 (13:44 -0600)]
added s8z24_get_tile()

16 years agofix eq/neq bugs
Brian [Wed, 3 Oct 2007 16:33:05 +0000 (10:33 -0600)]
fix eq/neq bugs

16 years agofix f/u mix-up in micro_trunc()
Brian [Wed, 3 Oct 2007 15:55:36 +0000 (09:55 -0600)]
fix f/u mix-up in micro_trunc()

16 years agomove TEX code into exec_tex()
Brian [Wed, 3 Oct 2007 15:55:06 +0000 (09:55 -0600)]
move TEX code into exec_tex()

16 years agoSome minor cleanups.
Michel Dänzer [Wed, 3 Oct 2007 18:37:59 +0000 (20:37 +0200)]
Some minor cleanups.

16 years agoDouble amount of memory allocated for generated shader code.
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.

16 years agoTrack fragment and vertex shader code generation via pipe shader state objects.
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.

16 years agointel_winsys: Adapt to DRM changes (again).
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'.

16 years agoIn vertex shaders also expect the template to be stack allocated
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.

16 years agoUnify the definitions of the 4 component dot product into one
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.

16 years agoUnify handling of userplanes and regular planes to simplify
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)

16 years agoGet rid of ST_NEW_SHADER flag and the dependency on _NEW_PROGRAM
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.

16 years agoExplain a little better what we're doing here.
Zack Rusin [Wed, 3 Oct 2007 12:50:27 +0000 (08:50 -0400)]
Explain a little better what we're doing here.

16 years agoMake softpipe behave more like a real driver by always allocating something
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.

16 years agoclean-ups
Brian [Wed, 3 Oct 2007 01:44:55 +0000 (19:44 -0600)]
clean-ups

16 years agoImplement/use fragment kill results
Brian [Wed, 3 Oct 2007 01:16:57 +0000 (19:16 -0600)]
Implement/use fragment kill results

16 years agoImplement TGSI_OPCODE_SNE with micro_ne()
Brian [Tue, 2 Oct 2007 23:13:06 +0000 (17:13 -0600)]
Implement TGSI_OPCODE_SNE with micro_ne()

16 years agoSeparate TGSI_OPCODE_KIL and TGSI_OPCODE_KILP (predicated).
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.

16 years agoassert that program length > 1 (some code, plus END)
Brian [Tue, 2 Oct 2007 22:57:19 +0000 (16:57 -0600)]
assert that program length > 1 (some code, plus END)

16 years agoadded MESA_FORMAT_Z16 in st_mesa_format_to_pipe_format(), for Glean
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

16 years agoGenerate a texenv fragment program if there's a GLSL vertex shader but no GLSL fragme...
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.

16 years agoPush mask stacks upon CAL, pop upon RET.
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...

16 years agoadded license and interpreter comments
Brian [Tue, 2 Oct 2007 22:17:34 +0000 (16:17 -0600)]
added license and interpreter comments

16 years agoImplement CONT statement.
Brian [Tue, 2 Oct 2007 22:05:07 +0000 (16:05 -0600)]
Implement CONT statement.

16 years agoadded micro_trunc(), re-order some code
Brian [Tue, 2 Oct 2007 21:17:37 +0000 (15:17 -0600)]
added micro_trunc(), re-order some code

16 years agoMinor optimization: no-op CAL when ExecMask==0x0.
Brian [Tue, 2 Oct 2007 20:25:43 +0000 (14:25 -0600)]
Minor optimization: no-op CAL when ExecMask==0x0.

16 years agoAdded TGSI_FILE_OUTPUT case in fetch_src_file_channel().
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).

16 years agoImplement CAL/RET and a call stack for subroutines.
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.

16 years agoAdded TGSI_OPCODE_END
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.

16 years agoFold expand_program() into tgsi_exec_prepare()
Brian [Tue, 2 Oct 2007 19:41:56 +0000 (13:41 -0600)]
Fold expand_program() into tgsi_exec_prepare()

16 years agono more need for tgsi_exec_machine_run2(), remove dead code
Brian [Tue, 2 Oct 2007 17:49:43 +0000 (11:49 -0600)]
no more need for tgsi_exec_machine_run2(), remove dead code

16 years agoremove dead code
Brian [Tue, 2 Oct 2007 17:47:21 +0000 (11:47 -0600)]
remove dead code

16 years agoMove tgsi machine state init/allocations so they're done less frequently.
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.

16 years agocheckpoint: unpack all instructions before interpretation. Actual looping works.
Brian [Tue, 2 Oct 2007 16:38:56 +0000 (10:38 -0600)]
checkpoint: unpack all instructions before interpretation.  Actual looping works.

16 years agocomments/code for min/max_lod - revisit someday
Brian [Tue, 2 Oct 2007 00:10:53 +0000 (18:10 -0600)]
comments/code for min/max_lod - revisit someday

16 years agouse i915_miptree_layout when using an i915
Brian [Mon, 1 Oct 2007 21:39:15 +0000 (15:39 -0600)]
use i915_miptree_layout when using an i915

16 years agoavoid updating vertex format when it doesn't really change
Brian [Mon, 1 Oct 2007 20:46:19 +0000 (14:46 -0600)]
avoid updating vertex format when it doesn't really change

16 years agodon't crash in RasterPos if feedback not implemented yet
Brian [Mon, 1 Oct 2007 19:55:16 +0000 (13:55 -0600)]
don't crash in RasterPos if feedback not implemented yet

16 years agodisable debug printf
Brian [Mon, 1 Oct 2007 19:54:37 +0000 (13:54 -0600)]
disable debug printf

16 years agodon't crash when fog enabled, still not rendered correctly though
Brian [Mon, 1 Oct 2007 19:54:24 +0000 (13:54 -0600)]
don't crash when fog enabled, still not rendered correctly though

16 years agoremove specular color assertion (the path works)
Brian [Mon, 1 Oct 2007 19:50:24 +0000 (13:50 -0600)]
remove specular color assertion (the path works)

16 years agofix a few vert/frag program items to get i915 driver going again
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

16 years agohack in some code to test loops, break
Brian [Sat, 29 Sep 2007 16:44:05 +0000 (10:44 -0600)]
hack in some code to test loops, break

16 years agoInitial conditional execution support for loops and BRK instruction.
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.

16 years agoremove unused tgsi_exec_cond_* types
Brian [Sat, 29 Sep 2007 15:51:11 +0000 (09:51 -0600)]
remove unused tgsi_exec_cond_* types

16 years agotemporary hack to test nested conditionals
Brian [Sat, 29 Sep 2007 03:04:56 +0000 (21:04 -0600)]
temporary hack to test nested conditionals

16 years agoInitial implementation of IF/ELSE/ENDIF using conditional masking.
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.

16 years agofix bug causing unnecessary translations
Brian [Sat, 29 Sep 2007 02:31:24 +0000 (20:31 -0600)]
fix bug causing unnecessary translations

16 years agoremove old debug code, fix warning
Brian [Fri, 28 Sep 2007 22:20:10 +0000 (16:20 -0600)]
remove old debug code, fix warning

16 years agofix st_use_program()
Brian [Fri, 28 Sep 2007 22:19:51 +0000 (16:19 -0600)]
fix st_use_program()

16 years agoInstead of linked program pairs, keep a list of vertex programs translated for each...
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.

16 years agoUse texture->first_level, not 0, when not mipmapping.
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.

16 years agoGallium's doxygen documentation.
José Fonseca [Fri, 28 Sep 2007 17:48:15 +0000 (18:48 +0100)]
Gallium's doxygen documentation.

16 years agoUpdate x86's static and profile configs.
José Fonseca [Fri, 28 Sep 2007 17:17:11 +0000 (17:17 +0000)]
Update x86's static and profile configs.

16 years agoUse sse only if GALLIUM_SSE is defined
Zack Rusin [Fri, 28 Sep 2007 11:33:54 +0000 (07:33 -0400)]
Use sse only if GALLIUM_SSE is defined

16 years agoRedoing the way we handle vertex shaders for the draw module.
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Redoing the way we handle vertex shaders for the draw module.

16 years agoRemove gl dependency from the x86 assembler code
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Remove gl dependency from the x86 assembler code

16 years agoRevert "Redoing the way we handle vertex shaders for the draw module."
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.

16 years agoRevert "Use sse only if GALLIUM_SSE is defined"
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.

16 years agoUse sse only if GALLIUM_SSE is defined
Zack Rusin [Fri, 28 Sep 2007 11:33:54 +0000 (07:33 -0400)]
Use sse only if GALLIUM_SSE is defined

16 years agoRedoing the way we handle vertex shaders for the draw module.
Zack Rusin [Fri, 28 Sep 2007 08:33:55 +0000 (04:33 -0400)]
Redoing the way we handle vertex shaders for the draw module.