Commit Graph

52 Commits

Author SHA1 Message Date
Brian Paul
8d475822e6 mesa: rename, reorder FRAG_RESULT_x tokens
s/FRAG_RESULT_DEPR/FRAG_RESULT_DEPTH/
s/FRAG_RESULT_COLR/FRAG_RESULT/COLOR/
Remove FRAG_RESULT_COLH (NV half-precision) output since we never used it.
Next, we might merge the COLOR and DATA outputs (COLOR0, COLOR1, etc).
2009-02-28 11:49:46 -07:00
Brian Paul
1a2f4dd876 mesa: consistantly use mesa memory-functions in gallium state tracker
Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc.
Still using CALLOC_STRUCT() at this point.
2009-02-12 10:11:55 -07:00
Brian Paul
d917ad5dbd gallium: assorted state tracker fixes for > 8 texture samplers 2009-01-02 16:54:11 -07:00
Brian Paul
c5b52b5e0e mesa: pass shader centroid/invariant info through to the TGSI shader 2008-11-24 14:36:00 -07:00
Brian Paul
678f80b347 gallium: added st_print_shaders() function to help w/ debugging 2008-11-06 15:00:01 -07:00
Brian Paul
13a8c18d3d gallium: rename tgsi_translate_mesa_program() to st_translate_mesa_program() 2008-09-26 07:25:36 -06:00
Brian Paul
4ee8d1ad67 gallium: fix fog vs. pointcoord attribute handling in mesa->TGSI conversion 2008-09-17 16:49:26 -06:00
Brian Paul
4f25420bdd gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h
Also, rename p_tile.[ch] to u_tile.[ch]
2008-08-24 17:48:55 -06:00
Brian Paul
e3f3e22cf7 gallium: fix vertex program output translation/mapping bug
In some cases, the vertex program output's semantic info didn't match up
with the fragment program's input semantic info.  This info is now explicitly
passed into the st_translate_fragment_program() function.
2008-08-18 16:10:01 -06:00
Brian Paul
a0a6144809 gallium: added comment 2008-08-11 15:21:40 -06:00
José Fonseca
c208a2c791 Merge tgsi/exec and tgsi/util directories. 2008-07-28 12:42:13 +09:00
Brian Paul
00eb309c31 gallium: move, increase ST_MAX_SHADER_TOKENS 2008-07-03 17:21:22 -06:00
Brian Paul
d378f7b3df mesa: point size arrays 2008-06-25 08:45:14 -06:00
Brian Paul
a770d40c3d gallium: use cso_destroy_vertex/fragment_shader() functions
Also, rearrange the st_destroy_context() code a bit to prevent some
invalid/NULL ptr derefs during tear-down.
2008-04-24 12:15:05 -06:00
Brian Paul
b456f1374f gallium: st_translate_fragment_program() is void now
The return value was never used.
2008-04-22 14:44:07 -06:00
Ben Skeggs
f3a62372bf handle IsPositionInvariant flag 2008-04-01 08:59:41 -06:00
Brian
a35c1ca3ad gallium: fix a few more shader-related mem leaks 2008-03-22 10:29:30 -06:00
Brian Paul
fa9e7e9a8d gallium: remove semantic info from pipe_shader_state
Brian's patch to clean up the shader interfaces.
2008-03-13 18:10:26 +00:00
Brian
339e7ec680 gallium: rework CSO-related code in state tracker
Use the code in cso_context.c rather than st_cache.c.
Basically, binding of state objects now goes through the CSO module.
But Vertex/fragment shaders go through pipe->bind_fs/vs_state() since they're
not cached by the CSO module at this time.

Also, update softpipe driver to handle NULL state objects in various places.
This happens during context destruction.  May need to update other drivers...
2008-03-11 18:55:58 -06:00
Brian
ecd50ef58b gallium: remove input_map[] from pipe_shader_state 2008-02-26 08:43:07 -07:00
José Fonseca
6acd63a498 Code reorganization: update build.
Update the Makefiles and includes for the new paths.

