The new array features, precision/invariant/centroid qualifiers, etc. were
done a while back. The glGetString(GL_SHADING_LANGUAGE_VERSION) query returns
"1.20" now (for drivers that support it anyway).
(cherry picked from master, commit f59719c6c7)
This fixes a bug found with swizzled array indexes such as in "array[index.z]"
where "index" is an ivec4.
(cherry picked from master, commit 6eabfc27f1)
Arrays of sampler vars haven't been tested much and might actually be broken.
Will need to be revisited someday.
Another fix for bug 20056.
(cherry picked from master, commit 2b4f0216bf)
location = -1 is silently ignored, but other negative values should raise
an error.
Another fix for bug 20056.
(cherry picked from master, commit 234f03e90a)
If too many array elements are specified, they're to be silently ignored (don't
raise a GL error).
Fixes another issue in bug 20056.
(cherry picked from master, commit 2c1ea0720d)
This fixes a regression introduced in 46ae1abbac
Break program validation into two steps, do part before texture state
validation and do the rest after:
1. Determine Vertex/Fragment _Enabled state.
2. Update texture state.
3. Determine pointers to current Vertex/Fragment programs (which may involve
generating new "fixed-function" programs).
See comments in the code for more details of the dependencies.
(cherry picked from master, commit 537d3ed6f3)
Program state needs to be updated before texture state since the later depends
on the former.
Fixes piglit texgen failure. The second time through the modes (press 't'
three times) we disable the fragment program and return to conventional texture
mode. State validation failed here because update_texture() saw stale fragment
program state.
(cherry picked from master, commit 46ae1abbac)
On newer GCC releases, the compiler's headers have been split between
the include and include-fixed directories. Add both if the directories
exist.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
(cherry picked from master, commit a3d223f0d2)
If we had a vertex shader but no fragment shader (i.e. fixed function) we
didn't get the right enabled texture targets.
Fixes blank/white texture problem.
(cherry picked from master, commit b46611633c)
Handle the case where there's no per-vertex texcoords but the fragment shader
needs texcoords.
Fixes piglit shaders/fp-generic/dph test.
(cherry picked from master, commit f6d23943cd)
Fixes piglit shaders/fp-incomplete-tex test.
(cherry picked from master, commit 1df62651b2)
Conflicts:
src/mesa/swrast/s_fragprog.c
Also updated the fetch_texel_lod(), fetch_texel_deriv() functions to match
those in git/master.
We were hitting the assertion when we ran out of registers, which can happen.
Also, add some additional assertions and freshen up some comments.
(cherry picked from master, commit 0744805d58)
Some apps won't run w/ indirect rendering contexts.
Also, consolidate some context-init code in new init_glx_context() function.
(cherry-picked from master, commit 49e80bf6b1)
We only wanted to request when asked for the same set of buffers when a resize
has happened. We can just watch the protocol stream for a ConfigureNotify
and flag to do it then.
This is about a 5% win from doing two glViewport()s per frame in openarena.
Fixes bug 19835. However, a more elaborate fix should be implemented someday
which uses proper reference counting for gl_array_object.
(cherry picked from master, commit 88e0b92a74)
Previously, "in-place" swizzles such as:
MOV t, t.xxyx;
were handled incorrectly. Fixed by splitting the one loop into two loops so we
get all the refs before assigning them (to avoid potential clobbering).
(cherry picked from master/commit faa48915d2)