summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/tgsi_ureg.h
AgeCommit message (Collapse)Author
2009-08-24tgsi: Pass pipe_context as a parameter to ureg_create_shader.José Fonseca
Simplifies migration to tgsi_ureg. (cherry picked from commit f574398c07c41cb8d31249a7186fc178ef7d552a)
2009-08-24tgsi: add generic instruction builderKeith Whitwell
When translating an incoming shader (rather than building one from scratch) it's preferable to be able to call a single, generic instruction emitter rather than figuring out which of the opcode-specific functions to call.
2009-08-19tgsi: add missing functionality to support instructions with labelsKeith Whitwell
Could previously emit opcodes with label arguments, but was no way to patch them with the actual destinations of those labels. Adds two functions: ureg_get_instruction_number - to get the id of the next instruction to be emitted ureg_fixup_label - to patch an emitted label to point to a given instruction number. Need some more complex examples than u_simple_shader, so far this has only been compile-tested.
2009-08-13tgsi: add simple facility for releasing and reusing temporariesKeith Whitwell
2009-08-13tgsi: rename ureg src/dest convertersKeith Whitwell
Also fix a typo in ureg_src().
2009-08-13tgsi: add tgsi_ureg, a simplified tgsi shader builderKeith Whitwell
This is modelled on the nice & easy-to-use facilities we had for building shaders in mesa, eg. in texenvprogram.c and friends. Key points include pass-by-value register structs that can be manipulated in a functional style, eg: negate(swizzle(reg, X,X,X,X)) and per-opcode instruction functions, eg: emit_MOV( p, writemask(dst, 0x1), negate(src)); and similar. Additionally, the interface allows mixed emit of instructions and decls, which are sorted out internally to obey TGSI ordering. Immediates may be emitted at any time and are scanned against existing immediates to try and reduce redundancy. Not all TGSI functionality is accessible through this interface, but most or all of what mesa uses should be.