Age | Commit message (Collapse) | Author | |
---|---|---|---|
2007-03-12 | Implement GL_ARB_texture_rectangle support | Brian | |
This includes the sampler2DRect and sampler2DRectShadow types and the texture2DRect(), texture2DRectProj(), etc. built-in functions. | |||
2007-03-12 | Add array bounds checking, fix memleaks, add null ptr checks. | Brian | |
2007-03-11 | add NULL ptr check | Brian | |
2007-03-11 | Implement 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-10 | Implement 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-09 | add NULL ptr check | Brian | |
2007-03-08 | fix broken vec4_seq, vec4_sne instructions | Brian | |
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 | ; and {} statements were broken | Brian | |
2007-03-08 | remove unused new_cjump() | Brian | |
2007-03-08 | rewrite _slang_gen_select() to use IF node | Brian | |
2007-03-08 | s/_slang_gen_hl_if/_slang_gen_if/ | Brian | |
2007-03-08 | s/_slang_gen_hl_if/_slang_gen_if/ | Brian | |
2007-03-08 | check for attempted writes to read-only vars | Brian | |
2007-03-08 | Rework matrix-related code. | Brian | |
GLSL matrices are stored in column-major order while GL_ARB_vertex/fragment_program use row-major. So, need to use STATE_MATRIX_TRANSPOSE for built-in matrices. Unfortunately, this means that the expression M * V isn't very efficient since we need to extract the rows out of M. And that's the typical expression for vertex transformation: gl_ModelViewProjectionMatrix * gl_Position. Solve this inefficiency by looking for M*V expressions and replacing them with V*Transpose(M). Also, add support for GLSL 1.20's MatrixTranspose, Inverse and InverseTranspose matrices. | |||
2007-03-07 | Fix problem with nested function calls such as y = f(f(x)) | Brian | |
Replace CurFunction with curFuncEndLabel. | |||
2007-03-07 | s/equal/EQUAL/, fix bugs in logical or/and code. | Brian | |
2007-03-07 | fix swizzled writemask bug | Brian | |
2007-03-07 | additional error detection | Brian | |
2007-02-26 | Fix a few bugs in slang_operation variable scoping. Seems to fix a double-free. | Brian | |
2007-02-26 | Overhaul of error handling. | Brian | |
2007-02-23 | comments, clean-up | Brian | |
2007-02-23 | Replace slang_ir_node::Target w/ Field. Remove Comment field. Clean-up. | Brian | |
2007-02-23 | remove old _slang_gen_if() | 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-22 | emit high-level IF/ELSE/ENDIF for vertex progs now | Brian | |
2007-02-22 | remove unneeded #includes, misc clean-up | Brian | |
2007-02-22 | get rid of some unused slang_variable fields | Brian | |
2007-02-22 | Replace slang_allocate_storage() with simpler _slang_attach_storage() | Brian | |
2007-02-21 | disable debug | Brian | |
2007-02-21 | checkpoint overhaul of pre-defined uniform code | Brian | |
2007-02-20 | alloc IR_FIELD's Storage in codegen, like IR_ELEMENT | Brian | |
2007-02-20 | work on struct/array handling | Brian | |
2007-02-20 | implement support for pre-defined uniform structs (state vars) | Brian | |
2007-02-16 | change all enum tokens to uppercase | Brian | |
2007-02-16 | added a comment | Brian | |
2007-02-09 | re-enable free'ing of IR trees | Brian | |
2007-02-08 | Check for constant-valued while/do loop conditions. | Brian | |
Allows us to: 1. avoid generating constant-valued BRK test for while(1).. 2. discard entire loop for while(0). 3. detection infinite loops at compile-time. | |||
2007-02-08 | optimize conditional breaks/continues | Brian | |
2007-02-08 | remove some cruft | Brian | |
2007-02-08 | fix broken BRA for return stmts | Brian | |
2007-02-08 | Use conditional break in for/do/while loops. | Brian | |
2007-02-07 | remove old loop break/cont stuff | Brian | |
2007-02-07 | Remove old functions for generating BRA-based looping. | Brian | |
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 | Implement CONT, improve BRK. | Brian | |
IR_LOOP's BranchNode ptr is the head of a linked list of CONT and BRK nodes. After emitting loop, walk over the linked list, filling in the CONT/BRK instruction's BranchTarget field (location of the ENDLOOP instruction, or one past). | |||
2007-02-06 | replace IR_BEGIN_LOOP/IR_END_LOOP with IR_LOOP | Brian | |
2007-02-06 | new_node[0123]() functions | Brian | |
2007-02-06 | redo IR_IF node, removing IR_ELSE, IR_ENDIF | Brian | |
2007-02-05 | BRK instruction's BranchTarget field now used for efficiently breaking out ↵ | Brian | |
of loops. BRK's BranchTarget field actually points to the top of the loop, not the bottom, since we don't know the later's location yet. In the interpreter, basically do an indirect jump to update the PC. |