summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300
AgeCommit message (Collapse)Author
2007-03-27r300: Fix radeonUpdatePageFlipping() function.Roland Scheidegger
Always call driFlipRenderbuffers() with pfCurrentPage value, in case it's initially 1 instead of 0. May fix some issues with pageflip, the same fix was applied to r128, radeon and r200 (6e0e6eff05727ac8833c2b2dffc51c6619427e77).
2007-03-27r300: Check ctx->WinSysDrawBuffer before calling function that dereferences it.Michel Dänzer
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=10417 .
2007-03-26r300: Remove a warning when vertex programs produce an unused outputNicolai Haehnle
As far as we know, the hardware prefers outputs packed tightly together with no holes caused by outputs that are not even read by the fragment program. Therefore, we slightly rewrite vertex programs in this case. It would be interesting to test this interaction between vertex programs and fragment programs further, because some of that rewrite may be unnecessary. However, play it safe for now and don't change the current behaviour.
2007-03-26r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-26r300: Fix warnings that were introduced by the glsl mergeNicolai Haehnle
2007-03-26merge of glsl-compiler-1 branchBrian
2007-03-25r300: Whitespace cleanup in r300_texmem.cNicolai Haehnle
2007-03-25r300: Whitespace cleanup in r300_texstate.cNicolai Haehnle
2007-03-25r300: Fix regression: unnecessary node indirectionNicolai Haehnle
The texture_rectangle fix introduced a bug where every texture instruction caused a new indirection.
2007-03-24r300: Fix texture coordinate calculation for rectangle texturesNicolai Haehnle
R300 hardware takes texcoords in the range 0..1 even for rectangle textures. Previously, the necessary texcoord conversion was applied to the texture coordinate during vertex processing in a render stage. This is obviously wrong when fragment programs are used, which can calculate arbitrary coordinates for TEX instructions. Therefore, we now inject an appropriate MUL instruction before a TEX that reference a rectangle texture.
2007-03-24r300: No assertion when accessing incomplete texture images.Nicolai Haehnle
There used to be an assertion when a fragment program accesses an incomplete texture image. Work around this assertion. Note: I am unsure whether this workaround produces the desired result (0,0,0,1) on all hardware.
2007-03-24r300: Fix: KIL instruction don't require texturesNicolai Haehnle
When no textures were enabled, a KIL instruction triggered an assertion in r300_setup_rs_unit.
2007-03-23r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-21merge from masterBrian
2007-03-21r300: Remove the program-global const_sin indexNicolai Haehnle
The index is no longer necessary to share constants between multiple SIN/COS/SCS instructions inside a single fragment program, and storing a tiny implementation detail like this in the fragment_program structure itself was just nasty.
2007-03-20r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-19r300: Cleanup fragment program constant allocation, share constantsNicolai Haehnle
The constant/parameter allocation was significantly simplified, removing one unnecessary copy operation of parameters. The dirty state tracking is unchanged and far from optimal, since all state is always re-fetched. Constants and parameters are now emitted only once, which significantly reduces the resource pressure on larger programs.
2007-03-19r300: Fix special case (tmp.x <= 0) in fragment program LIT instructionNicolai Haehnle
Also, fix a typo in a related comment.
2007-03-19r300: Clear fragment program instruction slots on first useNicolai Haehnle
Make sure that instruction slots are fully initialized with NOPs during find_and_prepare_slot(). This fixes a bug when a fragment program was translated more than once (e.g. due to a second call to glProgramStringARB). This partially fixes glean/fragProg1.
2007-03-19r300: Dump fragment program after translation if RADEON_DEBUG=pixel is setNicolai Haehnle
2007-03-19r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-19r300: Fix WRITEMASK handling when writing to result.depthNicolai Haehnle
This is a necessary change to emit the right instructions when writing to result.depth. However, even with this test, Z-write doesn't work properly, and I don't fully understand why. In addition to this, we'll at least have to disable early-Z, but even that doesn't seem to be enough.
2007-03-19r300: Streamlined fragment program LIT implementationNicolai Haehnle
Fix a bug in the LIT implementation (clamp exponent to 128, not 0.5) and change the implementation around. In theory, the new implementation needs as little as 5 instruction slots. Unfortunately, the dependency analysis in find_and_replace_slot is not strong enough to look at individual components of a register yet.
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: Fragment program dumps format tex instructionsNicolai Haehnle
2007-03-19r300: Fix hw fragment program dumpNicolai Haehnle
Dumps of fragment programs were incorrect when the program consisted of multiple nodes. Also, improved the formatting a bit.
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-18r300: Removed the deprecated $XFree86$ CVS keywords.Oliver McFadden
2007-03-18r300: Corrected the string for polygon mode; it wasn't updated from unkXXX.Oliver McFadden
2007-03-17r300: change vendor string to DRI R300 ProjectDave Airlie
2007-03-15r300: Added _mesa_copy_instructions.Oliver McFadden
2007-03-15r300: Renamed r300_vertexprog.c to r300_vertprog.cOliver McFadden
2007-03-15r300: Use _mesa_alloc_instructions/_mesa_init_instructions instead of malloc.Oliver McFadden
Note that insert_wpos in r300_vertexprog.c is still a little flaky and could be improved.
2007-03-15r300: Updated R300 to use the new SWIZZLE macros.Oliver McFadden
2007-03-15r300: Fixed an unused variable warning and removed some cruft, too.Oliver McFadden
2007-03-15r300: Fixed a printf conversion warning.Oliver McFadden
2007-03-15r300: Fixed "no previous prototype for 'r300RefillCurrentDmaRegion'" warning.Oliver McFadden
2007-03-15Committed Rune Petersen's fragment.position patch (Bug #10024) plus a few smallOliver McFadden
corrections.
2007-03-13r300: Renamed the CACHE_CTLSTAT values to include UNKNOWN in the name; notOliver McFadden
enough information is known about them to be sure as to what the values mean.
2007-03-13Add defines for the values written to R300_RB3D_ZCACHE_CTLSTAT.Oliver McFadden
Note that just like the values written to R300_RB3D_DSTCACHE_CTLSTAT these values are really unknown; ideally more reverse engineering should be done to determine what these values mean and when they should be set.
2007-03-13Documented the value written for R300_TX_CNTL cache flush.Oliver McFadden
2007-03-13Corrected values written to R300_RB3D_DSTCACHE_CTLSTAT to eitherOliver McFadden
R300_RB3D_DSTCACHE_02 or R300_RB3D_DSTCACHE_0A, rather than hexadecimal values.
2007-03-13Guess another unknown register used for R300 pacification.Oliver McFadden
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-03-09Merge branch 'origin' into glsl-compiler-1Brian
Conflicts: src/mesa/main/context.c
2007-03-09r300: Also update window state when it's already bound but its stamp changed.Michel Dänzer
And set new cliprects before deriving other state from them. This ensures cliprects aren't accessed after having been freed. Thanks to Panagiotis Papadakos for testing various iterations of this.
2007-03-06r300: Call radeonSetCliprects from radeonMakeCurrent.Michel Dänzer
Based on a patch by Panagiotis Papadakos. Among other things, this makes sure the framebuffer object associated with the drawable has the correct size when _mesa_make_current is called, so the default viewport is set up correctly. Also update radeon->lastStamp in radeonSetCliprects.
2007-03-01r300: Use register name & add a register about shading.Christoph Bill
2007-03-01r300: Use reg definition when available & add missing reg definition.Christoph Bill