summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers
Commit message (Collapse)AuthorAgeFilesLines
* i965: Fix zeroing of unused attributes in 3DSTATE_SBE.Kenneth Graunke2012-01-091-2/+2
| | | | | | | | | | | | | This brings the code in sync with gen6_sf_state.c; presumably the mistake was a botched rebase on initial Ivybridge bring-up patches. Found by diffing batch buffer dumps and noticing the random values. Thanks to Eric for catching the obvious mistake. NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Re-sync outdated comments about Gen6+ push constants.Kenneth Graunke2012-01-092-2/+2
| | | | | | | | | | | | In f3e9ccb3b, I renamed gen6_upload_wm_constants to gen6_upload_wm_push_constants, but neglected to update this comment. I don't think there ever was a gen7_prepare_wm_constants function; it was probably a search and replace error. Of course, "prepare" functions died a while back as well. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Update dirty bit comments for the gen7_ps_state atom.Kenneth Graunke2012-01-091-1/+2
| | | | | | | | | CACHE_NEW_SAMPLER doesn't cover max_wm_threads, but it does cover brw->sampler.count. BRW_NEW_PS_BINDING_TABLE is obvious, but it's probably worth adding a comment anyway. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Annotate the use of _NEW_PROGRAM in Gen6+ SF state atoms.Kenneth Graunke2012-01-092-2/+2
| | | | | | | The dirty bit was already correctly in place, but there was no comment. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Add missing _NEW_PROGRAM dirty bit to the brw_sf_state atom.Kenneth Graunke2012-01-091-0/+2
| | | | | | | | | Also, annotate the use of _NEW_POINT as long as we're adding a comment. NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Add missing _NEW_PROGRAM dirty bit to the gen7_sbe_state atom.Kenneth Graunke2012-01-091-0/+2
| | | | | | | | | | | According to a comment in gen6_sf_state, calls to get_attr_override need both _NEW_PROGRAM and _NEW_LIGHT. Since Gen7 reuses the same function, the same dirty bits should apply. NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Remove BRW_NEW_CURBE_OFFSETS dirty bit from Gen7 atoms.Kenneth Graunke2012-01-092-5/+2
| | | | | | | | | | The BRW_NEW_CURBE_OFFSETS dirty bit is only flagged by the brw_curbe_offsets state atom which is only used on Gen4-5. Since it's never flagged, there's no reason to depend on it. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Remove BRW_NEW_URB_FENCE dirty bit from Gen6+ atoms.Kenneth Graunke2012-01-095-8/+2
| | | | | | | | | | The BRW_NEW_URB_FENCE dirty bit is only flagged by the brw_recalculate_urb_fence state atom which isn't used on Gen6+. Since it's never flagged, there's no reason to depend on it. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Add missing _NEW_BUFFERS dirty bit to Gen6+ DEPTH_STENCIL atoms.Kenneth Graunke2012-01-091-1/+1
| | | | | | | | | | This brings the dirty bits in line with the comments. This does /not/ need to be cherry-picked to stable branches because the access requiring _NEW_BUFFERS was added in master as part of HiZ. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965/fs: Fix projector==1.0 optimization pre-gen6.Eric Anholt2012-01-091-7/+3
| | | | | | | | | | | | | | The optimization was supposed to turn an attribute component that was always 1.0 into a mov of 1.0. But by leaving loop this patch removes out of that test, we applied the projection correction to the 1.0 and got some other value, breaking openarena once it was converted to using the new compiler backend. Originally this hunk was separate from the former loop to make the generated instructions slightly better pipelined. We now have automatic instruction scheduling to handle that, and the generated instruction sequence looked the same to me after this change (except for the bugfix).
* i965/fs: Fix GPU hangs with 16-wide integer div/mod on gen7.Eric Anholt2012-01-091-0/+6
| | | | Acked-by: Kenneth Graunke <[email protected]>
* i965: Actually enable SIMD16 dispatch on Ivybridge.Kenneth Graunke2012-01-081-2/+7
| | | | | | | | | | | | | | | | Commit acf82657f4d607e4477f03752613d42f239e4bd3 supposedly enabled SIMD16 dispatch, but neglected to set the "16 Pixel Dispatch Enable" bit, so nothing actually got enabled. Furthermore, it neglected to set up the Dispatch GRF Start Register for kernel 2, which is the SIMD16 program. Increases performance in Nexuiz by ~15% at 800x600 (n=3). NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Correct _NEW_TRANSOFORM typos.Kenneth Graunke2012-01-072-2/+2
| | | | | | Using the proper spelling, _NEW_TRANSFORM, makes searching work better. Signed-off-by: Kenneth Graunke <[email protected]>
* i965: Correct misspellings of "invariant".Kenneth Graunke2012-01-074-9/+9
| | | | | | | | | $ dict invarient No definitions found for "invarient", perhaps you mean: gcide: Invariant wn: invariant Signed-off-by: Kenneth Graunke <[email protected]>
* mesa: rework ctx->Driver.CopyTexSubImage() parametersBrian Paul2012-01-077-99/+86
| | | | | | | | | | | Replace target, level parameters with gl_texture_image. Add gl_renderbuffer parameter to indicate source buffer for the copy. This removes some redundant code in the drivers to find the source renderbuffer and the destination texture image (which we already had in _mesa_CopyTexSubImage). Signed-off-by: Brian Paul <[email protected]>
* meta: add some 'f' suffixes to silence MSVC warningsBrian Paul2012-01-071-2/+2
|
* i965/vs: Fix invalid array access in copy propagation.Kenneth Graunke2012-01-061-14/+15
| | | | | | | | | | | | Accessing virtual_grf_reg_map[inst->dst.reg] is invalid if inst->dst.file != GRF. Since is_direct_copy already implies a GRF destination, we can just move the check earlier. Fixes a regression in commit 07ee9f374f2946f852896e9264c7fa83eafc3f16. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44302 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Turn on ARB_depth_buffer_float by default.Eric Anholt2012-01-061-2/+1
| | | | | | | | | | Everything about this that we have tests for works except for the deprecated metaops. The conclusion we came to on IRC sounded like we were OK with turning it on as long as core functionality works. The remaining failures (copypixels, drawpixels) should just be a matter of finishing the MapRenderbuffer for them. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Add sensible disasm for the JMPI instruction.Eric Anholt2012-01-061-1/+3
| | | | | | | We care about the jump distance, not that the first src is always the ip register. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gen7: Enable transform feedback as long as kernel support is present.Eric Anholt2012-01-063-1/+8
| | | | | | | | | The last major issue (intervening-read) is fixed, so let's turn this on for real. The only other known issue is a hardware limitation for tesselation with flat shading. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eugeni Dodonov <[email protected]>
* i965/gen7: Fix up the transform feedback buffer pointers on later batches.Eric Anholt2012-01-064-3/+18
| | | | | | Fixes piglit EXT_transform_feedback/intervening-read Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gen7: Flush the batch between transform feedbacks.Eric Anholt2012-01-063-3/+31
| | | | | | | | | | We need the kernel to reset our pointers to 0 in between. Note that the initialization of function pointer had to move to after InitContext since we didn't have intel->gen set up yet. Fixes piglit EXT_transform_feedback/immediate-reuse Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gen7: Use the updated interface for SO write pointer resetting.Eric Anholt2012-01-063-4/+12
| | | | | | | | The new kernel patch I submitted makes the interface opt-in, so all batchbuffers aren't preceded by the 4 MI_LOAD_REGISTER_IMMs. This requires the updated i915_drm.h present in libdrm 2.4.30. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Make use of gl_transform_feedback_info::ComponentOffset.Paul Berry2012-01-054-1/+19
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* 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]>
* 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]>
* 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]>
* intel: Re-enable GL_OES_standard_derivatives on GEN4+Ian Romanick2012-01-041-13/+9
| | | | | | | | This extension only needs to be disabled on GEN3. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Re-allow blitting glCopyBufferSubData() on gen >= 6.Eric Anholt2012-01-041-1/+1
| | | | | | | This was disabled a year ago due to not having a story for handling the blitter at the time. We're fine with using the blitter now. Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Fix pitch handling for linear blits.Eric Anholt2012-01-041-4/+4
| | | | | | | | | | The new assert in intelEmitCopyBlit() gets angry if we don't align to dwords. Rather than make the assert have a special case for height == 1 on the assumption that the hardware doesn't use it in that case, just supply a correct pitch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43214 Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Fix bad read/write flags on self-copies for glCopyBufferSubData().Eric Anholt2012-01-041-1/+3
| | | | | | | We didn't consume these flags in any way that would produce a functional difference, but we might have some day. Reviewed-by: Kenneth Graunke <[email protected]>
* Remove xmesa_xf86.hAdam Jackson2012-01-041-197/+0
| | | | | | This was a leftover from libGLcore. Signed-off-by: Adam Jackson <[email protected]>
* mesa: remove unused _mesa_init_teximage_fields() target parameterBrian Paul2012-01-045-5/+5
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* Fix read from pointer after freeAnuj Phogat2012-01-031-2/+3
| | | | | | | | | | | | Coverity reported a read from pointer after free defect in src/mesa/drivers/dri/intel/intel_mipmap_tree.c. Bug# 44205 In intel_miptree_all_slices_resolve() function, i = i->next was executing after freeing i. I have defined a temporary variable (next) to store the value of i->next before freeing i Reported-by: Vinson Lee <[email protected]> Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* intel: include version.h in intel_screen.c to silence warningBrian Paul2012-01-021-0/+1
| | | | Signed-off-by: Brian Paul <[email protected]>
* dri_util: Fix order of error and data parameters to dri2CreateContextAttribsIan Romanick2012-01-021-1/+1
| | | | Signed-off-by: Ian Romanick <[email protected]>
* dri2: Add plumbing to get context version requirements and flags to driversIan Romanick2012-01-0211-30/+221
| | | | | | This adds support for DRI_DRI2 version 3 to all of the DRI2 drivers. Signed-off-by: Ian Romanick <[email protected]>
* dri_util: Mostly stub implementation of dri2CreateContextAttribsIan Romanick2012-01-021-12/+79
| | | | | | | | This adds the function and modifies dri2CreateNewContextForAPI to call it. At this point only version 2 of the DRI2 API is advertised to the loader. Signed-off-by: Ian Romanick <[email protected]>
* radeon: move declarations before codeBrian Paul2012-01-022-4/+6
|
* radeon: add casts to silence warningsBrian Paul2012-01-021-2/+2
|
* radeon: remove unused tex image function prototypesBrian Paul2012-01-021-40/+0
|
* mesa: remove the dstX/Y/Zoffset params to _mesa_texstore() functionsBrian Paul2012-01-022-3/+2
| | | | | | | | The were always zero. When doing a sub-texture replacement we account for the dstX/Y/Zoffsets when we map the texture image. So no need to pass them into the texstore code anymore. Reviewed-by: Kenneth Graunke <[email protected]>
* intel: pass xoffset, yoffset = 0 to _mesa_texstore()Brian Paul2012-01-021-3/+1
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Silence gcc warning about uninitialized "inst" in assert() case.Eric Anholt2012-01-021-1/+1
|
* i965: Silence gcc warning from resizing EU store changes.Eric Anholt2012-01-021-1/+1
|
* mesa: simplify Driver.TexImage() parametersBrian Paul2011-12-304-95/+63
| | | | | | | | As with TexSubImage(), the target, level and texObj values can be obtained through the texImage pointer. Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: simplify Driver.TexSubImage() parametersBrian Paul2011-12-303-52/+42
| | | | | | | | There's no need to pass the target, level and texObj parameters since they can be easily obtained from the texImage pointer. Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Eric Anholt <[email protected]>