Age | Commit message (Collapse) | Author |
|
Basically, the application enables client vertex and color arrays,
renders something, then disables color array, and renders something
else (using vertex array only). Even though the color array is
disabled (and the pointer is no longer valid), the driver still tries
to read color data from this array (which results in an exception).
This is because enabling/disabling array does not trigger
_ae_update_state() and the list of enabled arrays is not updated.
_ae_update_state() it's called on the first state validation only (as
all the "dirty" flags are set at the beginning). Any further change to
client arrays' state has no effect.
|
|
Caught by texturing/gen-teximage test in piglit.
|
|
17173
Also, move GL_TEXTURE_RECTANGLE init code into separate function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Plus, fix some issues with pre-defined preprocessor symbols and version checking.
|
|
|
|
|
|
|
|
GL_TEXTURE_ENV_COLOR, GL_TEXTURE_ENV_MODE
Issues found by Bob Ellison.
|
|
|
|
In glStencilFunc/Op/Mask() set both the front and back-face state, unless
GL_EXT_stencil_two_side is enabled. Before, we only set the front+back state
if GL_ATI_separate_stencil was enabled.
Ultimately, we probably should remove GL_EXT_stencil_two_side since it's
incompatible with GL 2.x.
|
|
|
|
|
|
|
|
|
|
The old implementation could overwrite the caller's param buffer.
|
|
|
|
The old behaviour depended on which texture images the fragment program
reads from, which seems to contradict the shader specifications.
Note: Piglit's general/texgen test checks for this problem.
|
|
|
|
|
|
Basically, set up no-op Delete() methods for the DummyFrame/Renderbuffer objects.
|
|
We don't actually need vertex array[0] enabled when using a vertex
program/shader.
|
|
multisample enable is enabled by default, however gl mandates multisample
rendering rules only apply if there's also a multisampled buffer.
|
|
Since GL_ARB_vertex_buffer_object protocol isn't supported yet, these
changes are innocuous.
|
|
Signed-off-by: Brian Paul <brian.paul@tungstengraphics.com>
|
|
for Z unpacking
|
|
If you have a GPU using this code and it has the offsets up in this space,
this fails.
|
|
Since ARB_fragment_program and friends are defined to ignore the setting of
the GL_TEXTURE_COMPARE_FUNC parameter, we have to explicitly enable the
shadow comparison by marking the texture unit in ShadowSamplers when
appropriate.
|
|
All newly created programs have RefCount == 1, but the fragment program cache
added an additional reference in cache_item, with the result being that none
of the programs were ever freed.
Solve the problem by not creating the additional reference in cache_item.
|
|
Removes some compiler #ifdef stuff.
|
|
|
|
When purging the program hash table, the refcount _should_ be one since
the program is referenced by the hash table. Need to explicitly set to
zero before calling delete().
Also, purge high-level shader hash tables before low-level program hash tables.
|
|
Previously, the shader linker combined the uniforms used by the vertex and
fragment shaders into a combined set of uniforms. This made the implementation
of glUniform*() simple, but was rather inefficient otherwise. Now each shader
gets its own set of uniforms (no more modelview matrix showing up in the
fragment shader uniforms, for example).
cherry-picked by hand from gallium-0.1 branch
|
|
function."
This reverts commit c50ffc4cb89b67ae59208eb72cdb664c846ba987.
I'll fix this using the mipmap hooks I just picked from gallium-0.1
|
|
(cherry picked from commit c3395f4473c8fdf75d04c0dd72e687bc8d8127a7)
|
|
(cherry picked from commit 4c2f3dbca940f289e67248682b84a3516d5a3031)
Conflicts:
src/mesa/drivers/common/driverfuncs.c
|
|
This at least stops the compiz brain explosion we were seeing, I do wonder
though if we should somehow be calling intel_generate_mipmap somehow.
|
|
|
|
Use _mesa_reference_vert/fragprog() wherever we assign program pointers.
Fixes a memory corruption bug found with glean/api2 test.
|
|
|
|
Use floor() to convert to int (per Mark Kildard and the SI).
Also, change translate_id() to return a signed integer since we may be
offsetting from GL_LIST_BASE.
|
|
GL_REPLACE_EXT comes from the ancient GL_EXT_texture extension. Found an old demo that
actually uses it.
The values of the GL_REPLACE and GL_REPLACE_EXT tokens is different, unfortunately.
|