Age | Commit message (Collapse) | Author | Files | Lines |
|
This avoids hangs when the vblank sequence numbers are not in sync between
pipes, in particular when they run at different refresh rates.
|
|
|
|
This should be safe now that we no longer use the MI_WAIT_FOR_EVENT instruction
incorrectly and should also work correctly with applications that render to the
front buffer.
|
|
The MI_WAIT_FOR_EVENT instruction does not support waiting for several events
at once, so this should fix the lockups with page flipping when both pipes are
enabled.
|
|
Fixes issues with apps that don't call glViewport by default.
|
|
Don't flip (up to twice) immediately but just arrange things such that the
pages will be in sync on both pipes on the next flip.
|
|
|
|
|
|
Also move vsync related state from context to window, so it's possible to
schedule several flips ahead of time with triple buffering.
|
|
Pending flips are tracked per renderbuffer and the colour renderbuffer
attachments of window framebuffer objects are rotated on flips to avoid
stalling the pipeline for pending flips unnecessarily.
|
|
|
|
|
|
intel_get_rb_region already takes the current page into account.
This would result in broken rendering when multiple 3D windows are visible
and the pages are reversed.
|
|
No longer track page flipping state per context but per window, via struct
intel_framebuffer which wraps struct gl_framebuffer for windows.
|
|
|
|
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.
|
|
git+ssh://geckosenator@git.freedesktop.org/git/mesa/mesa
|
|
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().
|
|
|
|
|
|
|
|
|
|
batch buffer after a resolution / rotation switch.
|
|
Wait until getting the right fence if drm/i915 resets the
counter.
|
|
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)
|
|
|
|
Use the same input map handling for fftnl and vertex programs. It doesn't
enable any new functionality (should make it easy to support per-vertex
materials though), but the code is much cleaner.
|
|
Use new internal state to avoid per-vertex normalization of static spot
direction vector. Use internal state for simpler per-vertex fog computations
(MAD instead of SUB/MUL for linear fog, EX2 instead of POW for EXP/EXP2 fog).
Simplify point size calc (2 MADs instead of MOV, MUL, MUL, DP3), and while
there fix it up (RSQ instead of RCP). All untested...
|
|
Redirect all VERT_RESULT_HPOS writes to a temp and use that for fixup.
The viewport transformation still seems to take some shortcuts, and it
still does not seem to work at all...
|
|
|
|
|
|
ARB_vp requires vertex transformation to be invariant to fixed function tnl
if the position_invariant option is used. So the same function needs to be
used, otherwise z-fighting artifacts may happen with applications which rely
on the results being really the same due to precision issues when dealing with
floating point values (may not be a problem when using a non-optimizing
compiler strictly following IEEE rules).
|
|
|
|
|
|
This fixes the *actual* bug that the previous commit was supposed to fix..
|
|
|
|
|
|
The old code suffered from a number of issues, the most severe being that
with the Mesa VBO merge even swtcl used the driver's bufferobj interface.
On most VBO types (or non-AGP cards) the buffer ended up in vram, and
killed swtcl performance greatly. All bufferobj's start in system memory
now, until they get referenced as a "real" VBO.
The other big change is that only potentially "damaged" areas are
uploaded/downloaded to/from the hardware.
|
|
Else we read memory we just released, in for statement.
|