In i915_miptree_layout() change the width, height parameters that are passed
to intel_miptree_set_level_info(). As it was, the width, height values were
larger than the source image dimensions and we segfaulted in memcpy() when
copying the original texture data into the texture buffer region.
This fix should probably be checked by someone more familiar with the code (Keith?)
These two assertions are invalid for a couple reasons. Primarily,
when this code is compiled into the X-server, the symbols
"glSecondaryColor3fEXT" and "glPointParameterivNV" do not exist.
With current memory preferences, vbos ended up in AGP space
where reading from them got a bit slow.
Make sure buffer objects are initially created in system memory.
Updated all drivers that used the old _ac_ functions to use
the new _vbo_ functions. I know this fixed the fbdev driver,
it looks like it might fix some other drivers too.
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().
gcc may cast an overflowed float value to an negative int value on i386,
fix it to make sure at least some apps will not crash if it contains wrong normal data.
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[].
use the same internal state as for vertex fog. From the old implemenentation,
this changes a SUB+MUL into a MAD for linear fog, and saves a MUL for EXP/EXP2,
plus saves a (constant) parameter. While here, fix the broken (forgotten)
swizzling. (untested)