summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* i965: Fix transform feedback of gl_ClipVertex.Paul Berry2012-01-051-5/+8
| | | | | | | | | | | | | | | | | | | | | | | Previously, on i965 Gen6 and above, we weren't allocating space for gl_ClipVertex in the VUE, since the VS was automatically converting it to clip distances. This prevented transform feedback from being able to capture gl_ClipVertex. This patch goes aheads and allocates space for gl_ClipVertex in the VUE on Gen6 and above. The old behavior is retained on Gen5 and below, since (a) transform feedback is not yet supported on those platforms, and (b) those platforms don't currently support gl_ClipVertex anyhow. Note: this constitutes a slight waste of VUE space for shaders that use gl_ClipVertex and don't use transform feedback to capture it. However, that seems preferable to making the VUE map (and all of the state that depends on it) dependent on transform feedback settings. Fixes Piglit test "EXT_transform_feedback/builtin-varyings gl_ClipVertex". Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Fix transform feedback of gl_PointSize.Paul Berry2012-01-052-2/+14
| | | | | | | | | | | | | | | On i965 Gen6 and above, gl_PointSize is stored in component W of the first VUE slot (which corresponds to VERT_RESULT_PSIZ in the VUE map). Normally we store varying floats in component X of a VUE slot, so we need special case logic for gl_PointSize. For Gen6, we do this with a ".wwww" swizzle in the GS. For Gen7, we shift the component mask by 3 to select the W component. Fixes Piglit test "EXT_transform_feedback/builtin-varyings gl_PointSize". Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Fix extra memset in store_tfeedback_info()Paul Berry2012-01-051-4/+3
| | | | | | | | | | | | | | Commit 9d36c96d6ec9f2c05c8e0b9ef18c5462cddee8c1 (mesa: Fix glGetTransformFeedbackVarying()) accidentally added an extra memset() call to the store_tfeedback_info() function, causing prog->LinkedTransformFeedback.NumBuffers to be erased. This patch removes the extra memset and rearranges the other operations in store_tfeedback_info() to be in the correct order. Fixes piglit tests "EXT_transform_feedback/api-errors *unbound*" Reviewed-by: Eric Anholt <[email protected]>
* swrast: use memmove() instead of memcpy() in the SHIFT_ARRAY macroBrian Paul2012-01-051-1/+1
| | | | | | | | | | | The src/dst arrays would overlap but dst was less than src so a simple version of memcpy() would do the right thing. But this isn't guaranteed when memcpy() is optimized. Fixes demos/copypix when the dest region was clipped by the left side of the window. Reviewed-by: Adam Jackson <[email protected]>
* st/mesa: add support for gl_ClipDistanceBryan Cain2012-01-052-5/+61
|
* gallium: add support for clip distancesBryan Cain2012-01-054-11/+39
|
* glx/dri2: print FPS when env var LIBGL_SHOW_FPS is 1 (v2)Marek Olšák2012-01-051-1/+34
| | | | | | | | | This is useful for apps which don't print FPS. Only enabled in SwapBuffers. v2: track state per drawable, use libGL prefix Reviewed-by: Michel Dänzer <[email protected]>
* r300/compiler: fix buffer underflow when setting SEM_WAIT on last instructionMarek Olšák2012-01-052-4/+4
| | | | | | Do it after we check whether inst_end != -1. Also move the code structure at the beginning of r300_fragment_shader_code to detect underflows easily with valgrind.
* u_vbuf: use cso_cache to cache vertex element statesMarek Olšák2012-01-051-10/+47
| | | | Improves performance to 28 fps in Cogs.
* u_vbuf: implement another upload codepath which unrolls indicesMarek Olšák2012-01-053-28/+121
| | | | | | | Improves performance from cca 1 fps to 23 fps in Cogs. This new codepath is not always used, instead, there is a heuristic which determines whether to use it. Using translate for uploads is generally slower than what we have had already, it's a win only in a few cases.
* u_vbuf: cleanup variable names to be consistentMarek Olšák2012-01-051-13/+11
|
* u_vbuf: cleanup the computation of how many vertices to upload/translateMarek Olšák2012-01-051-16/+23
|
* u_vbuf: convert min_index,max_index to start,countMarek Olšák2012-01-051-19/+26
|
* util: add helper function util_dump_draw_infoMarek Olšák2012-01-052-0/+34
|
* trace: dump primitive restart infoMarek Olšák2012-01-051-0/+3
|
* translate: implement translation of 10_10_10_2 typesMarek Olšák2012-01-051-0/+148
| | | | | | | | | This is for GL_ARB_vertex_type_2_10_10_10_rev. I just took the code from u_format_table.c. It's based on pack_rgba_float. I had no other choice. The u_format hooks are not exactly compatible with translate. The cleanup of it is left for future work. Reviewed-by: Dave Airlie <[email protected]>
* translate: implement translation of (pure) integer formatsMarek Olšák2012-01-051-94/+252
| | | | | | | The conversion is limited to only a few cases, because converting to any other type shouldn't happen in any driver. Reviewed-by: Dave Airlie <[email protected]>
* u_format: implement fetch_rgba_uint and fetch_rgba_sint for integer formatsMarek Olšák2012-01-053-4/+32
| | | | | | | | | | | | | Fetching int as float and vice versa is not allowed. Fetching unsigned int as signed int and vice versa is not allowed either. Doing conversions like that isn't allowed for samplers in OpenGL. The three hooks could be consolidated into one fetch hook, which would fetch uint as uint32, sint as sint32, and everything else as float. The receiving parameter would be void*. This would be useful for implementing vertex fetches for shader model 4.0, which has untyped registers. Reviewed-by: Dave Airlie <[email protected]>
* gallium: add flag PIPE_TRANSFER_MAP_PERMANENTLYMarek Olšák2012-01-0512-6/+57
| | | | | | | | | | | Please see the diff for further info. This paves the way for moving user buffer uploads out of drivers and should allow to clean up the mess in u_upload_mgr in the meantime. For now only allowed for buffers on r300 and r600. Acked-by: Christian König <[email protected]>
* gallium: remove deprecated PIPE_TRANSFER_DISCARDMarek Olšák2012-01-0511-17/+16
| | | | PIPE_TRANSFER_DISCARD_RANGE is defined the same.
* u_vbuf: translate per-vertex, per-instance, and constant attribs separatelyMarek Olšák2012-01-051-104/+236
| | | | | | | We don't wanna convert per-instance or constant (zero-stride) attribs into ordinary vertex attribs. More importantly, the translation of instance attribs now finally works.
* u_vbuf: take start_instance into account when uploading instanced attribsMarek Olšák2012-01-051-2/+4
|
* u_upload_mgr: remove the 'flushed' parameterMarek Olšák2012-01-059-39/+18
| | | | | | Not used by anybody. Reviewed-by: Brian Paul <[email protected]>
* u_vbuf: don't map user buffers, just obtain a pointer to themMarek Olšák2012-01-051-6/+11
|
* u_vbuf: only map a subrange of buffers to translateMarek Olšák2012-01-051-9/+8
|
* gallium: fix behavior of pipe_buffer_map_rangeMarek Olšák2012-01-055-15/+12
| | | | | | | To match what transfer_map returns. Really, subtracting the offset leads to bugs if someone expects it to work exactly like transfer_map. Reviewed-by: Brian Paul <[email protected]>
* u_vbuf: remove the workaround for half floats and translateMarek Olšák2012-01-051-20/+1
|
* translate: implement translation of half floats in the generic codepathMarek Olšák2012-01-051-0/+21
|
* mesa: Remove the dead Varyings list in the program.Eric Anholt2012-01-052-6/+0
| | | | Reviewed-by: Paul Berry <[email protected]>
* mesa: Fix glGetTransformFeedbackVarying().Eric Anholt2012-01-053-33/+65
| | | | | | | | | | The current implementation was totally broken -- it was looking in an unpopulated structure for varyings, and trying to do so using the current list of varying names, not the list used at link time. v2: Fix leaking of memory into the program per re-link. Reviewed-by: Paul Berry <[email protected]>
* svga: Trim the dri binary a bit on scons release buildsJakob Bornecrantz2012-01-051-1/+5
| | | | Signed-off-by: Jakob Bornecrantz <[email protected]>
* svga: Fix texture cube param capJakob Bornecrantz2012-01-051-2/+2
| | | | | | | Spotted by Thomas Hellstrom. Reviewed-by: Thomas Hellstrom <[email protected]> Signed-off-by: Jakob Bornecrantz <[email protected]>
* tgsi: consolidate TGSI string arrays in new tgsi_strings.hBrian Paul2012-01-057-232/+255
| | | | | | | | | | There was some duplication between the tgsi_dump.c and tgsi_text.c files. Also use some static assertions to help catch errors when adding new TGSI values. v2: put strings in tgsi_strings.c file instead of the .h file. Reviewed-by: Dave Airlie <[email protected]>
* gallium: add STATIC_ASSERT macroBrian Paul2012-01-051-0/+11
|
* mesa: only map src/dest regions in _mesa_copy_buffer_subdata()Brian Paul2012-01-051-6/+7
| | | | | | | We were wastefully mapping the whole source/dest buffers before. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* mesa: print more info in buffer_object_subdata_range_good() error messageBrian Paul2012-01-051-1/+4
|
* st/mesa: 80-column wrappingBrian Paul2012-01-051-1/+2
|
* Revert "configure.ac: remove deprecated --with-driver="Kenneth Graunke2012-01-041-0/+77
| | | | | | | | | This reverts commit 5a478976ae0bb12dd712648d5a9b988dd29c97ef. It broke the build. DRI drivers were no longer being installed by `make install` (and probably not being built at all). It appears to be due to a few small, subtle mistakes, and the fix isn't clear enough to simply commit without going through review. In the meantime, revert it.
* glsl: rename VERSION to VERSION_TOK for automakeMatt Turner2012-01-042-3/+3
| | | | Signed-off-by: Matt Turner <[email protected]>
* configure.ac: bump AC_PREREQ to 2.60Matt Turner2012-01-041-1/+1
| | | | | | All other xorg modules require at least 2.60 (released in 2006), so we may as well increase it to match. It's also doubtful anyone tests the build with 2.59 (from 2003), so it may not even work anyway.
* configure.ac: remove deprecated --with-driver=Matt Turner2012-01-041-77/+0
| | | | See 9e7a4147.
* i965: Enable EXT_texture_integer by defaultIan Romanick2012-01-041-2/+1
| | | | | | Signed-off-by: Ian Romanick <[email protected]> Acked-with-reservations-by: Eric Anholt <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* mesa: Add missing GL_RG_INTEGER casesIan Romanick2012-01-041-0/+39
| | | | | | | | Adds two missing '|| srcFormat == GL_RG_INTEGER' in assertions and a bunch of missing pixel converions cases. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Fix infinite loop regression in intel_miptree_all_slices_resolve.Kenneth Graunke2012-01-041-1/+1
| | | | | | | | | | | | | Commit 0ed11e333147e280208d9d0b3ff3f39970547643 fixed a "use after free" bug by getting the next pointer before deleting the current node. Unfortunately, it also made "next" never get updated if i->need != need. Fixes infinite loops in piglit tests fbo-depth-array and fbo-depthtex. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965/vs: Use the proper dimensionality for the sampler result register.Kenneth Graunke2012-01-041-1/+1
| | | | | | | | | | | | | | | | | | | textureSize() returns an int, ivec2, or ivec3, but never an ivec4. Creating the destination register as an ivec4 triggered later failures, even though the register did hold the proper values. For example, piglit test vs-textureSize-compare calls textureSize on a 2D texture and compares the result to an expected value. Unfortunately, our generated code also tried to compare the third and fourth components which were undefined, and failed. Fixes piglit test vs-textureSize-compare as well as 19 subcases of oglconform's glsl-bif-tex-size test. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44339 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Add missing _NEW_TEXTURE dirty bit to brw_vs_prog state atom.Kenneth Graunke2012-01-041-0/+1
| | | | | | | | | Commit d45814c925dd6c479cfd383b9b59458fc4359cf7 totally added a data dependency on _NEW_TEXTURE, even including the comment, but didn't actually add the dirty bit. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Additional error checks for transform feedback.Paul Berry2012-01-041-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | From the EXT_transform_feedback spec: The error INVALID_OPERATION is also generated by BeginTransformFeedbackEXT if no binding points would be used, either because no program object is active or because the active program object has specified no varying variables to record. ... The error INVALID_VALUE is generated by BindBufferRangeEXT or BindBufferOffsetEXT if <offset> is not word-aligned. Fixes Piglit tests: - EXT_transform_feedback/api-errors no_prog_active - EXT_transform_feedback/api-errors interleaved_no_varyings - EXT_transform_feedback/api-errors separate_no_varyings - EXT_transform_feedback/api-errors bind_offset_offset_1 - EXT_transform_feedback/api-errors bind_offset_offset_2 - EXT_transform_feedback/api-errors bind_offset_offset_3 - EXT_transform_feedback/api-errors bind_offset_offset_5 Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Check that all buffers are bound in BeginTransformFeedback.Paul Berry2012-01-043-2/+22
| | | | | | | | | | | | | | | | | | | | | | | From the EXT_transform_feedback spec: The error INVALID_OPERATION is generated by BeginTransformFeedbackEXT if any transform feedback buffer object binding point used in transform feedback mode does not have a buffer object bound. This required adding a new NumBuffers field to the gl_transform_feedback_info struct, to keep track of how many transform feedback buffers are required by the current program. Fixes Piglit tests: - EXT_transform_feedback/api-errors interleaved_unbound - EXT_transform_feedback/api-errors separate_unbound_0_1 - EXT_transform_feedback/api-errors separate_unbound_0_2 - EXT_transform_feedback/api-errors separate_unbound_1_2 Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Fix typos in transform feedback error messages.Paul Berry2012-01-042-2/+2
| | | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* glsl: Don't use base type for bit-not when there's an errorIan Romanick2012-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | Other parts of the compiler assume that expressions will have well-formed types or the error type. Just using the type of the thing being operated on can cause expressions like ~3.14 or ~false to not have a well-formed type. This could then result in an assertion failure in the context epxression handler. If there is an error processing the expression, set the type of the IR expression to error. Fixes piglit's bit-not-0[789].frag tests. NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42755 Reviewed-by: Kenneth Graunke <[email protected]> Cc: Vinson Lee <[email protected]>