summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
AgeCommit message (Collapse)Author
2008-07-03mesa: fix array storage allocation bugBrian Paul
2008-07-01mesa: fix a GLSL vector subscript/writemask bugBrian Paul
This fixes a failure for cases like: vec4 v; v[1] *= 2.0; The v[1] actually acts like a writemask, equivalent to v.y The fix is a bit convoluted, but will do for now.
2008-07-01mesa: move some functionsBrian Paul
2008-07-01mesa: better function inlining in the presence of 'return' statementsBrian Paul
Before, the presence of a 'return' statement always prevented inlining a function. This was because we didn't want to accidentally return from the _calling_ function. We still need the semantic of 'return' when inlining but we can't always use unconditional branches/jumps (GPUs don't always support arbitrary branching). Now, we allow inlining functions w/ return if the return is the last statement in the function. This fixes the common case of a function that returns a value, such as: vec4 square(const in vec4 x) { return x * x; } which effectively compiles into: vec4 square(const in vec4 x) { __retVal = x * x; return; } The 'return' can be no-op'd now and we can inline the function.
2008-05-20fix incorrect sampler numbering/indexing.Brian Paul
All samplers indexes were zero.
2008-05-16fix assertion typo: s/=/==/Brian Paul
2008-05-14Updated GLSL uniform/sampler handling from gallium-0.1 branchBrian Paul
Previously, the shader linker combined the uniforms used by the vertex and fragment shaders into a combined set of uniforms. This made the implementation of glUniform*() simple, but was rather inefficient otherwise. Now each shader gets its own set of uniforms (no more modelview matrix showing up in the fragment shader uniforms, for example). cherry-picked by hand from gallium-0.1 branch
2008-04-03rewrite some of the mat*mat, mat*vec intrinsicsBrian
Also, remove obsolete matrix codegen code.
2007-12-04Fix gl_FrontFacing compilation problemBrian
2007-10-26Merge branch '965-glsl'Zou Nan hai
Conflicts: src/mesa/drivers/dri/i965/brw_sf.h src/mesa/drivers/dri/i965/intel_context.c
2007-10-24Implement gl_PointCoord attribute for GLSL fragment shaders.Brian
Contains the normalized fragment position within a point sprite.
2007-07-31fix failure caused by undeclared variable (bug 11783)Brian
2007-07-26fix-up inlined/non-inlined function inconsistenciesBrian
2007-07-26Fix function call bug 11731. Also, fix up IR_CALL/IR_FUNC confusion.Brian
2007-07-26generate error upon writing to varying var in fragment program (bug 11733)Brian
2007-07-17Merge branch 'master' of git+ssh://znh@git.freedesktop.org/git/mesa/mesa ↵Zou Nan hai
into 965-glsl
2007-07-12fix swizzle-related bug 11534Brian
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-07-04Merge branch 'master' of git+ssh://znh@git.freedesktop.org/git/mesa/mesa ↵Zou Nan hai
into 965-glsl
2007-07-03add code for stpq, rgba writemasks in make_writemask(), bug 11404Brian
2007-05-14comment about fixing uniform structsBrian
2007-05-11user-declared uniform structs not supported yet (see bug 10908)Brian
2007-05-01Rewrite of slang_inline_asm_function() to do full parameter/argument ↵Brian
substitution. We had been taking a short-cut w/ asm inlines by just using parameters in order rather than doing full formal parameter -> actual argument substitution like ordinary inlined function calls. This worked in all cases but one: mix() in which the parameters were used in a different order. This fixes bug 10821.
2007-04-24fix double const, move an assertionKarl Schultze
2007-04-21Remove all the USE_MEMPOOL debug code.Brian
2007-04-21Use new memory pool allocator. Lots of debug code still in place...Brian
2007-04-19remove invalid assertionBrian
2007-04-19fix crash when program has invalid structure fieldBrian
2007-04-18fix an uninitialized variable and a warningBrian
2007-04-18record proper datatypes for uniforms/samplersBrian
2007-04-18Start fixing some issues with uniform variables and their types.Brian
2007-04-12Added sanity checking in _slang_sizeof_type_specifier() to be sure sizes are ↵Brian
what's expected.
2007-04-12 Initial 965 GLSL supportZou Nan hai
2007-04-10fix/work-around allocation bugs for non-square matricesBrian
2007-04-09NULL ptr checkBrian
2007-04-08support for GLSL 1.20 non-square matricesBrian
2007-03-31fix scoping mistake in previous commit that checked for writable LHSsBrian
2007-03-30check that LHS of assignment is writableBrian
2007-03-28Handle logical NOT and XOR without library functions. Results in much ↵Brian
tighter code.
2007-03-28don't generate IR_BREAK_IF_FALSEBrian
2007-03-28simplify, clean-up break/cont codeBrian
2007-03-28added missing returns after slang_info_log_error() callsBrian
2007-03-28check that if/while/do-while condition is boolean or scalarBrian
2007-03-27Implement true CAL/RET subroutines. Some optimizations, clean-ups coming...Brian
2007-03-26Checkpoint: implementing true CAL/RET instructions for subroutine calls.Brian
Also, found/fixed a code generation regression: the emit_swizzle() function was always returning NULL. This caused emit_move() to miss its chance at peephole optimization.
2007-03-26Get rid of SLANG_OPER_GOTO, start rewrite of 'return' handling.Brian
2007-03-26remove debug abort() callsBrian
2007-03-26Additional error checking for 'return' statements.Brian
2007-03-26dead code elimination for constant-valued if/then/elseBrian
2007-03-26Fix a few issues with computing storage sizes with respect to swizzles.Brian