Age | Commit message (Collapse) | Author |
|
Also fix a typo in ureg_src().
|
|
|
|
|
|
This previously was used only for decomposed (POINT/LINE/TRI) primitives,
but for some time a full range of primitives could end up in here.
Fixes trivial/lineloop-clip on softpipe, among others.
(cherry picked from commit 87cd8a3b8a2407b30916be418ff2f95dfea5d2ad)
|
|
|
|
|
|
Our fallback realloc path requires an old_size argument, but the posix
varient doesn't need this. Add some code to avoid gcc unused variable
warnings for this extra argument.
|
|
|
|
Much nicer now.
|
|
This is modelled on the nice & easy-to-use facilities we had
for building shaders in mesa, eg. in texenvprogram.c and friends.
Key points include pass-by-value register structs that can be manipulated
in a functional style, eg:
negate(swizzle(reg, X,X,X,X))
and per-opcode instruction functions, eg:
emit_MOV( p, writemask(dst, 0x1), negate(src));
and similar.
Additionally, the interface allows mixed emit of instructions and decls,
which are sorted out internally to obey TGSI ordering.
Immediates may be emitted at any time and are scanned against existing
immediates to try and reduce redundancy.
Not all TGSI functionality is accessible through this interface, but
most or all of what mesa uses should be.
|
|
|
|
|
|
This branch introduces new FRAG_ATTRIB_FACE and FRAG_ATTRIB_PNTC fragment
program inputs for GLSL gl_FrontFacing and gl_PointCoord. Before, these
attributes were packed with the FOG attribute. That made things
complicated elsewhere.
|
|
|
|
|
|
|
|
|
|
Tests if the given buffer object is a user-created, non-default buffer object.
Use this instead of testing bufferobj->Name != 0.
|
|
Fixes cube mapping since the scalar changes.
|
|
This matches brw_wm_pass*.c behavior, and fixes the norsetto shadow demo.
Bug #19489
|
|
|
|
|
|
|
|
|
|
I'll be using this in merging brw_wm_emit.c and brw_wm_glsl.c
|
|
This is preparation for merging of brw_wm_glsl.c and
brw_wm_emit.c, and glsl.c doesn't swizzle channel results around.
|
|
This doesn't fix the glean testcase, but I guess it provides hope.
|
|
|
|
No performance difference proven at 95% confidence with my GLSL demo (n=10).
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The old GLX dispatch table stuff isn't needed (same story for the Mesa/Xlib
driver). The intention of that code was being able to switch on the fly
between the real GLX library and the fake/Xlib-based emulation. That hasn't
been used in a long time.
Next up: some file renaming.
|