summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_program.h
Commit message (Collapse)AuthorAgeFilesLines
* gallium: fix vertex program output translation/mapping bugBrian Paul2008-08-181-1/+7
| | | | | | 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.
* gallium: move, increase ST_MAX_SHADER_TOKENSBrian Paul2008-07-031-3/+0
|
* gallium: implement full reference counting for vertex/fragment programsBrian Paul2008-05-071-1/+23
| | | | | | | | Use _mesa_reference_vert/fragprog() wherever we assign program pointers. Fixes a memory corruption bug found with glean/api2 test. Another memory bug involving shaders yet to be fixed... Picked from gallium-0.1
* inline -> INLINEAlan Hourihane2008-05-021-2/+2
|
* gallium: fix some bitmap frag shader issuesBrian Paul2008-04-221-0/+4
| | | | | If texturing happens to be enabled when glBitmap() is called, need to be careful about choosing a sampler unit, etc.
* gallium: st_translate_fragment_program() is void nowBrian Paul2008-04-221-1/+1
| | | | The return value was never used.
* use cso fs/vs handle functionsKeith Whitwell2008-04-211-2/+2
|
* gallium: free bitmap fragment shaders, misc clean-upBrian Paul2008-03-241-4/+0
|
* gallium: remove semantic info from pipe_shader_stateBrian Paul2008-03-131-0/+2
| | | | Brian's patch to clean up the shader interfaces.
* gallium: rework CSO-related code in state trackerBrian2008-03-111-16/+6
| | | | | | | | | | 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...
* gallium: remove input_map[] from pipe_shader_stateBrian2008-02-261-0/+3
|
* Use gallium's rtasm module.José Fonseca2008-02-191-1/+0
|
* gallium: rename st_fragment_program's fs field to cso to match st_vertex_programBrian2008-02-121-1/+1
|
* Fix problems with vertex shaders and the private draw module.Brian2008-01-141-2/+5
| | | | | | | | 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.
* gallium: reorg tgsi directories.Michal Krol2007-11-231-1/+1
|
* Size of input_to_index array should be VERT_ATTRIB_MAX.Brian2007-10-101-1/+1
| | | | This fixes an out of bounds array write that was causing the glsl/bump demo to render incorrectly.
* Track fragment and vertex shader code generation via pipe shader state objects.Michel Dänzer2007-10-031-4/+0
| | | | | Unfortunately, the generated fragment shader code is effectively unusable until it handles quad->mask.
* Instead of linked program pairs, keep a list of vertex programs translated ↵Brian2007-09-281-8/+22
| | | | for each fragment program.
* Redoing the way we handle vertex shaders for the draw module.Zack Rusin2007-09-281-4/+0
|
* Revert "Redoing the way we handle vertex shaders for the draw module."Zack Rusin2007-09-281-0/+4
| | | | This reverts commit 6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e.
* Redoing the way we handle vertex shaders for the draw module.Zack Rusin2007-09-281-4/+0
|
* Enable codegen based whenever __i386__ is defined.Keith Whitwell2007-09-271-2/+2
|
* Translate mesa vertex/fragment programs to TGSI programs at same time to do ↵Brian2007-09-251-10/+17
| | | | | | | | | | | | | | | | | | 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.
* Enable SSE2 for FS.michal2007-09-241-1/+5
|
* Checkpoint: vertex attribute clean-up.Brian2007-09-201-5/+0
| | | | | Remove/disable the attrib/slot mapping arrays in a few places. Work in progress...
* Switch fragment/vertex shaders to the new caching semantics.Zack Rusin2007-09-201-4/+6
| | | | | Allow driver custom allocation within cached objects. The shaders are currently twiced (by cso layer and by the program itself).
* Checkpoint: replacement of TGSI_ATTRIB_x tokens with input/output semantics.Brian2007-09-191-7/+20
| | | | | | | | TGSI_ATTRIB_x tokens still present and used in a few places. Expanded set of TGSI_SEMANTIC_x tokens for describing the meaning of inputs/outputs. These tokens are in a crude state ATM. Lots of #if 0 / disabled code to be removed yet, etc... Softpipe and i915 drivers should be in working condition but not heavily tested.
* Checkpoint: rework shader input/output register mapping.Brian2007-09-181-5/+12
| | | | | | | This is a step toward removing TGSI_ATTRIB_ tokens. Basically, when translating Mesa programs to TGSI programs, pass in input and output register re-maps, plus interpolation info. There's some known breakage (cubemap.c) so more to be done...
* Convert shader to an immutable state object.Zack Rusin2007-09-181-3/+3
|
* checkpoint in constant tracking reworkKeith Whitwell2007-08-251-18/+2
|
* Hook-up SSE2 to VS.michal2007-08-241-0/+6
|
* Fixup include paths after renameKeith Whitwell2007-08-241-1/+1
|
* Rework of shader constant buffers.Brian2007-08-221-2/+2
| | | | | They're now totally independent of the actual shaders. Also, implemented in terms of pipe_buffer_handles/objects.
* Begin added vertex shader state/support.Brian2007-08-161-0/+2
| | | | | Renamed pipe_fs_state to pipe_shader_state since it can be used for both vertex and fragment shader info.
* New st_init_*_functions() to initialize the driver functions table.Brian2007-08-061-2/+3
| | | | | We need to do these initializations before initializing the Mesa context because context init involves creating texture/program/etc objects.
* Basic fragment programs run now.Brian2007-07-241-0/+1
| | | | | Handling of constants might change. For now, the st_fragment_program struct contains a pipe_constant_buffer (not a pointer).
* Trigger tgsi compilation for fragment programs.Keith Whitwell2007-07-191-1/+37
| | | | Not sure the generated program looks correct though...
* Renamed softpipe directories and files to something less confusing.Keith Whitwell2007-06-141-0/+68
softpipe/state_tracker --> state_tracker/ softpipe/ --> pipe/ softpipe/generic --> pipe/softpipe/ I don't think pipe is a great name, but I disliked all the others too. Luckily it's fairly easy to rename with git, so this can be revisited later.