Age | Commit message (Collapse) | Author | |
---|---|---|---|
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-19 | mesa: don't realloc instruction buffer so often | Brian Paul | |
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-13 | mesa: revamp GLSL instruction emit code | Brian Paul | |
This is a step toward better array handling code. In particular, when more than one operand of an instruction uses indirect addressing, we'll need some temporary instructions and registers. By converting IR storage to instruction operands all in one place (emit_instruction()) we can be smarter about this. Also, somewhat better handling of dst register swizzle/writemask handling. This results in tighter writemasks on some instructions which is good for SOA execution. And, cleaner instruction commenting with inst_comment(). Next: remove some more dead code and additional clean-ups... | |||
2008-11-07 | mesa: add GLSL support for DP2, NRM3, NRM4 instructions (not actually ↵ | Brian Paul | |
emitted yet though) | |||
2008-11-05 | mesa: fix a GLSL array indexing codegen bug | Brian Paul | |
Expressions like array[i] + array[j] didn't work properly before. | |||
2008-11-01 | mesa: fix assignment / parameter passing of sampler types | Brian Paul | |
2008-08-25 | mesa: glsl: grab latest fixes from gallium-0.1 branch | Brian Paul | |
Includes: 1. Fixes failed asserting about bad swizzles in src reg emit. 2. Tracks uniform var usage. 3. Emit exp() in terms of EXP2 instruction. | |||
2008-08-16 | mesa: import latest GLSL code from gallium-0.1 branch | Brian Paul | |
2008-07-29 | mesa: glsl: remove old assertion (fixes glsl/bitmap.c) | Brian Paul | |
2008-07-29 | mesa: glsl: assorted fixes for resolving polymorphic functions | Brian Paul | |
Plus, - fix some issues in casting function arguments to format param types. - fix some vec/mat constructor bugs - find/report more syntax/semantic errors | |||
2008-07-29 | mesa: glsl: additional error detection | Brian Paul | |
Plus begin some fixes for vec/matrix constructors. | |||
2008-07-29 | mesa: gls: fix broken else clause of conditional break/continue | Brian Paul | |
In the following case: for () { if (cond) break; // or continue; else something; } The "something" block didn't get emitted. | |||
2008-07-29 | mesa: glsl: fix/simplify array element handling | Brian Paul | |
Also fix bug in comparing large structs/arrays. | |||
2008-07-29 | mesa: glsl: rework swizzle storage handling | Brian Paul | |
Build on the heirarchal approach implemented for arrays/structs. | |||
2008-07-29 | mesa: initial support for GLSL struct/array comparisons | Brian Paul | |
2008-07-29 | mesa: added null ptr check (error handling case) | Brian Paul | |
2008-07-29 | mesa: glsl: various writemask/swizzle improvements and clean-ups | 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-07-16 | mesa: fix temp re-use bug in emit_arith() | Brian Paul | |
2008-07-15 | mesa: add missing IR_LOG2 case | Brian Paul | |
2008-07-15 | mesa: fix storage size computation in emit_arith() | Brian Paul | |
2008-07-01 | mesa: make _slang_swizzle_swizzle() non-private | Brian Paul | |
2008-06-12 | glsl: implement variable array indexes | Zack Rusin | |
2008-05-14 | Updated GLSL uniform/sampler handling from gallium-0.1 branch | Brian Paul | |
Previously, the shader linker combined the uniforms used by the vertex and fragment shaders into a combined set of uniforms. This made the implementation of glUniform*() simple, but was rather inefficient otherwise. Now each shader gets its own set of uniforms (no more modelview matrix showing up in the fragment shader uniforms, for example). cherry-picked by hand from gallium-0.1 branch | |||
2008-05-14 | fix some additional program refcounting bugs | Brian Paul | |
2008-03-14 | init tmpNode to zeros | Brian | |
2008-03-14 | mesa: fix emit_clamp() so that we don't use an output register as temporary | Brian | |
IR_CLAMP is decomposed into OPCODE_MIN+OPCODE_MAX. Allocate a temporary register for the intermediate value so we don't inadvertantly use an output register (which are write-only on some GPUs). | |||
2007-11-27 | set fp->UsesKill when emitting OPCODE_KIL | Brian | |
2007-11-23 | Fix parsing of gl_FrontLightModelProduct.sceneColor, don't segfault on ↵ | Brian | |
variable array indexes. | |||
2007-10-02 | fix comment: s/branch/kill/ | Brian | |
2007-07-26 | Fix function call bug 11731. Also, fix up IR_CALL/IR_FUNC confusion. | Brian | |
2007-07-04 | Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵ | Brian | |
of -I flags. | |||
2007-04-21 | Remove all the USE_MEMPOOL debug code. | Brian | |
2007-04-21 | Use new memory pool allocator. Lots of debug code still in place... | Brian | |
2007-04-21 | free subroutine array (fix mem leak) | Brian | |
2007-04-16 | Fix some assertions that could occur when an error was earlier logged. | Brian | |
2007-04-09 | undo a debug/test change | Brian | |
2007-03-31 | always emit BGN/ENDSUB, for now anyway | Brian | |
2007-03-28 | cond code fix | Brian | |
2007-03-28 | fix cond code swizzle bug | Brian | |
2007-03-28 | optimization for the emit_not() function | Brian | |
2007-03-28 | remove IR_BREAK_IF_FALSE | Brian | |
2007-03-28 | Get rid of IR_CONT_IF_FALSE | Brian | |
2007-03-28 | Don't emit OPCODE_CONT0/1, BRK0/1 instructions, clean-ups elsewhere. | Brian | |
2007-03-28 | added some null ptr checks to handle error recovery | Brian | |
2007-03-28 | Use constant_to_src_reg() to simplify some code | Brian | |
2007-03-28 | Fix, clean-up code related to comparisons, condition codes, etc. | Brian | |
2007-03-27 | Implement true CAL/RET subroutines. Some optimizations, clean-ups coming... | 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. |