summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
AgeCommit message (Collapse)Author
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
2007-03-11Implement support for GL_ARB_draw_buffers with GL_MAX_DRAW_BUFFERS > 1.Brian
GL_MAX_DRAW_BUFFERS is currently 4. Added gl_FragData[] output for fragment programs. In _swrast_write_rgba_span() loop over the color outputs/renderbuffers.
2007-03-10Implement gl_FrontFacing for fragment shaders.Brian
For the time being, we put the gl_FrontFacing value in the FOGC.Y input register. Combining FOGC and FrontFacing in one register is a bit of a hack and may need to be changed someday.
2007-03-09add NULL ptr checkBrian
2007-03-08fix broken vec4_seq, vec4_sne instructionsBrian
2007-03-08Added IR_SLE and IR_SLT for <= and < operations.Brian
Using IR_SGE and IR_SGT with transposed args doesn't work since the __asm calls don't do argument matching by name, but by position. This fixes the broken lessThan() and lessThanEqual() functions.
2007-03-08; and {} statements were brokenBrian
2007-03-08remove unused new_cjump()Brian
2007-03-08rewrite _slang_gen_select() to use IF nodeBrian
2007-03-08s/_slang_gen_hl_if/_slang_gen_if/Brian