summaryrefslogtreecommitdiff
path: root/src/mesa
AgeCommit message (Collapse)Author
2010-02-05st/mesa: allow negative index for PROGRAM_STATE_VARBrian Paul
The piglit vp-address-01 test uses negative address-relative offsets. In this test we're indexing into PROGRAM_STATE_VAR which, in turn, contains references to ENV vars. We previously fixed this issue for PROGRAM_CONSTANT. piglit/vp-address-01 (the version from Feb 5) passes now. (cherry picked from commit 64be837b0b171c44f47a3c0b83f566d292ffff50)
2010-02-05mesa: debug output for ARLBrian Paul
2010-02-05osmesa: Add OSMesaColorClamp and OSMesaGetProcAddress to symbol defs.Brian Paul
Without this patch, the two symbols get an underscore prepended and an "@4" appended when compiling with VC8. Signed-off-by: Brian Paul <brianp@vmware.com> (cherry picked from commit e65029e9b32ddabea0ec583c04484345b40f1557)
2010-02-05glapi: Add back the reduced Noop dispatchKristian Høgsberg
This got "simplified" away in e4f168a6f4911a096be97d2e83ef8ad9c5862ec0.
2010-02-05st/mesa: 'fix' point coord semantic infoBrian Paul
This fixes the progs/glsl/pointcoord.c demo. But this isn't a proper fix. We really need a TGSI_SEMANTIC_POINT_COORD label so that the draw module can determine which fragment input / vertex output slot needs to be set up with the point coordinate info. We've been using generic slot 0 so far. This would also require telling the draw module about fragment shaders (something it doesn't have at this time).
2010-02-05r200: Optimize polygon stipple emit.Pauli Nieminen
Only emit polygon stipple when the state is enabled.
2010-02-05r200: Add trace logging to r200PointSize.Pauli Nieminen
2010-02-05Merge commit 'fj/mesa-next'Keith Whitwell
2010-02-05r100: Add the polygon stipple state to the state list.Pauli Nieminen
This fixes glean paths test case.
2010-02-04mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul
GL_TRUE indicates that the driver accepts the program. GL_FALSE indicates the program can't be compiled/translated by the driver for some reason (too many resources used, etc). Propogate this result up to the GL API: set GL_INVALID_OPERATION error if glProgramString() was called. Set shader program link status to GL_FALSE if glLinkProgram() was called. At this point, drivers still don't do any program checking and always return GL_TRUE.
2010-02-04r200: Add the polygon stipple state to the state list.Pauli Nieminen
This fixes glean paths test case.
2010-02-04r200: Add logging for glPolygonStripple.Pauli Nieminen
2010-02-04radeon: Make debugging automaticaly increase logging verbosity for debug build.Pauli Nieminen
DEBUG preprocessor macro is set by configure script when --enable-debug is passed for configure. Radeon then just increase debugging verbosity if DEBUG is set in compile time.
2010-02-04Import a classic DRI driver for nv0x-nv2x.Francisco Jerez
2010-02-04gallium: add point_quad_rasterization bit to rasterizer stateRoland Scheidegger
This determines if points should be rasterized according to GL point rules or as normal quads (GL point sprites / d3d points / d3d point sprites).
2010-02-04gallium: add point size clamp to implementation limits in vertex shaderRoland Scheidegger
The point size min/max registers (unused by mesa state tracker) were removed since most hardware couldn't do much with them. However, we don't want to have to rely on hw to do point size clamping correctly to implementation dependent limits, hence have to do that in the vertex shader. This should also solve a potential problem with (non-AA) points smaller than 1.0 which according to OGL still have size 1.0. Note that OGL point rendering is odd, in particular point sprites are rasterized differently to points. Some hardware might support those different modes, but in any case the different clamping values used for smooth/multisampled/sprite enabled points might help a bit for hw which rasterizes points the same as point sprites. Also tweak mesa's ff to vertex shader translation so don't have to clamp twice in case of point attenuation.
2010-02-04r600: reduce number of cache flushesAlex Deucher
We don't need to flush so often. Next step would be to move the flushing to the drm and only flush after each command buffer rather than each draw.
2010-02-04swrast/sse: Fix _mesa_sse_transform_pointsX_3d_no_rotPauli Nieminen
PXOR user in code were causing the lowest SP float register to have NaN values which made all math operations in that slot fail. Correct istruction to clear float registers is XORPS which handles single precission floats correctly. Fixes progs/tests/fog in swrast SSE mode. Now the correct commit instead of 66d09e4a2a6b770ddb which is not even close of correct fix for the bug.
2010-02-03st/mesa: Remove unnecessary headers.Vinson Lee
2010-02-04Revert "mesa: fix transform_points_3d_no_rot using undefined values in %xmm0"Pauli Nieminen
This reverts commit 4c31632817a0bde28ad6c9ee8032d838ce4b7bfb.
2010-02-03mesa: increase number of texture units to MAX_COMBINED_TEXTURE_IMAGE_UNITSBrian Paul
We were misinterpretting GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS previously. It's the number of texture units for which we need to keep state; not just the total number of texture units addressable by the vertex shader plus fragment shader. Since sw Mesa independently supports 16 texture units in vertex shaders and 16 texture units in fragment shaders, the max combined units is 32. Note that the docs for glActiveTexture() indicate the max legal unit is MAX(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, MAX_TEXTURE_COORDS) - 1. A new piglit test (texunits.c) tests the various texture unit limits. I'm pretty sure I've got this all right now, but additional reviews are welcome...
2010-02-03mesa: re-dimension RasterTexCoords and CoordReplaceBrian Paul
These are limited to the number of texture coordinate units.
2010-02-03mesa: added texcoord unit assertionBrian Paul
2010-02-03mesa: use Elements() instead of MAX_TEXTURE_COORD_UNITSBrian Paul
2010-02-03mesa: added tex unit assert, use Elements() macroBrian Paul
2010-02-03mesa: check for invalid texture coord unit in glGet queriesBrian Paul
2010-02-03mesa: check/clamp texture/program matrix accessesBrian Paul
Further testing should reveal if any these assertions are hit...
2010-02-03mesa: add error check for querying invalid texture matrixBrian Paul
2010-02-03mesa: use Elements() as limit in loops over texture/program matrix stacksBrian Paul
2010-02-03mesa: add out of bounds assertions for accessing texture matrix stackBrian Paul
2010-02-03Merge branch 'gallium-embedded'José Fonseca
2010-02-03gallium: clean up point sprite rasterizer stateRoland Scheidegger
Don't need sprite coord origin per coord. Also, don't need separate sprite enable bit - if all coords have it diabled, then there are no point sprites (technically, there's a distinction in pre-GL3, but it only differs in having more leniency in clamping to max size, something the state tracker would need to handle and the hardware won't bother anyway). Also, use packed field for the per-coord enables. All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
2010-02-03mesa: Factor out the fb initialization details from _mesa_new_framebuffer.Francisco Jerez
This should make things easier for drivers wanting to work with a "subclass" of gl_framebuffer. The complementary "_mesa_initialize_framebuffer" function is now called "_mesa_initialize_window_framebuffer" for the sake of symmetry. Signed-off-by: Brian Paul <brianp@vmware.com>
2010-02-03vbo: fix void * arithmetic warningKeith Whitwell
2010-02-03vbo: Fix up in-place splitting for non-contiguous/indexed primitives.Francisco Jerez
The in-place splitting code wasn't dealing with index buffers at all (and it was being called from vbo_split_prims for too big index buffers, causing some occasional corruption). Additionally, it wasn't taking into account primitives arrays with non-contiguous indices (e.g. given prim[0].start = 0 and prim[1].start = max_verts, it would happily call back the driver with (max_index - min_index) still greater than max_verts, causing infinite recursion). It still doesn't handle too large indexed vertex buffers: use vbo_split_copy for that.
2010-02-03mesa/st: bump the gallium version numberKeith Whitwell
This is a very informal version number, but there have been enough changes that a bump is appropriate at this time.
2010-02-03st/mesa: remove some floating point divides in viewport calculationKeith Whitwell
Compiler can't usually turn x/2.0f into x * 0.5f, though we're happy with either.
2010-02-03r300: fix compiler bugs introduced with MRT changes.Dave Airlie
the first looks like a definite bug, the second I'm not so confident of but it works. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-02Track frag shader changes introduced by commit ↵Scott Moreau
4769566500be1a53dd9b4cc1a613aef439a0e3d8 Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
2010-02-02mesa: Add a BITSET_FFS function.Francisco Jerez
It will be useful for the nouveau DRI driver and IMHO there's no reason to keep it private. Signed-off-by: Brian Paul <brianp@vmware.com>
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2010-02-02r300compiler: Add MRT number to debugging output.Corbin Simpson
2010-02-02r300compiler, r300 classic, r300g: Add support for MRTs in the frag shader.Corbin Simpson
This maybe breaks the vert compiler. Hopefully not.
2010-02-02r200: Fix EXT_fogcoord rendering.Pauli Nieminen
The fogcoord calue was not pushed to GPU because of implicit float to int conversion. Fix is to use float pointer to buffer object so no conversion is done in assigment
2010-02-01st/mesa: fix texture deallocation bugBrian Paul
This fixes a bug reported by Christoph Bumiller on mesa3d-dev. When a texture is first created as RGBA, then re-defined with glTexImage(internalFormat=GL_DEPTH_COMPONENT) we failed to deallocate the original texture. When this texture was bound as a FBO surface, the depth/Z surface format was RGBA instead of Z. Depending on the driver this led to a failed assertion or FBO validation failure. This patch does three things: 1. Remove ancient code that mysteriously tested if we were replacing the smallest mipmap level and tested if the texture was not a cube map texture. I can't see any reason for those tests. 2. Move the width=height=depth=0 test to after the code which frees texture data. Calling glTexImage with width=height=depth=0 and data=NULL is a way to free a single mipmap level. 3. Update the code comments. There are no apparent conform, glean or piglit regressions from this change. (cherry picked from commit 43e4b584227534e30e487e7fb7e99d6501cbcd85)
2010-02-01mesa: change _mesa_find_free_register() to find multiple free regsBrian Paul
Before, _mesa_find_free_register() would scan the given shader to find a free/unused register of the given type. But subsequent calls would return the same register again. This caused a failure in the _mesa_remove_output_reads() function which sometimes needs several free temps. Now use a new function which build a vector of 'used' flags and another function which searches that vector for an unused register starting at a position that's incremented for each call. Fixes fd.o bug 26317. Note that a regression test for this has been added to the glean/glsl1 test. (cherry picked from commit e0d01c9d7f46ccd531f8dd1a04c5ac067200ef1e)
2010-02-01st/mesa: remove duplicate calculation of fp input mappingKeith Whitwell
This was being calculated the same way in two different places. Now just do it in st_translate_fragment_program().
2010-02-01st/mesa: remove dead stfp input_map arrayKeith Whitwell
Was being calculated and not used. Also was probably incorrect...
2010-02-01mesa: added _mesa_print_vp/p_inputs() functions (debug aids)Brian Paul
2010-02-01glslcompiler: add glapi_nop.o to OBJECTSBrian Paul