summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang
AgeCommit message (Collapse)Author
2007-03-26disable free() until other issues can be fixed...Brian
2007-03-24fix mem leakBrian
2007-03-24disable free(var->aux) -- can lead to segfaultBrian
2007-03-24fix mem leakBrian
2007-03-24fix some mem leaksBrian
2007-03-24fix mistake in _slang_free_ir()Brian
2007-03-24Properly free the slang_ir_node->Store data (use ref counting).Brian
2007-03-24move some code into new slang_ir.c fileBrian
2007-03-24IR utility functionsBrian
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-23Add the ability to generate programs that doesn't use condition codes.Brian
ctx->Shader.EmitCondCodes determines if we use condition codes. If not, IF statement uses first operand's X component as the condition. Added OPCODE_BRK0, OPCODE_BRK1, OPCODE_CONT0, OPCODE_CONT1 to handle the common cases of conditional break/continue.
2007-03-23minor tweaksBrian
2007-03-23updated commentBrian
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-22First pass at implementing structure compares.Brian
Need to improve this. There may be holes in a structure so we can't just blindly compare the full 4-float registers.
2007-03-22In _mesa_add_unnamed_constant() and _mesa_lookup_parameter_constant() allow ↵Brian
swizzleOut==NULL. There are times when we don't want to allow swizzling when searching for or adding vector constants. Passing NULL for swizzleOut disables swizzling. This fixes a constant/swizzle bug in link_uniform_vars().
2007-03-21Support for user-defined structures.Brian
struct == and != operators not finished yet. Struct assignment works though.
2007-03-21disable apparently unused codeBrian
2007-03-21indentBrian
2007-03-14s/Tranpose/Transpose/Brian
2007-03-14continue prev check-in: save ptr to slang_function for SLANG_OPER_CALLBrian
2007-03-14After we've found the slang_function ptr for a SLANG_OPER_CALL node, save ↵Brian
the ptr in the node for reuse. This can save a tremendous amount of time when resolving types in complex expressions. One particular shader was taking several minutes to compile but now compiles almost instantaneoulsy.
2007-03-14make _slang_typeof_function() staticBrian
2007-03-14remove old assertionBrian
2007-03-13Check for, simplify vec2/3/4(x). Only do call adapting for constructors.Brian
2007-03-13improve literal printingBrian
2007-03-13disable some debug outputBrian
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-13Shuffle some code around in the emit_tex() and emit_move() instructions.Brian
Note that the inst ptr returned by new_instruction() may become invalid after calling emit_() since the emit functions may allocate new instructions which is done vial realloc(). Also, add some new assertions to try to catch this kind of bug.
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-10add NULL ptr check in emit_cond()Brian
2007-03-09use gl_ModelViewProjectionMatrixTranspose in ftransform()Brian
2007-03-09add NULL ptr checkBrian
2007-03-08added missing bvec2/3/4 constructorsBrian
2007-03-08fix broken vec4_seq, vec4_sne instructionsBrian
2007-03-08Update lessThan(), lessThanEqual() functions, improve some matrix constructors.Brian
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-08fix tmp storage problem for IR_I_TO_FBrian
2007-03-08fix assertionBrian
2007-03-08; and {} statements were brokenBrian
2007-03-08remove unused new_cjump()Brian
2007-03-08IR_CJUMP0/1 no longer used/neededBrian
2007-03-08rewrite _slang_gen_select() to use IF nodeBrian
2007-03-08s/_slang_gen_hl_if/_slang_gen_if/Brian
2007-03-08s/_slang_gen_hl_if/_slang_gen_if/Brian