Note that there hasn't been no separation of the Makefiles yet, and make is
jumping all over the place. That will be taken care shortly. But for now, make
should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm
might require some minor tweaks.
2008-02-15 17:50:12 +09:00
Brian
9677336845 gallium: rename st_fragment_program's fs field to cso to match st_vertex_program 2008-02-12 16:10:11 -07:00
Brian
633e1133ae gallium: fix problem in which texcoords and varying vars got mapped to the same slot
This fixes the glsl/bump.c and glsl/texdemo1.c programs
2008-01-31 14:35:25 -07:00
Brian
ac95fee4ff Fix problems with vertex shaders and the private draw module.
The CSO returned by pipe->create_vs_state() can't be passed to the
private draw module.  That was causing glRasterPos to blow up.
Add a 'draw_shader' field to st_vertex_program for use with the private
draw module.
Change st_context->state.vs type from cso_vertex_shader to st_vertex_program.
2008-01-14 19:13:34 -07:00
Brian
c61b32777b new assertions 2007-12-19 13:16:36 -07:00
Brian
d0a63de378 turn off TGSI_DEBUG 2007-12-18 16:01:53 -07:00
Brian
e785f190f0 Don't always declare frag shader INPUT[0] as fragment position.
We were doing this for the sake of softpipe and the tgsi intergrepter since
we always need the fragment position and W-coordinate information in order
to compute fragment interpolants.
But that's not appropriate for hardware drivers.
The tgsi interpreter now get x,y,w information from a separate tgsi_exec_vector
variable setup by softpipe.
The new pipe_shader_state->input_map[] defines how vert shader outputs map
to frag shader inputs.  It may go away though, since one can also examine
the semantic label on frag shader input[0] to figure things out.
2007-12-14 11:00:46 -07:00
Brian
6070a0eb2b include tgsi_dump.h 2007-12-07 16:22:39 -07:00
Michal Krol
abd5e8e41d gallium: reorg tgsi directories. 2007-11-23 13:28:16 +00:00
Zack Rusin
7ff0df6c2b Renaming llvmtgsi to gallivm. Taking first steps on the way to supporting
fragment shaders through llvm.
2007-11-02 07:15:17 -04:00
Zack Rusin
25b17b213b Refactor the LLVM code a bit.
Move the CPU vertex shader execution code to the draw
module, remove traces of LLVM from the state tracker,
abstract execution engine for the purposes of the draw module.
2007-10-29 16:14:10 +00:00
Brian
ef6940f172 Move mesa_to_tgsi.[ch] to state_tracker 2007-10-27 09:03:15 -06:00
Zack Rusin
02cf317ed6 Add copyright headers and do some cleanups. 2007-10-24 12:48:06 -04:00
Zack Rusin
d76a7b61bb Cleanup some code. 2007-10-24 11:21:05 -04:00
Zack Rusin
5ffdada717 Execution engine is a singleton, for now keep it in the pipe. 2007-10-24 11:21:03 -04:00
Zack Rusin
b2e529982e Initial stab at LLVM integration. 2007-10-24 11:21:03 -04:00
Brian
44200421e8 Merge tgsi_mesa_compile_fp_program() and tgsi_mesa_compile_vp_program() into tgsi_translate_mesa_program(). 2007-10-10 09:44:54 -06:00
Brian
578962d624 Finish up decls for packed fragment program outputs. 2007-10-09 16:20:00 -06:00
Brian
bc139a19b0 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.
2007-10-09 14:55:22 -06:00
Brian
635c4c41bd Add outputs_written bitfield to pipe_shader_state, use it to determine if fragment shader writes Z. 2007-10-03 14:43:57 -06:00
Michel Dänzer
344464bf2e 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.
2007-10-03 20:33:23 +02:00
Brian
b13618c316 fix a few vert/frag program items to get i915 driver going again 2007-10-01 13:45:53 -06:00
Zack Rusin
8731e391f5 Use sse only if GALLIUM_SSE is defined 2007-09-28 12:29:30 -04:00
Zack Rusin
a1a989f0be Redoing the way we handle vertex shaders for the draw module. 2007-09-28 12:29:22 -04:00
Zack Rusin
901577e07f Revert "Redoing the way we handle vertex shaders for the draw module."
This reverts commit 6dcfddb8e2.
2007-09-28 12:28:16 -04:00
Zack Rusin
f2a33a63f1 Revert "Use sse only if GALLIUM_SSE is defined"
This reverts commit 57b5d36057.
2007-09-28 12:28:06 -04:00
Zack Rusin
57b5d36057 Use sse only if GALLIUM_SSE is defined 2007-09-28 09:12:20 -04:00
Zack Rusin
6dcfddb8e2 Redoing the way we handle vertex shaders for the draw module. 2007-09-28 09:12:20 -04:00
Keith Whitwell
65e3af51ef Enable codegen based whenever __i386__ is defined. 2007-09-27 07:56:23 +01:00
Brian
b5051bf6bb clean-up #includes 2007-09-25 15:21:19 -06:00