Age | Commit message (Collapse) | Author |
|
|
|
|
|
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
|
|
|
|
If a vertex shader uses gl_Vertex, gl_Normal, etc, we need to include them
when the user queries the list of active attributes. Before this we were
just including the user-defined attributes.
|
|
This is a more logical place for this code.
Also add some functions for querying vertex shader input names, types, etc.
|
|
This saves mapping the index buffer to get a bounds on the indices that
drivers just drop on the floor in the VBO case (cache win), saves a bonus
walk of the indices in the CheckArrayBounds case, and other miscellaneous
validation. On intel it's a particularly a large win (50-100% in my app)
because even though we let the indices stay in both CPU and GPU caches, we
still end up waiting for the GPU to be done with the buffer before reading
from it.
Drivers that want the min/max_index fields must now check index_bounds_valid
and use vbo_get_minmax_index before using them.
|
|
|
|
|
|
Reference counting protects DRM lock call from recursive locking that would
cause hang. Code also adds optional debugging output for recursive call that
is compiled only if NDEBUG is not defined.
This code is not 100% thread safe because mesa doesn't include increment and
test atomic operation. There is built-in gcc functions but they are only
available from gcc 4.2.
|
|
|
|
|
|
|
|
|
|
NOTE: THIS REQUIRES AN UPDATED DRM!
|
|
|
|
This reverts part of commit 2c9812e3d346eb07180da520909b142e8afc1c59.
The calls to _mesa_set_vp_override() were causing extra state validation
and caused the gallium state tracker's bitmap cache to get flushed on
every call.
|
|
|
|
glCopyPixels() no longer hits a software fallback when zooming, blending, etc.
|
|
Also, save/restore viewport and texture state in _mesa_meta_copy_pixels()
|
|
possible
|
|
|
|
|
|
|
|
The previous version of framebuffer blit was a quick hack. The new meta
version works pretty well.
|
|
Implement glClear() in terms of quad rendering, implement glBlitFramebuffer()
in terms of glCopyTexImage2D + textured quad, etc.
There have been several places in the drivers where we've implemented
meta rendering similar to this. This is an effort to do it in a more
portable and more efficient form.
The _mesa_meta_begin/end() functions act like glPush/PopAttrib() but are
lighter-weight. Plus, _mesa_meta_begin() resets GL state back to default
values (texturing off, identity vertex transform, etc) so the meta drawing
functions don't have to worry about it.
For now only _mesa_mesa_blit_framebuffer() and _mesa_meta_clear() are
implemented. glDrawPixels() and glCopyPixels() would be the next candidates.
|
|
|
|
|
|
|
|
|
|
This patch can fix /progs/fp/tri-depth, tri-depth2, tri-depthwrite,
tri-depthwrite2 and point-position.
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit b8e638d4895d2d342306bb6443a455f73903ce20.
Now that the known hangs and misrendering issues are fixed, I'm ready to
start encouraging it by default again.
|
|
Otherwise, we would address beyond the end of our buffers. Fixes reliable
GPU segfault with texture_tiling=true and oglconform shadow.c.
Bug #22406.
|
|
|
|
|
|
This showed a 1.9% (+/-.3%, n=3) improvement in OA performance with high
geometry settings.
|
|
|
|
I have no idea why this fixes things, but being more efficient sounds good
anyway. Fixes regression in 99d07d0f91ddd37926d08f4e7f10d55cac28d9a7
where most of the lit half of the world was not drawn.
|
|
|
|
This fixes crash in r200 KMS driver when pSAREA was set to 1 randomly because of memory wasn't cleared.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
|
|
This fixes crash in r200 KMS driver when pSAREA was set to 1 randomly because of memory wasn't cleared.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
|
|
Called from core Mesa now.
|
|
We don't use the vertex program in these functions and the driver may
install its own. This fixes the broken glCopyPixels swrast fallback in
i965 and possibly other drivers. In particular, glCopyPixels sometimes
didn't work because the fixed-function fragment program was replacing all
fragment colors with the current raster color.
|
|
|
|
|