summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_context.h
AgeCommit message (Collapse)Author
2007-03-19r300: Fix fragment program reorderingNicolai Haehnle
Do not move an instruction that writes to a temp forward past an instruction that reads the same temporary.
2007-03-19r300: Fix fragment program instruction pairing and register allocationNicolai Haehnle
There were a number of bugs related to the pairing of vector and scalar operations where swizzles ended up using the wrong source register, or an instruction was moved forward and ended up overwriting an aliased register. The new algorithm for register allocation is quite conservative and may run out of registers before necessary. On the plus side, It Just Works. Pairing is done whenever possible, and in more cases than before, so in practice this change should be a net win.
2007-03-11Guess another unknown register in R300 command buffer initialization. ↵Aapo Tahkola
(Oliver McFadden)
2007-03-11Renamed some of the unkXXX variables in the command buffer initOliver McFadden
ialization code. Note that there are still plenty of actual unknown variables left that should probably be deciphered. There are a number of things incomplete in the driver; the different polygon offset modes (line, point, etc), the other texture filter, texture chroma key, etc. These should probably be fixed in the future, or at least added to the TODO list.
2007-02-22r300: get rid of CB_DPATH legacyDave Airlie
2007-02-14r300: Fix cos & add scs to fragment program.Rune Peterson
So this do : - Fixes COS. - Does range reductions for SIN & COS. - Adds SCS. - removes the optimized version of SIN & COS. - tweaked weight (should help on precision). - fixed a copy paste typo in emit_arith().
2007-02-12r300: Add proper support for sin/cos instruction in fragment programRune Peterson
Getting proper SIN and COS wasn't as easy as it appeared. I had to make make some changes to the fragment program code. general FP changes: - support HHH swizzle for vector instructions. - don't copy a source to a temp when it is not XYZW swizzled, but combine the two and have the swizzle resolve any issues. (saves temps/instructions with more elaborate shader code) - fix overflow in cnstv[].
2007-01-16Merge branch 'master' of git+ssh://keithw@git.freedesktop.org/git/mesa/mesa ↵Keith Whitwell
into vbo-0.2 Conflicts: src/mesa/array_cache/sources src/mesa/drivers/dri/i965/brw_context.c src/mesa/drivers/dri/i965/brw_draw.c src/mesa/drivers/dri/i965/brw_fallback.c src/mesa/drivers/dri/i965/brw_vs_emit.c src/mesa/drivers/dri/i965/brw_vs_tnl.c src/mesa/drivers/dri/mach64/mach64_context.c src/mesa/main/extensions.c src/mesa/main/getstring.c src/mesa/tnl/sources src/mesa/tnl/t_save_api.c src/mesa/tnl/t_save_playback.c src/mesa/tnl/t_vtx_api.c src/mesa/tnl/t_vtx_exec.c src/mesa/vbo/vbo_attrib.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_api.c src/mesa/vbo/vbo_save_draw.c
2006-11-17fragment.position supportRune Petersen
World position is calculated in the vertex shader and passed to the fragment shader via an unused texcoord.
2006-11-17r300_select_vertex_shader4:Rune Petersen
Makes the vertex program output from the fragment input. It makes the driver capable of catching output-input mismatches safely. Primarily based on some of Aapo Tahkola's code.
2006-10-31disable vtxfmt_a code, switch over to vboKeith Whitwell
2006-09-12Removing some of r200 dependency, cleaning up code a bit,Jerome Glisse
and fixing a couple of warning. More cleanup and shuffle to come. I have tested this change they might broke things especialy with r300_texstate.c change (format_x doesn't seems to be use at all by r300).
2006-08-31Give the user posibility to choose speed over correctness.Rune Petersen
It does 2 things: 1) Allows you to disable S3TC, wine-games sometimes need S3TC enabled. 2) Disable fallbacks that usually have low impact.
2006-08-22extend some DrawRangeElements cases to support rendering more than 65535 ↵Aapo Tahkola
verts in one blast. ut2k4 cases in other words ...
2006-08-11support shorts as vertex dataAapo Tahkola
2006-07-20Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul
"gl_" to match other structs.
2006-06-29instead of messing with _TNL_LAST_GENERIC and _TNL_FIRST_GENERIC, use ↵Tilman Sauerbeck
_TNL_NUM_GENERIC. this fixes an off-by-one error (we didn't handle the final attribute)
2006-06-27Fix generic vertex attribs (Rune Petersen)Aapo Tahkola
2006-04-26R300_SPAN_DISABLE_LOCKING env varAapo Tahkola
2006-04-23Enable USER_BUFFERS, RADEON_VTXFMT_A and HW_VBOS on big endian by forcing ↵Benjamin Herrenschmidt
all elts to 32 bits (it would be possible to do a half word swap for 16 bits if somebody is interested) and by using the input route mecanism to swap ubyte's properly in r300EmitArrays. Tested with cva, varray and quake3
2006-04-20limit max program/param length to 255 (spotted by sroland)Aapo Tahkola
2006-04-11More GLSL code:Michal Krol
- use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
2006-04-11Fog support (Ewald Snel)Aapo Tahkola
2006-03-29FP textures and fixes (Ewald Snel)Brian Paul
2006-03-27remove unnecessary typedefs causing compiler warningsRoland Scheidegger
2006-03-19-fix texrect fallback when using vtxfmt_a (glitz, xgl, etc.)Aapo Tahkola
-struct vertex_buffer to struct radeon_vertex_buffer conversion -vertex attrib arrays did not supersede conventinal arrays when enabled
2006-03-13Clean build.Aapo Tahkola
2006-03-09Kick VBOs out of GART if nothing else helps.Aapo Tahkola
2006-03-07Enable HW VBOs and other things needed by it.Aapo Tahkola
2006-03-07Various fallbacks, checks and tags.Aapo Tahkola
2006-03-06Port r200 tex tiling code to run on r300 but keep it disabled.Aapo Tahkola
2006-01-27per vp sw fallbacksAapo Tahkola
2006-01-09Missing patch from Ben Skeggs:Aapo Tahkola
Lots of changes, and fixes for some badness on my behalf. 1. Disposable data used during fp compile is now per-context, rather than per-program to save memory. 2. Track usage of INPUT/TEMP registers from Mesa program, free them when no longer required so the hw temps can be re-used. 3. Changed LAST_NODE to OUTPUT_COLOR (see r300_reg.h) 4. Implemented remaining ARB_f_p instructions, with the exception of the trig/LIT opcodes. 5. Treat ZERO/ONE swizzles the same way as other native swizzles. 6. emit_arith changes, basically a complete re-write. Should produce cleaner instructions, but no real functional changes. internal reg -> hw reg routines shared with emit_tex. A bit messy still.
2005-12-17Drop output checking.Aapo Tahkola
2005-12-17Enable CB_DPATH by default.Aapo Tahkola
2005-12-04Fix r300 rectangular texture upload and swtcl coordinate fixing same as radeonDave Airlie
sw tcl
2005-11-12Move stuff common to vertex/fragment_program into the base class, including:Brian Paul
Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-02Use ctx->VertexProgram._Current .Aapo Tahkola
2005-11-02First step of Radeon DRI unification:Eric Anholt
- Makes all three drivers use the same screen structure and setup code, with a few ifdefs for the separate compilation to deal with symbols not being available to all drivers and the fact that we have no mechanism for dealing with different config options for different chip families in the same driver. These issues should be dealt with later. - Introduces IS_R[123]00_CLASS(radeonScreenPtr) macro for code for taking different paths depending on the general class of chipset. - Adds many new R300-class PCI IDs, though not all those listed in radeon_driver.c.
2005-11-01Re-enable fallbacks.Aapo Tahkola
2005-11-01-Fix first frame -bugAapo Tahkola
-Use 16-bit elts in vtxfmt_a path if possible -Optimize VSF param uploading -return in r300DepthMask looks suspicious, use r300Enable instead -Dont use r300ResetHwState in invalidate state(disabled, missing hooks, possible instabilities)
2005-10-28Compiled arrays for vtxfmt_a path.Aapo Tahkola
2005-10-28Correct the ordering of the blend constant color.Eric Anholt
2005-10-26Sync with my local tree.Aapo Tahkola
Changes to current operation: -Elts are no longer converted to 16-bit format -Cube maps
2005-10-26Fix invalid vsf temp count for rv350.Aapo Tahkola
2005-07-20Clean up warnings in r300 code by making some symbols static, adding prototypesEric Anholt
for others, and being cleaner with types in fragment/vertex program structures. One warning in r300_shader.c is still concerning.
2005-06-21Make sure texture base addresses are used correctly.Nicolai Haehnle
They are relative to the card's address space, not relative to fbLocation, which will be important once we program MC_FB/AGP_LOCATION in the way they are programmed on older Radeon chips.
2005-05-28Up MAX_AOS_ARRAYS to 16. Do we need more?Ben Skeggs
2005-05-28Programmable per-vertex point sizes and proper result reg assigns.Aapo Tahkola
2005-05-26constant trackingBen Skeggs