aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_cb_program.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: initial support for ARB_geometry_shader4Zack Rusin2010-06-281-0/+48
| | | | | | laying down the foundation for everything and implementing most of the stuff. linking, gl_VerticesIn and multidimensional inputs are left.
* st/mesa: Remove unnecessary headers.Vinson Lee2010-06-261-2/+0
|
* mesa: rename src/mesa/shader/ to src/mesa/program/Brian Paul2010-06-101-3/+3
|
* mesa: refactor shader api / object codeBrian Paul2010-06-101-5/+3
| | | | | Remove the unneeded ctx->Driver hooks for shader-related functions. Move state and API-related things into main/.
* st/mesa: rename state -> tgsi, updated commentsBrian Paul2010-02-121-6/+6
|
* mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul2010-02-041-3/+6
| | | | | | | | | | | | | GL_TRUE indicates that the driver accepts the program. GL_FALSE indicates the program can't be compiled/translated by the driver for some reason (too many resources used, etc). Propogate this result up to the GL API: set GL_INVALID_OPERATION error if glProgramString() was called. Set shader program link status to GL_FALSE if glLinkProgram() was called. At this point, drivers still don't do any program checking and always return GL_TRUE.
* st/mesa: Remove unnecessary headers.Vinson Lee2010-01-311-1/+0
|
* Merge branch 'mesa_7_7_branch'Brian Paul2010-01-221-1/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c src/gallium/auxiliary/pipebuffer/Makefile src/gallium/auxiliary/pipebuffer/SConscript src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/tgsi/tgsi_scan.c src/gallium/drivers/i915/i915_surface.c src/gallium/drivers/i915/i915_texture.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_tex_sample_c.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/softpipe/sp_prim_vbuf.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/winsys/drm/intel/gem/intel_drm_api.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_drm.c src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c src/mesa/state_tracker/st_cb_clear.c
| * st/mesa: Remove unnecessary header from st_cb_program.c.Vinson Lee2010-01-151-1/+0
| |
* | mesa/st: refactor vertex and fragment shader translationKeith Whitwell2009-11-151-41/+2
|/ | | | | | | | | | | | | | | | | Translate vertex shaders independently of fragment shaders. Previously tried to make fragment shader semantic indexes always start at zero and exclude holes. This was unnecessary but meant that vertex shader translation had to be adjusted to take this into account. Now use a fixed scheme for labelling special FS input semantics (color, etc), and another fixed scheme for the generics. With this, vertex shaders can be translated independently of the bound fragment shader, assuming mesa has done its own job and ensured that the vertex shader provides at least the inputs the fragment shader is looking for. The state-tracker didn't attempt to do anything about this previously, so it shouldn't be needed now.
* mesa: Ensure TGSI tokens are freed with gallium's free.José Fonseca2009-09-211-4/+5
| | | | To avoid breaking the gallium's builtin malloc debugging.
* mesa: use new ST_CALLOC_STRUCT() macro in gallium state trackerBrian Paul2009-02-121-2/+2
|
* mesa: consistantly use mesa memory-functions in gallium state trackerBrian Paul2009-02-121-4/+4
| | | | | Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc. Still using CALLOC_STRUCT() at this point.
* gallium: check for FEATURE_feedback and FEATURE_drawpix when creating/using ↵Brian Paul2008-07-101-0/+4
| | | | the aux draw module
* Merge branch 'gallium-0.1' into gallium-tex-surfacesBrian Paul2008-05-201-0/+7
|\
| * gallium: fix vertex shader mem leak (glRasterPos)Brian Paul2008-05-201-0/+7
| |
* | Merge branch 'gallium-0.1' into gallium-tex-surfacesBrian Paul2008-05-201-2/+7
|\|
| * gallium: fix default case in st_new_program()Brian Paul2008-05-201-2/+7
| |
| * fix program delete/refcount bugBrian Paul2008-05-191-1/+3
| | | | | | | | cherry-picked from gallium-tex-surfaces
* | fix program delete/refcount bugBrian Paul2008-05-181-1/+4
|/
* gallium: use cso_destroy_vertex/fragment_shader() functionsBrian Paul2008-04-241-7/+5
| | | | | Also, rearrange the st_destroy_context() code a bit to prevent some invalid/NULL ptr derefs during tear-down.
* 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: free bitmap fragment shaders, misc clean-upBrian Paul2008-03-241-2/+3
|
* gallium: fix a few more shader-related mem leaksBrian2008-03-221-10/+18
|
* gallium: fix a few mem leaks when deleting programsBrian2008-03-221-13/+20
|
* gallium: in st_program_string_notify() free shader tokens.Brian2008-03-141-0/+10
| | | | | | When the shader instructions change, free the TGSI tokens. This signals the state tracker to recompile the shader. Fixes a regression caused by recent shader/state-tracker changes.
* gallium: rework CSO-related code in state trackerBrian2008-03-111-1/+4
| | | | | | | | | | 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...
* Code reorganization: update build.José Fonseca2008-02-151-2/+2
| | | | | | | | | 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.
* gallium: rename st_fragment_program's fs field to cso to match st_vertex_programBrian2008-02-121-2/+2
|
* include pipe/draw/draw_context.hBrian2008-01-151-0/+1
|
* free stvp->draw_shaderBrian2008-01-141-1/+5
|
* Fix problems with vertex shaders and the private draw module.Brian2008-01-141-4/+7
| | | | | | | | 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.
* Use program serial numbers to avoid re-generating fragment programs for ↵Brian2007-10-301-2/+4
| | | | glDrawPixels.
* Move mesa_to_tgsi.[ch] to state_trackerBrian2007-10-271-1/+0
|
* remove unused varBrian2007-10-101-2/+0
|
* Track fragment and vertex shader code generation via pipe shader state objects.Michel Dänzer2007-10-031-7/+0
| | | | | Unfortunately, the generated fragment shader code is effectively unusable until it handles quad->mask.
* Get rid of ST_NEW_SHADER flag and the dependency on _NEW_PROGRAMZack Rusin2007-10-031-10/+16
| | | | which is being hit all the time. Done by Keith really.
* fix st_use_program()Brian2007-09-281-0/+3
|
* Instead of linked program pairs, keep a list of vertex programs translated ↵Brian2007-09-281-0/+12
| | | | for each fragment program.
* Redoing the way we handle vertex shaders for the draw module.Zack Rusin2007-09-281-7/+0
|
* Revert "Redoing the way we handle vertex shaders for the draw module."Zack Rusin2007-09-281-0/+7
| | | | This reverts commit 6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e.
* Redoing the way we handle vertex shaders for the draw module.Zack Rusin2007-09-281-7/+0
|
* Enable codegen based whenever __i386__ is defined.Keith Whitwell2007-09-271-4/+4
|
* some clean-up of ST_NEW_ shader flagsBrian2007-09-251-20/+4
|
* Translate mesa vertex/fragment programs to TGSI programs at same time to do ↵Brian2007-09-251-33/+55
| | | | | | | | | | | | | | | | | | 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-6/+15
|
* checkpoint in constant tracking reworkKeith Whitwell2007-08-251-3/+13
|
* check for USE_X86_ASM or SLANG_X86 in st_delete_program()Brian2007-08-241-0/+2
|
* Hook-up SSE2 to VS.michal2007-08-241-0/+14
|
* silence warningKeith Whitwell2007-08-091-1/+1
|