Age | Commit message (Collapse) | Author |
|
This uses a stamp mechanisms to mark the DRI drawable as invalid.
Instead of immediately updating the buffers we just bump the drawable
stamp and call out to DRI2GetBuffers "later".
"Later" used to be at LOCK_HARDWARE time, and this patch brings back
callouts at the points where we used to call LOCK_HARDWARE. A new function,
intel_prepare_render(), is called where we used to call LOCK_HARDWARE,
and if the buffers are invalid, we call out to DRI2GetBuffers there.
This lets us invalidate buffers only when notified instead of on
every glViewport() call. If the loader calls the DRI invalidate
entrypoint, we disable viewport triggered buffer invalidation.
Additionally, we can clean up the old viewport mechanism a bit,
since we can just invalidate the buffers and not worry about
reentrancy and whatnot.
|
|
|
|
So far the frontbuffer was only being flushed on st_glFlush and
st_glFinish, however, a co-state tracker may need to make sure that
any frontbuffer changes are already on its way to the actual front.
The dri2 state tracker will need this for event-driven GL applications
to resize properly (It could also be done calling "dri_flush_frontbuffer",
but that way we would flush unnecessarily in the double-buffered case).
Additionally this patch avoids flushing the mesa rendering cache if
PIPE_FLUSH_RENDER_CACHE wasn't specified.
|
|
Core Mesa will not call ctx->Driver.CheckQuery() if the Ready flag
is already set.
|
|
|
|
|
|
|
|
|
|
When a buffer invalidation event is received from the X server, the
"invalidate" hook of the DRI2 flush extension is executed: A generic
implementation (dri2InvalidateDrawable) is provided that just bumps
the "pStamp" sequence number in __DRIdrawableRec.
For old servers not supporting buffer invalidation events, the
invalidate hook will be called before flushing the fake front/back
buffer (that's typically once per frame -- not a lot worse than the
situation we were in before).
No effort has been made on preserving backwards compatibility with
version 2 of the flush extension, but I think it's acceptable because
AFAIK no released stack is making use of it.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
|
|
|
|
Remove const qualifier from _mesa_HashLookup() table parameter to
avoid LOCK/UNLOCK warnings in the function body.
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 3094adb3caeb90124359db2356df3bf8ee94800a)
|
|
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 7c7247ddbf6e3f7f93e44c1cb52490044f1a2215)
|
|
Seems to be a regression from commit 60b08eb1fdf287d28ec66b9282513ab35a61aee0.
(cherry picked from commit c5a4cfb03ff17955c049f16ac805f5837ea4b633)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To reduce casting elsewhere...
|
|
|
|
__builtin_clz with parameter 0 has undefined value. When
using -O3 optimizing this would result to too large next
power of two value.
Fix is to check if passed value is 1 and modify formula
for that case.
|
|
|
|
|
|
|
|
|
|
Add explicit casts, fix constant types, fix variable types.
Fixes about 340 warnings in MSFT Visual Studio.
|
|
This extension is now implemented in the GLSL compiler so it can be
enabled by other drivers where applicable.
|
|
For GL_ARB_fragment_coord_conventions.
This only applies to gl_FragCoord and controls pixel center origin and
pixel center integer. For example:
layout (origin_upper_left, pixel_center_integer) varying vec4 gl_FragCoord;
This features introduces the idea of re-declaring variables with a changed
type. This may also apply to arrays in some cases but that's not
implemented at this time.
|
|
Note: because of a weird dependency checking bug, a 'make clean' may be
needed before recompiling.
|
|
|
|
Still used by some applications.
|
|
Python does not have the function abort.
|
|
|
|
|
|
|
|
|
|
This fixes invalid calls to rastpos_point/line/tri() that can occur
when glRasterPos() is called while in feedback or selection mode.
(cherry picked from commit b3c7dc6ff232eb4c5ff6b0ddcfa90bcb56f78df1)
|
|
Don't use pipe->draw_range_elements() if min_index=max_index=~0 since
that doesn't provide any useful info.
Also, implement the loop around pipe->draw_range_elements() when
nr_prims > 1.
|
|
|
|
|
|
|
|
Now that we track the global name in struct intel_region, we can just
look it up there.
|
|
|
|
We just threw it away before, but we haven't had a use for it yet.
|
|
|
|
This reverts commit 325614a882f5371da512536e07c443a172ffb87c.
Ok this was already fixed this commit actualy broke things
|
|
To avoid kernel complaining and to set proper boundary on
vbo, substract the vbo offset to the vbo size.
|