summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_link.c
AgeCommit message (Collapse)Author
2009-06-22mesa: rename MAX_VERTEX_ATTRIBS to MAX_VERTEX_GENERIC_ATTRIBSBrian Paul
Be clearer that this is the number of generic vertex program/shader attributes, not counting the legacy attributes (pos, normal, color, etc). (cherry picked from commit 4a95185c9f30c2de7a03bb1a0653f51b53b1111d)
2009-04-02glsl: fix segfault in linker when vertex or fragment shader was missingBrian Paul
2009-04-01glsl: implement compiling/linking of separate compilation unitsBrian Paul
A shader program may consist of multiple shaders (source code units). If we find there are unresolved functions after compiling the unit that defines main(), we'll concatenate all the respective vertex or fragment shaders then recompile. This isn't foolproof but should work in most cases.
2009-02-28mesa: rename, reorder FRAG_RESULT_x tokensBrian Paul
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-20glsl: use new IR opcodes for TEX instructions with shadow comparisonBrian Paul
Such TEX instructions will have the TexShadow flag set. The gl_program::ShadowSamplers field is now set in the linker. We missed that before.
2009-02-18glsl: fix link failure for variable-indexed varying output arraysBrian Paul
If the vertex shader writes to a varying array with a variable index, mark all the elements of that array as being written. For example, if the vertex shader does: for (i = 0; i < 4; i++) gl_TexCoord[i] = expr; Mark all texcoord outputs as being written, not just the first. Linking will fail if a fragment shader tries to read an input that's not written by the vertex shader. Before this fix, this linker test could fail.
2009-02-09mesa: merge gallium-0.2 into gallium-master-mergeBrian Paul
Merge commit 'origin/gallium-0.2' into gallium-master-merge Conflicts: Makefile docs/relnotes-7.4.html docs/relnotes.html src/mesa/drivers/dri/i965/brw_wm.h src/mesa/main/imports.c src/mesa/main/mtypes.h src/mesa/main/texcompress.c src/mesa/main/texenvprogram.c src/mesa/main/version.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_draw.c
2009-02-06glsl: new MESA_GLSL env var for GLSL debugging featuresBrian Paul
Replaces the VERBOSE_GLSL, VERBOSE_GLSL_DUMP flags which only worked in debug builds. MESA_GLSL will work both in debug and non-debug builds. Also add facility to dump glUniform() calls to stdout.
2009-02-06Revert "mesa: meaningless whitespace change to see if git's working (ignore)"Brian Paul
This reverts commit b2e779988eeb595187933fe2122d86f8ccfe059c. I didn't mean to push this stuff yet. I'm having a bad git day...
2009-02-06mesa: meaningless whitespace change to see if git's working (ignore)Brian Paul
2009-02-02mesa: fix GLSL issue preventing use of all 16 generic vertex attributesBrian Paul
Only 15 actually worked before since we always reserved generic[0] as an alias for vertex position. The case of vertex attribute 0 is tricky. The spec says that there is no aliasing between generic vertex attributes 0..MAX_VERTEX_ATTRIBS-1 and the conventional attributes. But it also says that calls to glVertexAttrib(0, v) are equivalent to glVertex(v). The distinction seems to be in glVertex-mode versus vertex array mode. So update the VBO code so that if the shader uses generic[0] but not gl_Vertex, route the attribute data set with glVertex() to go to shader input generic[0]. No change needed for the glDrawArrays/Elements() path. This is a potentially risky change so regressions are possible. All the usual tests seem OK though.
2009-01-16Merge commit 'origin/master' into gallium-0.2Alan Hourihane
Conflicts: src/mesa/shader/slang/slang_compile.c
2009-01-15glsl: use _mesa_sprintf()Brian Paul
2009-01-14glsl: support sampler arrays.Alan Hourihane
2009-01-13glsl: support sampler arrays.Alan Hourihane
2009-01-09glsl: check that the fragment shader does not write both gl_FragColor and ↵Brian Paul
gl_FragData[]
2009-01-08mesa: Add _mesa_snprintf.José Fonseca
On Windows snprintf is renamed as _snprintf.
2009-01-07glsl: check that the fragment shader does not write both gl_FragColor and ↵Brian Paul
gl_FragData[]
2009-01-07mesa: Add _mesa_snprintf.José Fonseca
On Windows snprintf is renamed as _snprintf. (cherry picked from commit f8f9a1b620d31d1a59855fd502caed325d4a324f)
2009-01-02Merge commit 'origin/master' into gallium-0.2Brian Paul
Conflicts: src/mesa/main/ffvertex_prog.c src/mesa/main/texenvprogram.c
2009-01-02mesa: fix another "out of samplers" problemBrian Paul
Now only the samplers that are actually used by texture() functions are saved in the uniform variable list. Before, we could run out of samplers if too many were declared while only some of them were actually used.
2008-12-31mesa: increase max texture image units and GLSL samplers to 16Brian Paul
The max texture coord units is still 8. All the fixed-function paths are still limited to 8 too. But GLSL shaders can use more samplers now. Note that some texcoord-related data structures are declared to be 16 elements in size rather than 8. This just simplifies the code in a few places; the extra elements aren't accessible to the user. These changes haven't been extensively tested yet, but sanity checking has been done. It should be possible to increase the max image units/samplers to 32 without doing anything special. Beyond that we'll need longer bitfields in a few places.
2008-12-30Merge commit 'origin/master' into gallium-0.2Brian Paul
Conflicts: src/mesa/main/config.h
2008-12-30mesa: better error message when running out of GLSL samplersBrian Paul
2008-12-16Merge commit 'origin/master' into gallium-0.2Brian Paul
2008-12-15mesa: in slang linker, replace assertion with link error when max samplers ↵Brian Paul
exceeded
2008-11-24Merge commit 'origin/master' into gallium-0.2Brian Paul
Conflicts: progs/glsl/Makefile
2008-11-24mesa: check that varying variable qualifiers agreeBrian Paul
2008-11-24mesa: dump/debug varying vars listBrian Paul
2008-11-24mesa: add Flags field to gl_program_parameterBrian Paul
Only one flag defined so far: PROG_PARAM_CENTROID_BIT
2008-11-24mesa: add gl_program::Input/OutputFlags[] arrayBrian Paul
These arrays will indicate per-input or per-output options for vertex/fragment programs such as centroid-sampling and invariance.
2008-11-24mesa: check that varying variable qualifiers agreeBrian Paul
2008-11-24mesa: dump/debug varying vars listBrian Paul
2008-11-24mesa: add Flags field to gl_program_parameterBrian Paul
Only one flag defined so far: PROG_PARAM_CENTROID_BIT
2008-11-11Merge commit 'origin/master' into gallium-0.2Brian Paul
Conflicts: src/mesa/shader/prog_execute.c src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
2008-11-10mesa: track initialization status of uniform variables. Plus, asst clean-ups.Brian Paul
2008-11-10mesa: fix logic error in GLSL linker when looking for main() shadersBrian Paul
2008-11-06mesa: update the shader programs->TexturesUsed array at link timeBrian Paul
If an application never calls glUniform() to set sampler variable values they'll remain 0 (the default value/unit). Now call _mesa_update_shader_textures_used() at link time in case glUniform() is never called. program->TextureUsed[] will then be correct for state validation.
2008-11-06Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul
2008-11-06mesa: update the shader programs->TexturesUsed array at link timeBrian Paul
If an application never calls glUniform() to set sampler variable values they'll remain 0 (the default value/unit). Now call _mesa_update_shader_textures_used() at link time in case glUniform() is never called. program->TextureUsed[] will then be correct for state validation.
2008-11-05mesa: Fix compiler warnings on Windows.Brian Paul
cherry-picked subset of a77976d2ee578d0483c64f2aa41719bbae9c1c97
2008-11-01Merge commit 'origin/master' into gallium-0.2Alan Hourihane
Conflicts: src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
2008-11-01mesa: additional debug flags for glsl debug/disassemblyBrian Paul
2008-11-01mesa: additional debug flags for glsl debug/disassemblyBrian Paul
2008-10-02mesa: Fix compiler warnings on Windows.Michal Krol
2008-10-01mesa: Fix compiler warnings on Windows.Michal Krol
2008-09-23mesa: update program->NumAddressRegs field in _slang_update_inputs_outputs()Brian Paul
2008-09-23mesa: new gl_fragment_program fields indicating use of fog, front-facing, ↵Brian Paul
point coord (cherry picked from commit d7a7b0a10dd355fbeb7a404091a42d4ab558c820)
2008-09-18Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
Conflicts: src/mesa/shader/slang/slang_link.c
2008-09-17mesa: new gl_fragment_program fields indicating use of fog, front-facing, ↵Brian Paul
point coord