summaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* r300: Redirect constant TEX coordinatesNicolai Haehnle2009-02-142-0/+32
| | | | | | | | | | | | | R3xx/R5xx fragment program texture constants must come from a hardware register instead of the constant file, so we redirect if necessary during the native rewrite phase. The symptoms of this bug started appearing when the Mesa fixed function texenvprogram code started using STATE_CURRENT_ATTRIB constants for texture coordinates when the corresponding attributes were constant across all vertices. Signed-off-by: Nicolai Haehnle <[email protected]>
* i965: rewrite the code for handling shader subroutine callsBrian Paul2009-02-136-64/+187
| | | | | | | | | | | | | | | | | | Previously, the prog_instruction::Data field was used to map original Mesa instructions to brw instructions in order to resolve subroutine calls. This was a rather tangled mess. Plus it's an obstacle to implementing dynamic allocation/growing of the instruction buffer (it's still a fixed size). Mesa's GLSL compiler emits a label for each subroutine and CAL instruction. Now we use those labels to patch the subroutine calls after code generation has been done. We just keep a list of all CAL instructions that needs patching and a list of all subroutine labels. It's a simple matter to resolve them. This also consolidates some redundant post-emit code between brw_vs_emit.c and brw_wm_glsl.c and removes some loops that cleared the prog_instruction::Data fields at the end. Plus, a bunch of new comments.
* i965: add missing break for OPCODE_RET caseBrian Paul2009-02-131-0/+1
| | | | This doesn't effect correctness, but we were emitting an extraneous ADD.
* i965: the return value of translate_insn() is never used. Make it void.Brian Paul2009-02-131-4/+3
|
* i965: minor clean-upsBrian Paul2009-02-131-27/+26
|
* i965: code clean-ups, comments, and minor refactoringBrian Paul2009-02-132-37/+65
|
* i965: updated commentsBrian Paul2009-02-131-17/+37
|
* intel: turn on GL_ARB_shading_language_120Brian Paul2009-02-131-4/+0
| | | | | It's done in the Mesa GLSL compiler. The only part of it that might matter in drivers is the centroid sampling option for MSAA.
* i965: more reformatting/clean-upBrian Paul2009-02-131-12/+10
|
* i965: s/__inline/INLINE/Brian Paul2009-02-131-4/+4
|
* i965: formatting and indentation fixesBrian Paul2009-02-131-17/+16
|
* i965: fix inconsistant indentation in brw_wm.cBrian Paul2009-02-131-37/+39
|
* i965: Eric Anholt's patch for bumping up texture sizesRobert Ellison2009-02-131-4/+4
| | | | | | | | | | | | | I'm committing this because it fixes a conform failure; the failure occurs on the TextureProxy test, where the test attempts to create proxy textures at every level, but fails at the last level (border == 1, width == 1, height == 1) because it's beyond MAX_TEXTURE_LEVELS. Eric's original comment was: idr said that in his review swrast was ready for it, and the 965 driver is advertising it already though it has been resulting in many crashes due to arrays using these defines not being big enough.
* mesa: check if TNL state is null in _tnl_free_vertices() to avoid potential ↵Brian Paul2009-02-131-21/+24
| | | | | | | | | segfault _tnl_free_vertices() is called from several places during context tear-down. Depending on the order in which the swrast, swrast_setup and tnl context is destroyed we could hit a null pointer here. This doesn't seem to be an actual issue with any Mesa drivers, but let's be safe.
* mesa: add additional texture size/limit assertionsBrian Paul2009-02-131-5/+13
|
* glDrawBuffers(n==0) is validRobert Ellison2009-02-121-3/+8
| | | | | | | | | | | | | | According to the GL spec, calling glDrawBuffers() with n == 0 is a valid operation (and essentially prevents drawing to any buffers). But _msa_DrawBuffersARB() was producing a GL_INVALID_VALUE error in this case. This fix adjusts the error check, and makes a small change to the ctx->Driver.DrawBuffer() call below to ensure that, if n == 0, Driver.DrawBuffer() is called with GL_NONE and that buffers[0] is *not* referenced in this case (since we don't know whether it is valid). Internal identifier: 365833
* mesa: use new ST_CALLOC_STRUCT() macro in gallium state trackerBrian Paul2009-02-1212-15/+19
|
* mesa: consistantly use mesa memory-functions in gallium state trackerBrian Paul2009-02-1214-37/+37
| | | | | Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc. Still using CALLOC_STRUCT() at this point.
* mesa: don't include m_xform.h where not neededBrian Paul2009-02-127-7/+1
|
* mesa: move _mesa_transform_vector() from m_xform.c to m_matrix.cBrian Paul2009-02-125-26/+25
| | | | | m_xform.c is omitted from gallium builds but _mesa_transform_vector() is still needed.
* mesa: remove unused functions in m_xform.[ch]Brian Paul2009-02-122-87/+0
| | | | | | | | The functions are: _mesa_project_points() _mesa_transform_bounds3() _mesa_transform_bounds2() _mesa_transform_point_sz()
* mesa: restore FLUSH_VERTICES() in _mesa_notifySwapBuffers()Brian Paul2009-02-121-0/+1
|
* mesa: remove empty, unneeded mathmod.h headerBrian Paul2009-02-122-40/+0
|
* Fix an i965 assertion failure on glClear()Robert Ellison2009-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | While running conform with render-to-texture: conform -d 33 -v 2 -t -direct the i965 driver failed this assertion: intel_clear.c:77: intel_clear_tris: Assertion `(mask & ~((1 << BUFFER_BACK_LEFT) | (1 << BUFFER_FRONT_LEFT) | (1 << BUFFER_DEPTH) | (1 << BUFFER_STENCIL))) == 0' failed. The problem is that intel_clear_tris() is called by intelClear() to clear any and all of the available color buffers, but intel_clear_tris() actually only handles the back left and front left color buffers; so the assertion fails as soon as you try to clear a non-standard color buffer. The fix is to have intelClear() only call intel_clear_tris() with buffers that intel_clear_tris() can support. intelClear() already backs down to _swrast_Clear() for all buffers that aren't handled explicitly.
* mesa: refactor MATH_SOURCES, remove Mesa x86 codegen from gallium buildBrian Paul2009-02-111-3/+5
| | | | | | | | Omit math/m_xform.c from gallium builds since it's not used and it's the one place we were pulling in the Mesa x86 codegen which collides with gallium's x86 codegen. Can now omit ASM_C_SOURCES from gallium build too.
* mesa: get rid of _math_init()Brian Paul2009-02-115-17/+8
| | | | | | | | | | | Only VBO uses the evaluator code so call _math_init_eval() there. Only TNL uses the transform/translate code so call _math_init_transformation() and _math_init_translate9) there. This is a step toward resolving some symbol collisions between Mesa's and gallium's x86 codegen. Have VBO and TNL modules call _math_init_transformation()
* glsl: allow setting arrays of samplers in set_program_uniform()Brian Paul2009-02-111-10/+19
| | | | | | | 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.
* glsl: raise GL_INVALID_OPERATION for glUniform(location < -1)Brian Paul2009-02-111-0/+10
| | | | | | | location = -1 is silently ignored, but other negative values should raise an error. Another fix for bug 20056.
* glsl: rework _mesa_get_uniform[fi]v() to avoid using a fixed size ↵Brian Paul2009-02-111-44/+59
| | | | intermediate array
* glsl: fix glUniform() array bounds error checkingBrian Paul2009-02-111-9/+21
| | | | | | | 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.
* glsl: fix incorrect size returned by glGetActiveUniform() for array elements.Brian Paul2009-02-111-8/+25
| | | | Fixes one of the issues in bug 20056.
* mesa: Use the stdio wrappers.José Fonseca2009-02-111-22/+22
| | | | snprint symbol does not exist in Windows.
* mesa: Move statements after declarations.José Fonseca2009-02-111-1/+1
|
* intel: Add x8r8g8b8 visuals to DRI1 fbconfigs alongside a8r8gb8.Eric Anholt2009-02-105-42/+54
| | | | | This involved fixing driConcatConfigs to not return const (which had made a mess of a previous patch too).
* sis: fix signedness warningsEric Anholt2009-02-102-5/+5
|
* trident: Fix signedness warning.Eric Anholt2009-02-101-1/+1
|
* tdfx: Fix begin/endquery for current API.Eric Anholt2009-02-101-4/+4
|
* intel: Don't do the extra MI_FLUSH in flushing except when doing glFlush().Eric Anholt2009-02-101-5/+17
| | | | | Everything other than "make sure the last rendering ends up visible on the screen" doesn't need that behavior.
* intel: Speed up glDrawPixels(GL_ALPHA) by using an alpha texture format.Eric Anholt2009-02-101-5/+6
|
* intel: Fix some state leakage of {Client,}ActiveTexture in metaops.Eric Anholt2009-02-102-0/+10
| | | | Found while debugging cairo-gl.
* intel: don't crash when dri2 tells us about buffers we don't care about.Eric Anholt2009-02-101-0/+3
|
* Merge commit 'origin/gallium-master-merge'Brian Paul2009-02-10169-768/+21060
|\ | | | | | | | | | | | | | | | | | | | | | | This is the big merge of the gallium-0.2 branch into master. gallium-master-merge was just the staging area for it. Both gallium-0.2 and gallium-master-merge are considered closed now. Conflicts: progs/demos/Makefile src/mesa/main/state.c src/mesa/main/texenvprogram.c
| * Merge commit 'origin/gallium-0.2' into gallium-master-mergeBrian Paul2009-02-104-35/+68
| |\
| | * Missing: tgsi: Fix build -- rename Size to NrTokens.Patrice Mandin2009-02-101-1/+1
| | |
| | * mesa: Compare formats using nominal bytes per pixel.José Fonseca2009-02-101-3/+1
| | | | | | | | | | | | | | | | | | | | | This is a temporary fix which works for the formats we care so far. The real fix would be abandon the concept "nominal bytes per pixel" entirely in Mesa, and use macropixels instead, as done in gallium interfaces already.
| | * mesa: fixes for srgb formatsRoland Scheidegger2009-02-091-20/+14
| | | | | | | | | | | | | | | swizzling in fetch/store srgba/sargb functions fixed (consistent with equivalent non-srgb formats now).
| | * fix _mesa_get_teximage for srgb texturesRoland Scheidegger2009-02-091-11/+52
| | |
| * | gallium: Fixups for driCreateConfigs MSAA support.Michel Dänzer2009-02-1012-3/+28
| | | | | | | | | | | | Add the MSAA samples array or make sure its contents are initialized.
| * | mesa: add x86/rtasm/x86sse.c to fix linux-x86 buildBrian Paul2009-02-091-0/+1
| | |
| * | re-add MSAA supportBrian Paul2009-02-0912-35/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry picked from commit f7d80aa00611917bc8ce637136d982b151b8f44f) This also involved adding the new MSAA fields to driCreateConfigs(). Also, re-add prog_instructions->Sampler field for i965 driver. Will have to revisit that.