Age | Commit message (Collapse) | Author | |
---|---|---|---|
2009-09-29 | glsl: add support for CMP instruction | Brian Paul | |
2009-03-19 | glsl: when debug pragma is on, emit comments about function calls/inlines | Brian Paul | |
BTW, the debug pragma syntax is "#pragma debug(on)" | |||
2009-03-07 | mesa: gl_register_file enum typedef | Brian Paul | |
2009-02-20 | glsl: use new IR opcodes for TEX instructions with shadow comparison | Brian 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-01-14 | glsl: simplify IR storage for samplers | Brian Paul | |
Don't overload the Size field with the texture target, to avoid confusion. | |||
2008-11-19 | mesa: rework GLSL array code generation | Brian Paul | |
We now express arrays in terms of indirect addressing. For example: dst = a[i]; becomes: MOV dst, TEMP[1 + TEMP[2].y]; At instruction-emit time indirect addressing is converted into ARL/ ADDR-relative form: ARL ADDR.x, TEMP[2].y; MOV dst, TEMP[1 + ADDR.x]; This fixes a number of array-related issues. Arrays of arrays and complex array/struct nesting works now. There may be some regressions, but more work is coming. | |||
2008-11-13 | mesa: no longer need Writemask field in GLSL IR nodes | Brian Paul | |
The Swizzle and Size fields carry all the info we need now. | |||
2008-11-07 | mesa: add GLSL support for DP2, NRM3, NRM4 instructions (not actually ↵ | Brian Paul | |
emitted yet though) | |||
2008-08-16 | mesa: import latest GLSL code from gallium-0.1 branch | Brian Paul | |
2008-07-29 | mesa: rework array/struct addressing code. | Brian Paul | |
The slang_ir_storage type now has a pointer to parent storage to represent storage of an array element within an array, or a field within a struct. This fixes some problems related to addressing of fields/elements in non- trivial cases. More work to follow. | |||
2008-06-12 | glsl: implement variable array indexes | Zack Rusin | |
2007-07-26 | Fix function call bug 11731. Also, fix up IR_CALL/IR_FUNC confusion. | Brian | |
2007-03-28 | remove IR_BREAK_IF_FALSE | Brian | |
2007-03-28 | Get rid of IR_CONT_IF_FALSE | Brian | |
2007-03-26 | Checkpoint: 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-26 | Get rid of IR_JUMP and related code. | Brian | |
2007-03-24 | Properly free the slang_ir_node->Store data (use ref counting). | Brian | |
2007-03-24 | move some code into new slang_ir.c file | Brian | |
2007-03-23 | Fix 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-22 | Overhaul 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-21 | Support for user-defined structures. | Brian | |
struct == and != operators not finished yet. Struct assignment works though. | |||
2007-03-08 | Added 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 | IR_CJUMP0/1 no longer used/needed | Brian | |
2007-02-23 | Replace slang_ir_node::Target w/ Field. Remove Comment field. Clean-up. | Brian | |
2007-02-23 | Re-implement branching with slang_labels. | Brian | |
This eliminates the NOP instructions that had been used as placeholders for branch targets. Also, fix "return" statement bug. | |||
2007-02-07 | Use IR_LOOP to represent do-while and for-loops. | Brian | |
Also, start moving high vs. low-level instruction selection into slang_emit.c | |||
2007-02-06 | replace IR_BEGIN_LOOP/IR_END_LOOP with IR_LOOP | Brian | |
2007-02-06 | redo IR_IF node, removing IR_ELSE, IR_ENDIF | Brian | |
2007-02-05 | Initial implementation of high-level flow-control instructions. | Brian | |
IF/ELSE/ENDIF and BEGIN_LOOP/END_LOOP/BREAK instructions seem to work. Disabled by default though until better tested. Implemented IR_NOT, but needs optimization. | |||
2007-02-05 | Initial support of loop and subroutine instructions. | Brian | |
New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines. | |||
2007-01-31 | Overhaul handling of writemasks/swizzling. This fixes two problem cases: | Brian | |
vec2 v; v.x = v.y = 1.0; // chained assignment vec4 v; v.zx = vec2(a,b); // swizzled writemask | |||
2007-01-31 | New asm instruction and IR_CLAMP node type to allow clamping to [0,1] with ↵ | Brian | |
instruction saturate-write option. Not finished yet. | |||
2007-01-28 | noise functions | Brian | |
2007-01-28 | implement mix() with LRP instruction | Brian | |
2007-01-27 | Clean-up of var/temp allocation function parameters. | Brian | |
2007-01-20 | Initial implementation of OPCODE_IF/ELSE/ENDIF instructions. | Brian | |
2007-01-19 | Implement do/while loops. Replace IR_CJUMP with IR_CJUMP0 and IR_CJUMP1 so | Brian | |
we can either jump on zero, or non-zero predicate. | |||
2007-01-19 | Implement fragment discard/kill. | Brian | |
2007-01-18 | Reimplement code for swizzling so that expressions like (p+q).x for vectors ↵ | Brian | |
p and q works correctly. | |||
2007-01-17 | added IR_F_TO_I, update comments | Brian | |
2007-01-15 | Redo the way array indexes are handled. Resolve storage location at code ↵ | Brian | |
emit time, not codegen time. | |||
2007-01-13 | Rework code related to temp register allocation, both for user variables | Brian | |
and expression temporarires. Much better register utilization now. Lots of other fixes. The OpenGL GLSL "orange book" brick shader demo works now. | |||
2007-01-09 | Implement shadow samplers and dFdx(), dFdy() code generation. | Brian | |
2007-01-08 | Implement projective texture sampling, 3D textures. Disable some debug output. | Brian | |
2007-01-05 | Checkpoint glsl compiler work: sampler uniforms now implemented, linked ↵ | Brian | |
properly. | |||
2007-01-04 | initial code to get texture sampling limping along | Brian | |
2006-12-22 | fix typos | Brian | |
2006-12-21 | added IR_NEG for negation | Brian | |
2006-12-20 | New IR_COND node for evaluating conditional expressions (for if/while/for). | Brian | |
2006-12-15 | start implementing relational operators | Brian | |