summaryrefslogtreecommitdiff
path: root/src/mesa/shader
AgeCommit message (Collapse)Author
2009-02-21mesa: re-org texgen stateBrian Paul
New gl_texgen struct allows quite a bit of code reduction.
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-20mesa: add TexShadow field to prog_instructionBrian Paul
If the instruction is TEX/TXP/TXL/etc the TexShadow field will be true if the instruction is a texture fetch with shadow compare.
2009-02-20mesa: freshen-up comments, move some fields in prog_instructionBrian Paul
2009-02-20glsl: rename GLSL texture assembly instructions to be more legibleBrian Paul
2009-02-20glsl: fix vec4_texp_rect IR code (need projective version)Brian Paul
2009-02-18glsl: asst improvements, clean-ups in set_program_uniform()Brian Paul
Move the is_boolean/integer_type() calls out of the loops. Move the is_sampler_type() function near the bool/int functions. Add a bunch of comments.
2009-02-18glsl: fix inequality in set_program_uniform()Brian Paul
We were off by one when checking for too many uniform values.
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-18mesa: improved error msgBrian Paul
2009-02-18mesa: increase MAX_UNIFORMS to 1024 (of vec4 type)Brian Paul
Old limit was 256. Note that no arrays are declared to this size. The only place we have to be careful about raising this limit is the prog_src/dst_register Index bitfields. These have been bumped up too. Added assertions to check we don't exceed the bitfield in the future too.
2009-02-18glsl: fix a swizzle-related regressionBrian Paul
This new issue was exposed by commit 6eabfc27f19a10dfc2663e99f9560966ba1ff697
2009-02-17glsl: fix mistake in a commentBrian Paul
2009-02-17glsl: fix an array indexing bugBrian Paul
This fixes a bug found with swizzled array indexes such as in "array[index.z]" where "index" is an ivec4.
2009-02-17mesa: when printing/dumping instruction, include relative addressing infoBrian Paul
Not all cases were handled before.
2009-02-16mesa: remove old commentsBrian Paul
Note: the default value for EmitCondCodes is FALSE. This means the GLSL compiler will emit code like this: SEQ TEMP[0].x, A, B; IF TEMP[0].x; ... ENDIF But if EmitCondCodes is TRUE, condition codes will be used instead: SEQ.C TEMP[0].x, A, B; IF (NE.xxxx); ... ENDIF
2009-02-16glsl: silence some uninit var warningsBrian Paul
2009-02-11glsl: allow setting arrays of samplers in set_program_uniform()Brian Paul
Arrays of sampler vars haven't been tested much and might actually be broken. Will need to be revisited someday. Another fix for bug 20056.
2009-02-11glsl: raise GL_INVALID_OPERATION for glUniform(location < -1)Brian Paul
location = -1 is silently ignored, but other negative values should raise an error. Another fix for bug 20056.
2009-02-11glsl: rework _mesa_get_uniform[fi]v() to avoid using a fixed size ↵Brian Paul
intermediate array
2009-02-11glsl: fix glUniform() array bounds error checkingBrian Paul
If too many array elements are specified, they're to be silently ignored (don't raise a GL error). Fixes another issue in bug 20056.
2009-02-11glsl: fix incorrect size returned by glGetActiveUniform() for array elements.Brian Paul
Fixes one of the issues in bug 20056.
2009-02-11mesa: Use the stdio wrappers.José Fonseca
snprint symbol does not exist in Windows.
2009-02-09re-add MSAA supportBrian Paul
(cherry picked from commit f7d80aa00611917bc8ce637136d982b151b8f44f) This also involved adding the new MSAA fields to driCreateConfigs(). Also, re-add prog_instructions->Sampler field for i965 driver. Will have to revisit that.
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-06mesa: tweak output of _mesa_write_shader_to_file()Brian Paul
Enclose GPU code in comments to the file can be re-fed back into GLSL compiler.
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-04glsl: use _slang_var_swizzle() in a few places to simplify the code.Brian Paul
2009-02-04glsl: remove unused prototypeBrian Paul
2009-02-04glsl: replace assertion with conditional in _slang_pop_var_table()Brian Paul
We were hitting the assertion when we ran out of registers, which can happen. Also, add some additional assertions and freshen up some comments.
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-02-02glsl: update program->InputsRead when referencing input attributesBrian Paul
This info will be used in the linker for allocating generic vertex attribs.
2009-02-02mesa: make _mesa_fprint_program_opt() non-staticBrian Paul
2009-01-28Make GL_ARB_draw_buffers mandatoryIan Romanick
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2009-01-28Make GL_ARB_vertex_buffer_object mandatoryIan Romanick
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2009-01-28mesa: remove GL_SGIX_shadow, GL_SGIX_shadow_ambient and GL_SGIX_depth_textureBrian Paul
Everyone should be using the newer/better ARB versions of these extensions.
2009-01-22glsl: call _mesa_write_shader_to_file(). Debug-only, disabledBrian Paul
2009-01-22glsl: new _mesa_write_shader_to_file() functionBrian Paul
Used to log a shader to a file. Includes shader source code, the info log and generated GPU instructions.
2009-01-22glsl: set shader->CompileStatus in _slang_compile()Brian Paul
2009-01-22Merge commit 'origin/master' into gallium-0.2Alan Hourihane
Conflicts: windows/VC8/mesa/osmesa/osmesa.vcproj windows/VC8/progs/demos/gears.vcproj windows/VC8/progs/progs.sln
2009-01-20glsl: silence unused var warningsBrian Paul
2009-01-20mesa: silence compiler warning at -O2Brian Paul
2009-01-16Merge commit 'origin/master' into gallium-0.2Alan Hourihane
Conflicts: src/mesa/shader/slang/slang_compile.c
2009-01-16glsl: fix broken sampler assignmentsBrian Paul
2009-01-15glsl: use _mesa_sprintf()Brian Paul
2009-01-15glsl: move declaration before codeBrian Paul
2009-01-15mesa: Fix merge conflictsJakob Bornecrantz
2009-01-14glsl: fix commentBrian Paul