summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_vertprog.c
AgeCommit message (Collapse)Author
2009-07-13r300: rewrite FOGC and HPOS attribs handlingMaciej Cencora
Rewrite vertex and fragment programs so that we don't have to do any hacks on lower level.
2009-07-13r300: bind vertex program to fragment programMaciej Cencora
2009-07-13r300: implement proper IsProgramNative check for vertex programsMaciej Cencora
2009-07-13r300: don't modify original vertex programMaciej Cencora
Keep the original vertex program untouched because it may be needed after some state change for generating new r300 specific vertex program.
2009-07-13r300: translate non native insts earlier for easier debuggingMaciej Cencora
2009-07-13r300: print vertex program after adding artificial output instsMaciej Cencora
2009-07-13r300: use mesa provided function for adding MVP codeMaciej Cencora
2009-07-13r300: simplify insert_wpos a littleMaciej Cencora
2009-06-11r300: fix vertex program bugMaciej Cencora
If the vertex program didn't write position attribute, the position invariant function would add necessary instructions, but the vertex position would be overwritten by artificial outputs insts added to satisfy fragment program requirements. Fixes "whole screen is gray" problem for HW TCL path in sauerbraten when shaders are enabled, and whole slew of wine d3d9 tests.
2009-06-11r300: move some code for easier debuggingMaciej Cencora
2009-06-11r300: print vertex program when debugging is enabledMaciej Cencora
2009-06-11r300: fix output register allocation for vertex shadersMaciej Cencora
If the vertex program wrote secondary color without primary color, the secondary color output register index would be 0 which resulted in overwriting vertex position in some cases.
2009-06-07r300: remove unused codeMaciej Cencora
2009-06-07r300: fixup vertex attributes orderingMaciej Cencora
Always allocate the vertex program input registers in the same order as the vertex attributes are passed in vertex arrays.
2009-05-16r300: cleanup vertex program related functionsMaciej Cencora
- move vertex program related functions to r300_vertprog.c - use _mesa_bitcount instead of self-made bit_count function - remove duplicated field in r300_vertex_shader_fragment.body union - rename r300_vertex_shader_fragment to r300_vertex_shader_hw_code - rename r300_vertex_program field native to error - remove unnecessary r300_vertex_shader_state structure - remove unused r300_vertex_program and r300_vertex_program_cont fields - remove disabled code
2009-04-14mesa: merge the prog_src_register::NegateBase and NegateAbs fieldsBrian Paul
There's really no need for two negation fields. This came from the GL_NV_fragment_program extension. The new, unified Negate bitfield applies after the absolute value step.
2009-03-07r300: remove assignment to removed StringPos fieldBrian Paul
2009-03-07mesa: gl_register_file enum typedefBrian Paul
2009-03-06r300: rewrite and hopefully simplify RS setupMaciej Cencora
Testing and regression fixes by Markus Amsler Signed-off-by: Nicolai Haehnle <nhaehnle@gmail.com>
2008-06-21replace __inline and __inline__ with INLINE macroBrian Paul
2008-05-06r300: fragment.position input needs no blanking out, it's correctly handled ↵Markus Amsler
in insert_wpos. fixes bug 15447
2008-03-30r300: Copy-and-paste error from the vertex program branch.Markus Amsler
2008-03-30r300: Take PROGRAM_CONSTANT into account.Markus Amsler
This bug was introduced by commit 978145a075255ae153ee05c2a037400e61558079.
2008-03-26r300: Indented the vertex program code...Oliver McFadden
2008-03-26r300: Added Copyright lines to the vertex program code.Oliver McFadden
2008-03-26r300: Renamed the Mesa opcode translation functions.Oliver McFadden
2008-03-26r300: Renamed the destination-and-opcode/source macros to more appropriate ↵Oliver McFadden
names.
2008-03-24r300: Merged the constant zero/one source macros.Oliver McFadden
2008-03-24r300: Merged the Vector and Math Engine opcode macros.Oliver McFadden
2008-03-02r300: Corrected a bug with the SUB instruction.Oliver McFadden
2008-03-02r300: Corrected a bug with the MAD instruction.Oliver McFadden
The PVS_VECTOR_OPCODE macro should be modified to support macro instructions, too.
2008-03-01r300: Indented the vertex program code with longer lines.Oliver McFadden
2008-03-01r300: Moved the PREFER_DP4 define near the position invariant function.Oliver McFadden
2008-03-01r300: Added a TODO comment for the MAD opcodes.Oliver McFadden
2008-03-01r300: Use the VE_ADD hardware opcode for the SUB opcode.Oliver McFadden
2008-03-01r300: Use the VE_MULTIPLY hardware opcode for the MUL opcode.Oliver McFadden
2008-03-01r300: Cleaned up the XPD opcode temporary register usage.Oliver McFadden
2008-03-01r300: Cleaned up extra white space.Oliver McFadden
2008-03-01r300: Prefer to use the VE_ADD for simple MOV style opcodes.Oliver McFadden
The VE_MULTIPLY_ADD has further restrictions on reading temporary memory which may complicate things. See AMD's documentation.
2008-03-01r300: Removed the (undocumented) MAD_2 opcode.Oliver McFadden
This opcode is likely a mistake from reverse engineering. MAD_2 isn't included in AMD's documentation, and my testing reviles there is no problem using the documented MAD opcode.
2008-03-01r300: Cleaned up the MAD/MAD_2 opcode selection.Oliver McFadden
2008-03-01r300: Removed duplicate component selection defines.Oliver McFadden
2008-03-01r300: Removed duplicate source register class defines.Oliver McFadden
2008-03-01r300: Renamed the vertex program source register macro.Oliver McFadden
2008-03-01r300: Converted to the new Math Engine defines.Oliver McFadden
2008-03-01r300: Renamed the Vector Engine opcode macro.Oliver McFadden
2008-03-01r300: Converted to the new Vector Engine defines.Oliver McFadden
2008-03-01r300: Removed the duplicate dest register defines.Oliver McFadden
2008-02-27r300: add artificial output to match fragment program inputMarkus Amsler
2008-01-02rx00: fix off by one error in tempreg checkHans de Goede