summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
AgeCommit message (Collapse)Author
2008-05-14rewrite some of the mat*mat, mat*vec intrinsicsBrian Paul
Also, remove obsolete matrix codegen code. cherry-picked from master
2008-05-14mesa: minor bug fixes, null ptr checks, dead code removalBrian Paul
2008-03-13mesa: fix (harmless?) assignment in assertKeith Whitwell
2007-10-26Re-implement GLSL texture sampler variables.Brian
GLSL sampler variables indicate which texture unit to use for TEX instructions. Previously, this was baked into the fragment/vertex program and couldn't be readily changed once set. Now, SamplerUnits[] array indicates which texture unit is to be used for each sampler variable. These values are set with glUniform1i(). This is extra state that must be passed to the fragment/vertex program executor at runtime.
2007-10-24Implement gl_PointCoord attribute for GLSL fragment shaders.Brian
Contains the normalized fragment position within a point sprite.
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-12fix swizzle-related bug 11534Brian
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
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-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
2007-03-24fix mem leakBrian
2007-03-24move some code into new slang_ir.c fileBrian
2007-03-23Fix issues related to the 'continue' statement.Brian
IR_LOOP now has two children: the body code, and the tail code. Tail code is the "i++" part of a for-loop, or the expression at the end of a "do {} while(expr);" loop. "continue" translates into: "execute tail code; CONT;" Also, the test for infinite do/while loops was incorrect.
2007-03-23minor tweaksBrian
2007-03-22Overhaul emit_compare() function.Brian
Previously, comparing vec2, vec3, vec4 was broken. Added IR_EQUAL, IR_NOTEQUAL nodes/operators to compute boolean equality/inequality vs. IR_SEQUAL/IR_SNEQUAL which work component-wise. Use IR_EQUAL/IR_NOTEQUAL for the == and != operators. To compute vec4 equality, use SNE, DP4, SEQ instruction sequence.
2007-03-21Support for user-defined structures.Brian
struct == and != operators not finished yet. Struct assignment works though.
2007-03-13better error msg for undefined function, disable some debug outputBrian
2007-03-13get rid of float_multiply, float_add, float_divideBrian
2007-03-12Implement GL_ARB_texture_rectangle supportBrian
This includes the sampler2DRect and sampler2DRectShadow types and the texture2DRect(), texture2DRectProj(), etc. built-in functions.
2007-03-12Add array bounds checking, fix memleaks, add null ptr checks.Brian
2007-03-11add NULL ptr checkBrian