summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-11-27docs: Add release notes for the 9.2.4 release.mesa-9.2.4Carl Worth1-0/+99
2013-11-27Bump version to 9.2.4Carl Worth3-3/+3
In preparation for the 9.2.4 release.
2013-11-26glsl: Fix lowering of direct assignment in lower_clip_distance.Paul Berry1-0/+5
In commit 065da16 (glsl: Convert lower_clip_distance_visitor to be an ir_rvalue_visitor), we failed to notice that since lower_clip_distance_visitor overrides visit_leave(ir_assignment *), ir_rvalue_visitor::visit_leave(ir_assignment *) wasn't getting called. As a result, clip distance dereferences appearing directly on the right hand side of an assignment (not in a subexpression) weren't getting properly lowered. This caused an ir_dereference_variable node to be left in the IR that referred to the old gl_ClipDistance variable. However, since the lowering pass replaces gl_ClipDistance with gl_ClipDistanceMESA, this turned into a dangling pointer when the IR got reparented. Prior to the introduction of geometry shaders, this bug was unlikely to arise, because (a) reading from gl_ClipDistance[i] in the fragment shader was rare, and (b) when it happened, it was likely that it would either appear in a subexpression, or be hoisted into a subexpression by tree grafting. However, in a geometry shader, we're likely to see a statement like this, which would trigger the bug: gl_ClipDistance[i] = gl_in[j].gl_ClipDistance[i]; This patch causes lower_clip_distance_visitor::visit_leave(ir_assignment *) to call the base class visitor, so that the right hand side of the assignment is properly lowered. Fixes piglit test: - spec/glsl-1.50/execution/geometry/clip-distance-itemized-copy Cc: Ian Romanick <idr@freedesktop.org> Cc: "9.2" <mesa-stable@lists.freedesktop.org> Cc: "10.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (cherry picked from commit 9dfcb05fa649ee7a573eab3d16851ebd4cb96010)
2013-11-26mesa: enable GL_TEXTURE_LOD_BIAS set/getTapani Pälli1-8/+8
Earlier comments suggest this was removed from GL core spec but it is still there. Enabling makes 'texture_lod_bias_getter' Khronos conformance tests pass, also removes some errors from Metro Last Light game which is using this API. v2: leave NOTE comment (Ian) Cc: "9.0 9.1 9.2 10.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Tapani Pälli <tapani.palli@intel.com> (cherry picked from commit 7e61b44dcd6175579f60d8ff2f703a6c83e33d27)
2013-11-26st/mesa: fix GL_FEEDBACK mode inverted Y coordinate bugBrian Paul1-2/+4
We need to check the drawbuffer's orientation before inverting Y coordinates. Fixes piglit feedback tests when running with the -fbo option. Cc: "9.2" "10.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit 15d8e05e1e98a9bfd5a365d0fda222668f24261f)
2013-11-26i965: Fix vertical alignment for multisampled buffers.Paul Berry1-4/+7
From the Sandy Bridge PRM, Vol 1 Part 1 7.18.3.4 (Alignment Unit Size): j [vertical alignment] = 4 for any render target surface is multisampled (4x) From the Ivy Bridge PRM, Vol 4 Part 1 2.12.2.1 (SURFACE_STATE for most messages), under the "Surface Vertical Alignment" heading: This field is intended to be set to VALIGN_4 if the surface was rendered as a depth buffer, for a multisampled (4x) render target, or for a multisampled (8x) render target, since these surfaces support only alignment of 4. Back in 2012 when we added multisampling support to the i965 driver, we forgot to update the logic for computing the vertical alignment, so we were often using a vertical alignment of 2 for multisampled buffers, leading to subtle rendering errors. Note that the specs also require a vertical alignment of 4 for all Y-tiled render target surfaces; I plan to address that in a separate patch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53077 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit b4c3b833ec8ec6787658ea90365ff565cd8846c7)
2013-11-26Merge branch '9.2-freedreno' of git://github.com/freedreno/mesa into 9.2Carl Worth21-359/+1340
This allows the freedreno driver to build with current mesa.
2013-11-13freedreno: updates for msm drm/kms driverRob Clark8-30/+55
There where some small API tweaks in libdrm_freedreno to enable support for msm drm/kms driver. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: handle sync flags betterRob Clark1-16/+34
We need to set the flag on all the .xyzw components that are written by the instruction, not just on .x. Otherwise a later use of rN.y (for example) will not trigger the appropriate sync bit to be set. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: better const handlingRob Clark1-90/+121
Seems like most/all instructions have some restrictions about const src registers. In seems like the 2 src (cat2) instructions can take at most one const, and the 3 src (cat3) instructions can take at most one const in the first 2 arguments. And so on. Handle this properly now. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx: don't leak so muchRob Clark1-0/+11
Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: fix SGT/SLT/etcRob Clark1-29/+125
The cmps.f.* instruction doesn't actually seem to give a float 1.0 or 0.0 output. It either needs a cov.u16f16 or add.s + sel.f16. This makes SGT/SLT/etc more similar to CMP, so handle them in trans_cmp(). This fixes a bunch of piglit tests. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: bit of re-arrange/cleanupRob Clark1-61/+71
It seems there are a number of cases where instructions have limitations about taking reading src's from const register file, so make get_unconst() a bit easier to use. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: make compiler errors more usefulRob Clark2-17/+33
We probably should get rid of assert() entirely, but at this stage it is more useful for things to crash where we can catch it in a debugger. With compile_error() we have a single place to set an error flag (to bail out and return an error on the next instruction) so that will be a small change later when enough of the compiler bugs are sorted. But re-arrange/cleanup the error/assert stuff so we at least get a dump of the TGSI that triggered it. So we see some useful output in piglit logs. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno: fix segfault when no color buffer boundRob Clark7-18/+40
Don't crash when no color buffer bound. Something caught when starting to run piglit, fixes a hanful of piglit tests. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: cat4 cannot use const reg as srcRob Clark1-10/+27
Category 4 instructions (rsq, rcp, sqrt, etc) seem to be unable to take a const register as src. In these cases we need to move the src to a temporary gpr first. This is the second case of such a restriction, where the instruction encoding appears to support a const src, but in fact the hw appears to ignore that bit. So split things out into a helper that can be re-used for any instructions which have this limitation. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: use max_reg rather than file_countRob Clark1-7/+7
Our current (rather naive) register assignment is based on mapping different register files (INPUT, OUTPUT, TEMP, CONST, etc) based on the max register index of the preceding file. But in some cases, the lowest used register in a file might not be zero. In which case file_count[file] != file_max[file] + 1. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: handle saturate on dstRob Clark1-0/+49
Sometimes things other than color dst need saturating, like if there is a 'clamp(foo, 0.0, 1.0)'. So for saturated dst add the extra instructions to fix up dst. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx/compiler: fix CMPRob Clark1-2/+2
The 1st src to add.s needs (r) flag (repeat), otherwise it will end up: add.s dst.xyzw, tmp.xxxx -1 instead of: add.s dst.xyzw, tmp.xyzw, -1 Also, if we are using a temporary dst to avoid clobbering one of the src registers, we actually need to use that as the dst for the sel instruction. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx: some texture fixesRob Clark1-1/+24
Stop hard coding bits that indicate texture type (2d/3d/cube/etc). Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno: update register headersRob Clark8-111/+758
resync w/ rnndb database Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno: add debug option to disable scissor optimizationRob Clark3-14/+22
Useful for testing and debugging. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13freedreno/a3xx: fix viewport on gmem->mem resolveRob Clark1-0/+8
Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-13docs: Add MD5 sums for the 9.2.3 releaseCarl Worth1-1/+3
We can do this now that the release tree has been tagged and tar files have been generated.
2013-11-13docs: Add releases notes for 9.2.3 releasemesa-9.2.3Carl Worth1-0/+113
Which cannot have the checksums yet, of course.
2013-11-13Bump version to 9.2.3Carl Worth3-3/+3
In preparation for the 9.2.3 stable release.
2013-11-13freedreno/a3xx: fix color inversion on mem->gmem restoreRob Clark1-3/+3
Signed-off-by: Rob Clark <robclark@freedesktop.org>
2013-11-12meta: enable vertex attributes in the context of the newly created array objectPetr Sebor1-2/+3
Otherwise, the function would enable generic vertex attributes 0 and 1 of the array object it does not own. This was causing crashes in Euro Truck Simulator 2, since the incorrectly enabled generic attribute 0 in the foreign context got precedence before vertex position attribute at later time, leading to NULL pointer dereference. Cc: "9.2" <mesa-stable@lists.freedesktop.org> Cc: "10.0" <mesa-stable@lists.freedesktop.org> Signed-off-by: Petr Sebor <petr@scssoft.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit f2b844f59d86c5971118bfccb00ddc5a1b69797a)
2013-11-12osmesa: fix broken triangle/line drawing when using float color bufferBrian Paul1-0/+16
Doesn't seem to help with bug 71363 but it fixed a failure I found in my testing. Cc: "9.2" <mesa-stable@lists.freedesktop.org> Cc: "10.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit a66a008b17872f3eab91b7d04dd70e4537bdb627)
2013-11-12get-pick-list.sh: Onlly show commits specifically tagged for 9.2.Carl Worth1-1/+1
Now that the 10.0 branch has been created, we only consider patches for the 9.2 branch if the author specifically tags them for this branch.
2013-11-12i965: Also emit HiZ and Stencil packets when disabling depth on Gen6.Kenneth Graunke1-0/+12
The normal drawing path does this, and it's necessary on Ivybridge, so let's try it on Sandybridge too. It's not explicitly documented as necessary, but might help with hangs. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 5563dfabc8c1b7cc1a67e4d64311ea29aef43087)
2013-11-12i965: Also emit HIER_DEPTH and STENCIL packets when disabling depth.Kenneth Graunke1-0/+12
From the documentation: "[DevIVB] 3DSTATE_DEPTH_BUFFER must always be programmed along with the other Depth/Stencil state commands(i.e. 3DSTATE_CLEAR_PARAMS, 3DSTATE_STENCIL_BUFFER, or 3DSTATE_HIER_DEPTH_BUFFER)." We normally do this, but BLORP was failing to do so in the case where it disables depth. Not observed to fix anything yet. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 29e5d5db5149f721e6c15a9aee6f8135a98ba5c8)
2013-11-12i965: Move post-sync non-zero flush for 3DSTATE_MULTISAMPLE.Kenneth Graunke1-3/+3
For some reason, we put the flush in the caller, rather than just before emitting the packet. This is more than a cosmetic problem: BLORP calls gen6_emit_3dstate_multisample() directly, and so it missed the flush. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 65b1f642ac2dff58498622bf6e0b7be8d9d3e20d)
2013-11-12i965: Also guard 3DSTATE_DRAWING_RECTANGLE with a flush in blorp.Kenneth Graunke1-0/+3
Non-pipelined commands need this flush. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 10a918e52c37715744f7980b2bc9da69575514da)
2013-11-12i965: Emit post-sync non-zero flush before 3DSTATE_DRAWING_RECTANGLE.Kenneth Graunke1-0/+4
This is another non-pipelined command that needs a flush on Sandybridge. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 3aef1fefb4dc2a66101725f2fdc3f2bb0eb926c2)
2013-11-12i965: Emit post-sync non-zero flush before 3DSTATE_GS_SVB_INDEX.Kenneth Graunke1-0/+3
From the comments above intel_emit_post_sync_nonzero_flush: "[DevSNB-C+{W/A}] Before any depth stall flush (including those produced by non-pipelined state commands), software needs to first send a PIPE_CONTROL with no bits set except Post-Sync Operation != 0." This suggests that every non-pipelined (0x79xx) command needs a post-sync non-zero flush before it. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 436e815a250a8fde22d79093f4b9eed56472693b)
2013-11-12i965: CS writes/reads should use I915_GEM_INSTRUCTIONDaniel Vetter1-2/+2
Otherwise the gen6 w/a in the kernel won't kick in and the write will land nowhere. Inspired by a patch Ken pointed me at which had the same issue (but isn't yet merged and also for a gen7+ feature). An audit of the entire driver didn't reveal any other case than the one in in the write_reg helper used by the gen6 queryobj code. Acked-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Tested-by: Xinkai Chen <yeled.nova@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "9.2" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 32a3f5f6d768e5828be1d1f46b1b3f819f55cba8) Conflicts: src/mesa/drivers/dri/i965/gen6_queryobj.c
2013-10-30st/mesa: move out of memory check in st_draw_vbo()Brian Paul1-3/+4
Before we were only checking the st->vertex_array_out_of_memory flag after updating array state. But if there's two consecutive glDrawArrays calls and the first one is skipped because of OOM, the second one should be skipped too. Cc: 9.2 <mesa-stable@lists.freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit d0eaf6752d6faa8a17e3270b9e64b7c09ef705c2)
2013-10-30Remove error when calling glGenQueries/glDeleteQueries while a query is activeCarl Worth1-15/+10
There is nothing in the OpenGL specification which prevents the user from calling glGenQueries to generate a new query object while another object is active. Neither is there anything in the Mesa implementation which prevents this. So remove the INVALID_OPERATION errors in this case. Similarly, it is explicitly allowed by the OpenGL specification to delete an active query, so remove the assertion for that case, replacing it with the necesssary state updates to end the query, (clear the bindpt pointer and call into the driver's EndQuery hook). CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Brian Paul <brianp@vmware.com> Tested-by: Brian Paul <brianp@vmware.com> (cherry picked from commit 29996e219912fb1fdf35a6595d8f6261384a18dc)
2013-10-30cherry-ignore: Update for newly-backported commitCarl Worth1-4/+0
This commit was recently backported by Marek, so we can drop the exception from cherry-ignore now.
2013-10-30radeonsi: fix blitting the last 2 mipmap levels of compressed texturesMarek Olšák3-2/+21
This fixes compressedteximage piglit tests. +10 piglits Evergreen and Cayman have the same issue. R600 and R700 don't. Cc: "9.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 57f38e9f921bcfac0087765b4acb2c258604ea29) Conflicts: src/gallium/drivers/radeonsi/r600_resource.h src/gallium/drivers/radeonsi/si_state.c
2013-10-28cherry-ignore: Ignore another commitCarl Worth1-0/+3
This one is a bug fix for code that is not actually present in 9.2, (the code being fixed was added in commit commit 079bdba05f ).
2013-10-28cherry-ignore: Ignore two more patches.Carl Worth1-0/+8
One of these was recently backported, (the backported commit message doesn't have the exact format expected by get-pick-list.sh, so we add it manually here). On the other, I haven't heard back from a couple of requests to the authors to backport the patch to 9.2.
2013-10-25i965: Fix texture buffer rendering after a whole buffer replacement.Eric Anholt1-0/+2
If glBufferData(), glBufferSubData(0, obj->Size), or similar happens, we get a new drm_intel_bo for the buffer object, and thus need to re-upload texture buffer state so we point at the new data. Fixes the new piglit GL_ARB_texture_buffer_object/data-sync Cc: "9.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (cherry picked from commit c0a9436d191d24d9aea18fcca7a79674af3a782e)
2013-10-25mesa: fixes for MSVC 2013Scott Graham2-1/+4
Cc: "9.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit dafa97fed9c99e0d0c783d913717229378b575da)
2013-10-24wayland: Don't rely on static variable for identifying wl_drm buffersKristian Høgsberg11-30/+37
Now that libEGL has been fixed to not leak all kinds of symbols, gbm links to its own copy of the libwayland-drm.a helper library. That means we can't rely on comparing the addresses of a static vtable symbol in that library to determine if a wl_buffer is a wl_drm_buffer. Instead, we move the vtable into the wl_drm struct and use that for comparing. Backported from 360a141f24a9d00891665b7fedb77ffb116944ca. https://bugs.freedesktop.org/show_bug.cgi?id=69437 Cc: 9.2 <mesa-stable@lists.freedesktop.org>
2013-10-18docs: Add md5sums for the 9.2.2 releaseCarl Worth1-0/+3
Which we could only do after creating the tar files, of course.
2013-10-18Add bin/test-driver to the list of files to be distributed.mesa-9.2.2Carl Worth1-0/+1
Without this, the build fails for me when trying to build from a generated tar file after running just ./configure. (It's not clear to me why I didn't encounter similar breakage with previous releases.)
2013-10-18docs: Add release notes for 9.2.2 releaseCarl Worth1-0/+97
With the list of bugs fixed and a full list of changes.
2013-10-18Bump version to 9.2.2Carl Worth3-3/+3
In preparation for the 9.2.2 release, of course.