| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
src/mesa/state_tracker/st_draw.c
|
| | |
|
| |
| |
| |
| |
| |
| | |
use correct number of vertex inputs
fix not running pipeline in case of edgeflags
changes to mesa to tgsi translation still very broken
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.
Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
configure.ac
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
SConstruct
configs/default
configs/linux-dri
|
| | |
| | |
| | |
| | | |
Tristrips are easier for many drivers to handle.
|
| | | |
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | | |
Conflicts:
src/mesa/main/version.h
src/mesa/state_tracker/st_atom_shader.c
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/gallium/drivers/softpipe/sp_quad_blend.c
|
| | |/ |
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | | |
Conflicts:
src/mesa/state_tracker/st_atom_shader.c
src/mesa/state_tracker/st_program.c
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Translate vertex shaders independently of fragment shaders.
Previously tried to make fragment shader semantic indexes always start
at zero and exclude holes. This was unnecessary but meant that vertex
shader translation had to be adjusted to take this into account.
Now use a fixed scheme for labelling special FS input semantics
(color, etc), and another fixed scheme for the generics.
With this, vertex shaders can be translated independently of the bound
fragment shader, assuming mesa has done its own job and ensured that
the vertex shader provides at least the inputs the fragment shader is
looking for. The state-tracker didn't attempt to do anything about
this previously, so it shouldn't be needed now.
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In get_array_bounds we were previously defining a user buffer sized as
(nr_vertices * stride). The trouble is that if the vertex data
occupies less than stride bytes, the extra tailing (stride - size)
bytes may extend outside the memory actually allocated by the app and
caused a segfault.
To fix this, define a the buffer bounds to be:
ptr .. ptr + (nr-1)*stride + element_size
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
stobj is now non-null for the default/null buffer object. Update the
test to check the buffer ID to see if it's a real buffer object.
|
|/ |
|
| |
|
|
|
|
| |
Silences warnings with 64-bit builds. See comments for details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The core reference counting code is centralized in p_refcnt.h.
This has some consequences related to struct pipe_buffer:
* The screen member of struct pipe_buffer must be initialized, or
pipe_buffer_reference() will crash trying to destroy a buffer with reference
count 0. u_simple_screen takes care of this, but I may have missed some of
the drivers not using it.
* Except for rare exceptions deep in winsys code, buffers must always be
allocated via pipe_buffer_create() or via screen->*buffer_create() rather
than via winsys->*buffer_create().
|
|
|
|
|
| |
Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc.
Still using CALLOC_STRUCT() at this point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge commit 'origin/gallium-0.2' into gallium-master-merge
Conflicts:
Makefile
docs/relnotes-7.4.html
docs/relnotes.html
src/mesa/drivers/dri/i965/brw_wm.h
src/mesa/main/imports.c
src/mesa/main/mtypes.h
src/mesa/main/texcompress.c
src/mesa/main/texenvprogram.c
src/mesa/main/version.h
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_save_draw.c
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/gallium/winsys/gdi/SConscript
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
VBO's and user space objects
|
|
|
|
|
|
|
| |
The clean-up call to pipe->set_vertex_buffers() should use the same
number of buffers as the first call.
Signed-off-by: Pekka Paalanen <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
draw time
This will warn the user that the shader being run may be using uninitialized
uniform variables.
|
|
|
|
| |
This is a backport of 8e8208d6db8b764568539784a6473d545dec2265 to gallium-0.1
|
|
|
|
|
| |
We want to use the pipe_buffer_* inlines everywhere, but a pipe context
is not always available nor is it needed.
|
|
|
|
|
| |
Basically, set up one user-space wrapper for all arrays instead of
the individual arrays.
|
| |
|
|
|
|
|
|
| |
missing/null
fixes potential segfaults when vertex arrays are missing
|
| |
|
|
|
|
| |
the aux draw module
|
| |
|
|
|
|
| |
Things broke when vertex position wasn't the first attribute.
|
| |
|
| |
|
| |
|
| |
|