mesa.git
12 years agoutil: use memset() to initialize surface, sampler_view templates
Brian Paul [Tue, 10 Jan 2012 18:35:57 +0000 (11:35 -0700)]
util: use memset() to initialize surface, sampler_view templates

These initialization functions weren't initializing all the fields so
some had undefined values.  The callers of these functions sometimes use
a structure assignment to initialize new objects from these templates
so we'd just propagate the undefined values.  That made for some confusing
info when debugging, plus it could lead to bugs.

v2: fix surf pointer mix-up: "&surf" -> "surf"

Jakob Bornecrantz <jakob@vmware.com>

12 years agomesa: use STATIC_ASSERT in a few more places
Brian Paul [Tue, 10 Jan 2012 18:09:02 +0000 (11:09 -0700)]
mesa: use STATIC_ASSERT in a few more places

12 years agoscons: Fix libGL.so build.
José Fonseca [Tue, 10 Jan 2012 17:42:02 +0000 (17:42 +0000)]
scons: Fix libGL.so build.

12 years agomesa: move _mesa_clear_accum_buffer() inside FEATURE_accum test
Brian Paul [Tue, 10 Jan 2012 15:16:38 +0000 (08:16 -0700)]
mesa: move _mesa_clear_accum_buffer() inside FEATURE_accum test

Fixes _mesa_clear_accum_buffer() being multiply defined if
FEATURE_accum is false.

Tested-by: Chih-Wei Huang <cwhuang@android-x86.org>
12 years agomesa: add missing color buffer datatype check for glBlitFramebuffer()
Brian Paul [Mon, 9 Jan 2012 19:38:49 +0000 (12:38 -0700)]
mesa: add missing color buffer datatype check for glBlitFramebuffer()

Reviewed-By: Jose Fonseca <jfonseca@vmware.com>
12 years agosvga: Drop execbuf throttling
Jakob Bornecrantz [Mon, 9 Jan 2012 12:24:50 +0000 (13:24 +0100)]
svga: Drop execbuf throttling

This code isn't used anymore in preference for DRI2 client side swap buffers
throttling or throttling done inside the xa or xorg driver.

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agosvga: Add somewhat sensible fallback and silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 12:50:29 +0000 (13:50 +0100)]
svga: Add somewhat sensible fallback and silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agosvga: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 13:26:04 +0000 (14:26 +0100)]
svga: Silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agosvga: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 12:49:02 +0000 (13:49 +0100)]
svga: Silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agosvga: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 12:43:40 +0000 (13:43 +0100)]
svga: Silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agosvga: Ignores
Jakob Bornecrantz [Mon, 9 Jan 2012 21:30:00 +0000 (22:30 +0100)]
svga: Ignores

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agomesa: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 14:38:35 +0000 (15:38 +0100)]
mesa: Silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Reviewed-by Ian Romanick <ian.d.romanick@intel.com>

12 years agomesa: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 14:37:51 +0000 (15:37 +0100)]
mesa: Silence warning

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
Reviewed-by Ian Romanick <ian.d.romanick@intel.com>

12 years agodraw: Silence warning
Jakob Bornecrantz [Mon, 9 Jan 2012 21:55:56 +0000 (22:55 +0100)]
draw: Silence warning

This peice of code has been here since the inital commit (c5c5cd71) and the
code that used instance_id_index was removed in (caede752) by José.

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agotarget-helpers: If neither softpipe or llvmpipe is used just return the screen
Jakob Bornecrantz [Mon, 9 Jan 2012 12:36:20 +0000 (13:36 +0100)]
target-helpers: If neither softpipe or llvmpipe is used just return the screen

So the targets can drop the sw_wrapper winsys when no sw driver is being used.

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>

12 years agodraw/softpipe: EXT_transform_feedback support (v2)
Dave Airlie [Wed, 4 Jan 2012 17:38:55 +0000 (17:38 +0000)]
draw/softpipe: EXT_transform_feedback support (v2)

This replaces the current code with an implementation compatible with
the new gallium interface. I've left some of the remains of the interface
intact so llvmpipe keeps building correctly, and I'll take a look at fixing
llvmpipe up later.

v2: fixup as per Brian's review

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agogallium: introduce GLSL based interpolation rules. (v2)
Dave Airlie [Mon, 9 Jan 2012 15:57:02 +0000 (15:57 +0000)]
gallium: introduce GLSL based interpolation rules. (v2)

This introduces an unspecified interpolation paramter that is only allowed for
color semantics, so a specified GLSL interpolation will override the ShadeModel
specified interpolation, but not vice-versa.

This fixes a lot of the interpolation tests in piglit.

v2: rename from unspecified to color

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agonvc0: fix FP header clip distance mask
Christoph Bumiller [Sun, 8 Jan 2012 17:01:55 +0000 (18:01 +0100)]
nvc0: fix FP header clip distance mask

12 years agonvc0/ir: TXF array index already is an integer
Christoph Bumiller [Sun, 8 Jan 2012 15:26:23 +0000 (16:26 +0100)]
nvc0/ir: TXF array index already is an integer

12 years agonv50/ir: handle TGSI_SEMANTIC_VERTEXID
Christoph Bumiller [Sat, 7 Jan 2012 23:12:35 +0000 (00:12 +0100)]
nv50/ir: handle TGSI_SEMANTIC_VERTEXID

12 years agonv50/ir/tgsi: translate SNE as unordered comparison
Christoph Bumiller [Sat, 7 Jan 2012 21:12:59 +0000 (22:12 +0100)]
nv50/ir/tgsi: translate SNE as unordered comparison

Fixes isnan().

12 years agonv50/ir/ra: don't coalesce contraint-moves
Christoph Bumiller [Sat, 7 Jan 2012 20:00:51 +0000 (21:00 +0100)]
nv50/ir/ra: don't coalesce contraint-moves

This could lead to incorrect code when fixed regs are involved.

Surprisingly, the increased freedom actually leads to lower
register usage in some cases. Still want to find a better way
to treat constraints though ...

12 years agonvc0: enable shader watchdog timer
Christoph Bumiller [Mon, 9 Jan 2012 23:38:19 +0000 (00:38 +0100)]
nvc0: enable shader watchdog timer

Prevent infinite loops in shaders from locking up the GPU.

12 years agonv50/ir/tgsi: handle TGSI_OPCODE_IABS
Christoph Bumiller [Sat, 7 Jan 2012 17:46:06 +0000 (18:46 +0100)]
nv50/ir/tgsi: handle TGSI_OPCODE_IABS

12 years agonv50/ir/opt: optimize u32 MOD by power of 2 into AND
Christoph Bumiller [Sat, 7 Jan 2012 17:42:13 +0000 (18:42 +0100)]
nv50/ir/opt: optimize u32 MOD by power of 2 into AND

12 years agonv50/ir/opt: s/SHL/SHR in optimization of u32 DIV
Christoph Bumiller [Sat, 7 Jan 2012 17:41:18 +0000 (18:41 +0100)]
nv50/ir/opt: s/SHL/SHR in optimization of u32 DIV

12 years agonv50/ir,nvc0: make ClipDistance and ClipVertex work
Christoph Bumiller [Sat, 7 Jan 2012 16:26:58 +0000 (17:26 +0100)]
nv50/ir,nvc0: make ClipDistance and ClipVertex work

12 years agonv50,nvc0: handle new PIPE_CAPs
Christoph Bumiller [Fri, 6 Jan 2012 23:39:54 +0000 (00:39 +0100)]
nv50,nvc0: handle new PIPE_CAPs

12 years agonvc0/ir/emit: fix modifiers of f32 add with long immediate
Christoph Bumiller [Fri, 6 Jan 2012 23:21:57 +0000 (00:21 +0100)]
nvc0/ir/emit: fix modifiers of f32 add with long immediate

12 years agonvc0/ir: fix default insertion position in pre-SSA lowering pass
Christoph Bumiller [Fri, 6 Jan 2012 21:19:42 +0000 (22:19 +0100)]
nvc0/ir: fix default insertion position in pre-SSA lowering pass

Always set position to insert before the current instruction,
the previous behaviour led to confusion (bug in checkPredicate
for BBs with only a single conditional branch).

12 years agoSquash-merge branch 'gallium-clip-state'
Marek Olšák [Mon, 9 Jan 2012 23:19:00 +0000 (00:19 +0100)]
Squash-merge branch 'gallium-clip-state'

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/mesa/state_tracker/st_atom_clip.c

commit d919791f2742e913173d6b335128e7d4c63c0840
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Fri Jan 6 17:59:22 2012 +0100

    d3d1x: adapt to new clip state

commit cfec82bca3fefcdefafca3f4555285ec1d1ae421
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Fri Jan 6 14:16:51 2012 +0100

    gallium/docs: update for clip state changes

commit c02bfeb81ad9f62041a2285ea6373bbbd602912a
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Fri Jan 6 14:21:43 2012 +0100

    tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS

commit d4e0a785a6a23ad2f6819fd72e236acb9750028d
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Jan 5 08:30:00 2012 -0700

    tgsi: consolidate TGSI string arrays in new tgsi_strings.h

    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 <airlied@redhat.com>
commit c28584ce0d8c62bd92c8f140729d344f88a0b3cd
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Fri Jan 6 12:48:09 2012 +0100

    gallium: extend user_clip_plane_enable to apply to clip distances

commit f1d5016c07f786229ed057effbe55fbfd160b019
Author: Marek Olšák <maraeo@gmail.com>
Date:   Fri Jan 6 02:39:09 2012 +0100

    nvfx: adapt to new clip state

commit 6f6fa1c26bd19f797c1996731708e3569c9bfe24
Author: Marek Olšák <maraeo@gmail.com>
Date:   Fri Jan 6 01:41:39 2012 +0100

    st/mesa: fix DrawPixels with GL_DEPTH_CLAMP

commit c86ad730aa1c017788ae88a55f54071bf222be12
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Tue Jan 3 23:51:30 2012 +0100

    nv50: adapt to new clip state

commit 3a8ae6ac243bae5970729dc4057fe02d992543dc
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date:   Tue Jan 3 23:32:36 2012 +0100

    nvc0: adapt to new clip state

commit 6243a8246997f8d2fcc69ab741a2c2dea080ff11
Author: Marek Olšák <maraeo@gmail.com>
Date:   Thu Dec 29 01:32:51 2011 +0100

    draw: initalize pt.user.planes in draw_init

    This fixes a crash in glean/fpexceptions.

commit e3056524b19b56d473f4faff84ffa0eb41497408
Author: Marek Olšák <maraeo@gmail.com>
Date:   Mon Dec 26 06:26:55 2011 +0100

    svga: adapt to new clip state

commit c5bfa8b37d6d489271df457229081d6bbb51b4b7
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 14:11:51 2011 +0100

    r600g: adapt to new clip state

commit f11890905362f62627c4a28a8255b76eb7de7df2
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 14:10:26 2011 +0100

    r300g: adapt to new clip state

commit e37465327c79a01112f15f6278d9accc5bf3103f
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 12:39:16 2011 +0100

    draw: adapt to new clip state

    This adds a regression in the LLVM clipping path. Can anybody see anything
    wrong with the code? It works for every other case, just glean/fpexceptions
    crashes when doing the "Infinite clip plane test".

commit b474d2b18c72d965eefae4e427c269cba5ce6ba2
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 13:14:59 2011 +0100

    u_blitter: don't save/set/restore clip state

commit 9dd240ea91f523a677af45e8d0adb9e661e28602
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 13:11:56 2011 +0100

    gallium: don't cso_save/set/restore clip state

    The enable bits are in the rasterizer state.

commit a4f7031179f5f4ad524b34b394214b984ac950f6
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 12:58:55 2011 +0100

    gallium: default depth_clip to 1

    depth_clip = !depth_clamp

commit fe21147a00ab90e549d63fe12ee4625c9c2ffcc3
Author: Marek Olšák <maraeo@gmail.com>
Date:   Mon Dec 26 06:14:19 2011 +0100

    trace,util: update state logging to new clip state

    Also dump the other missing flags.

commit 2a3b96e84ac872dcc5bc1de049fe76bb58d64b23
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Dec 25 10:43:43 2011 +0100

    st/mesa: adapt to new clip state

commit b7b656a42fca19d7c85267f42649a206a85a2c72
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sat Dec 17 15:45:19 2011 +0100

    gallium: move state enable bits from clip_state to rasterizer_state

12 years agoi965: Fix zeroing of unused attributes in 3DSTATE_SBE.
Kenneth Graunke [Mon, 9 Jan 2012 00:27:36 +0000 (16:27 -0800)]
i965: Fix zeroing of unused attributes in 3DSTATE_SBE.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Re-sync outdated comments about Gen6+ push constants.
Kenneth Graunke [Sun, 8 Jan 2012 04:31:55 +0000 (20:31 -0800)]
i965: Re-sync outdated comments about Gen6+ push constants.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Update dirty bit comments for the gen7_ps_state atom.
Kenneth Graunke [Sun, 8 Jan 2012 03:32:23 +0000 (19:32 -0800)]
i965: Update dirty bit comments for the gen7_ps_state atom.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Annotate the use of _NEW_PROGRAM in Gen6+ SF state atoms.
Kenneth Graunke [Mon, 9 Jan 2012 19:03:46 +0000 (11:03 -0800)]
i965: Annotate the use of _NEW_PROGRAM in Gen6+ SF state atoms.

The dirty bit was already correctly in place, but there was no comment.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Add missing _NEW_PROGRAM dirty bit to the brw_sf_state atom.
Kenneth Graunke [Mon, 9 Jan 2012 19:08:34 +0000 (11:08 -0800)]
i965: Add missing _NEW_PROGRAM dirty bit to the brw_sf_state atom.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Add missing _NEW_PROGRAM dirty bit to the gen7_sbe_state atom.
Kenneth Graunke [Mon, 9 Jan 2012 19:00:23 +0000 (11:00 -0800)]
i965: Add missing _NEW_PROGRAM dirty bit to the gen7_sbe_state atom.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Remove BRW_NEW_CURBE_OFFSETS dirty bit from Gen7 atoms.
Kenneth Graunke [Sun, 8 Jan 2012 05:50:37 +0000 (21:50 -0800)]
i965: Remove BRW_NEW_CURBE_OFFSETS dirty bit from Gen7 atoms.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Remove BRW_NEW_URB_FENCE dirty bit from Gen6+ atoms.
Kenneth Graunke [Sun, 8 Jan 2012 03:36:03 +0000 (19:36 -0800)]
i965: Remove BRW_NEW_URB_FENCE dirty bit from Gen6+ atoms.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Add missing _NEW_BUFFERS dirty bit to Gen6+ DEPTH_STENCIL atoms.
Kenneth Graunke [Sat, 7 Jan 2012 23:58:53 +0000 (15:58 -0800)]
i965: Add missing _NEW_BUFFERS dirty bit to Gen6+ DEPTH_STENCIL atoms.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoglsl: fix glsl optimization infinite loop from copy_propagation_elements
Andy Clayton [Fri, 6 Jan 2012 03:17:53 +0000 (21:17 -0600)]
glsl: fix glsl optimization infinite loop from copy_propagation_elements

The trick was to produce an assignment in the IR along the lines of:

      (assign  (xyzw) (var_ref R0)  (swiz wwww (var_ref R0) ))

which occurs only rarely even in code that looks like it should do
this, because of the assignment temporaries generated in ast_to_hir.

From the IR above, this optimization pass would then propagate
references of R0 into R0.wwww (seems reasonable), but without this
patch, a later reference of R0.wwww would see R0 first, turning that
into R0.wwww.wwww, which triggered opt_swizzle_swizzle, and then we
looped back to this code to do it again.  Avoid that by skipping over
the usual ir_rvalue visitor's ir_swizzle hook, so that we get
handle_rvalue() on the ir_swizzle itself, not its referenced value.
Looking at only the swizzle will always optimize away at least as much
as looking at the swizzle's refererenced value.

We now still claim to propagate r0.w into r0.w, but at least we don't
trigger the loop.

v2: Rewrite commit message (changes by anholt)

Fixes piglit glsl-copy-propagation-self-1
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=34006

12 years agosoftpipe: Document new llvm flag
Jakob Bornecrantz [Mon, 9 Jan 2012 20:37:50 +0000 (21:37 +0100)]
softpipe: Document new llvm flag

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
12 years agosoftpipe: Don't use llvm in draw
Jakob Bornecrantz [Sun, 8 Jan 2012 23:00:56 +0000 (00:00 +0100)]
softpipe: Don't use llvm in draw

But add a option to force it on for testing.

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agodraw: Fail if we fail to enable llvm when asked for it
Jakob Bornecrantz [Mon, 9 Jan 2012 17:17:07 +0000 (18:17 +0100)]
draw: Fail if we fail to enable llvm when asked for it

The r300 driver requires LLVM when building and other drivers that
depend on it for all TNL, like i915g will be a lot slower without it.

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agodraw: Make it possible to create a llvm free context
Jakob Bornecrantz [Sun, 8 Jan 2012 23:00:34 +0000 (00:00 +0100)]
draw: Make it possible to create a llvm free context

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: Bump version to 8.0 (devel)
Kenneth Graunke [Sat, 7 Jan 2012 00:54:11 +0000 (16:54 -0800)]
mesa: Bump version to 8.0 (devel)

Also update the release notes to mention that Mesa 8.0 implements
OpenGL 3.0.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoradeon/winsys: fix get info ioctl error checking
Jerome Glisse [Mon, 9 Jan 2012 19:59:56 +0000 (14:59 -0500)]
radeon/winsys: fix get info ioctl error checking

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
12 years agoi965/fs: Fix projector==1.0 optimization pre-gen6.
Eric Anholt [Fri, 6 Jan 2012 01:07:55 +0000 (17:07 -0800)]
i965/fs: Fix projector==1.0 optimization pre-gen6.

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).

12 years agoi965/fs: Fix GPU hangs with 16-wide integer div/mod on gen7.
Eric Anholt [Mon, 9 Jan 2012 18:27:44 +0000 (10:27 -0800)]
i965/fs: Fix GPU hangs with 16-wide integer div/mod on gen7.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Fix bogus transform feedback error message when subscripting non-array.
Paul Berry [Wed, 4 Jan 2012 23:17:52 +0000 (15:17 -0800)]
mesa: Fix bogus transform feedback error message when subscripting non-array.

Previous to this patch, if the client requested transform feedback
using a subscript, but the variable was not an array
(e.g. "gl_FrontColor[0]"), we would produce a bogus error message like
"Transform feedback varying gl_FrontColor[0] found, but it's an array
([] expected)".

Changed the error message to e.g. "Transfrorm feedback varying
gl_FrontColor[0] requested, but gl_FrontColor is not an array."

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: fix error message in _mesa_BlitFramebufferEXT()
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: fix error message in _mesa_BlitFramebufferEXT()

12 years agomesa: check depth, stencil formats (not depths) in glBlitFramebuffer
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: check depth, stencil formats (not depths) in glBlitFramebuffer

We were only comparing the number of depth and stencil bits but the
extension spec actually says the formats must match:

    The error INVALID_OPERATION is generated if BlitFramebufferEXT is
    called and <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT
    and the source and destination depth or stencil buffer formats do
    not match.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: add missing error check for linear blit of integer colors
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: add missing error check for linear blit of integer colors

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoswrast: convert blit_linear() to Map/UnmapRenderbuffer()
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
swrast: convert blit_linear() to Map/UnmapRenderbuffer()

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: add _mesa_unpack_ubyte_rgba_row() function
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: add _mesa_unpack_ubyte_rgba_row() function

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: rename _mesa_unpack_int_rgba_row() to _mesa_unpack_uint_rgba_row()
Brian Paul [Mon, 9 Jan 2012 15:11:33 +0000 (08:11 -0700)]
mesa: rename _mesa_unpack_int_rgba_row() to _mesa_unpack_uint_rgba_row()

Since it returns uint values, not int.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agovl: replace decode_buffers with auxiliary data field
Christian König [Fri, 23 Dec 2011 15:14:31 +0000 (16:14 +0100)]
vl: replace decode_buffers with auxiliary data field

Based on patches from Maarten Lankhorst <m.b.lankhorst@gmail.com>

Signed-off-by: Christian König <deathsimple@vodafone.de>
Acked-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
12 years agoi965: Actually enable SIMD16 dispatch on Ivybridge.
Kenneth Graunke [Sun, 8 Jan 2012 05:57:46 +0000 (21:57 -0800)]
i965: Actually enable SIMD16 dispatch on Ivybridge.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agonvfx: remove unused-but-set variables
Marek Olšák [Sat, 17 Dec 2011 21:54:29 +0000 (22:54 +0100)]
nvfx: remove unused-but-set variables

12 years agoi965: Correct _NEW_TRANSOFORM typos.
Kenneth Graunke [Sun, 8 Jan 2012 04:00:10 +0000 (20:00 -0800)]
i965: Correct _NEW_TRANSOFORM typos.

Using the proper spelling, _NEW_TRANSFORM, makes searching work better.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Correct misspellings of "invariant".
Kenneth Graunke [Sun, 8 Jan 2012 03:56:54 +0000 (19:56 -0800)]
i965: Correct misspellings of "invariant".

$ dict invarient
No definitions found for "invarient", perhaps you mean:
gcide:  Invariant
wn:  invariant

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl_to_tgsi: emit IABS for absolute value of integers
Bryan Cain [Sat, 7 Jan 2012 22:19:39 +0000 (16:19 -0600)]
glsl_to_tgsi: emit IABS for absolute value of integers

12 years agomesa: rework ctx->Driver.CopyTexSubImage() parameters
Brian Paul [Thu, 29 Dec 2011 13:36:55 +0000 (06:36 -0700)]
mesa: rework ctx->Driver.CopyTexSubImage() parameters

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 <brianp@vmware.com>
12 years agogallium: add an IABS opcode to TGSI
Bryan Cain [Sat, 7 Jan 2012 16:43:04 +0000 (10:43 -0600)]
gallium: add an IABS opcode to TGSI

This is a necessary operation that is missing from TGSI.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: remove unused _mesa_unpack_uint_rgba_row() prototype
Brian Paul [Sat, 7 Jan 2012 21:28:57 +0000 (14:28 -0700)]
mesa: remove unused _mesa_unpack_uint_rgba_row() prototype

12 years agoglsl_to_tgsi: fix emission of boolean constants
Bryan Cain [Sat, 7 Jan 2012 21:28:27 +0000 (15:28 -0600)]
glsl_to_tgsi: fix emission of boolean constants

We use 0xffffffff for true, but visit(ir_constant *) was emitting 1.

12 years agoglsl_to_tgsi: remove bad assertion
Bryan Cain [Sat, 7 Jan 2012 20:54:49 +0000 (14:54 -0600)]
glsl_to_tgsi: remove bad assertion

12 years agoswrast: fix Z testing of points/lines for 16-bit depth buffers
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
swrast: fix Z testing of points/lines for 16-bit depth buffers

We were comparing 32-bit Z buffer values against 16-bit fragment values.
Need to do scaling like for the 24-bit case.

Triangle Z testing was OK since it didn't hit this code path.

12 years agoswrast: s/GLbitfield/GLbitfield64/ for sw_span::arrayAttribs
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
swrast: s/GLbitfield/GLbitfield64/ for sw_span::arrayAttribs

This is a bitfield of FRAG_BIT_x values so it should be 64-bits now.

12 years agoswrast: s/GLint/GLuint/ to silence MSVC signed/unsigned comparison warning
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
swrast: s/GLint/GLuint/ to silence MSVC signed/unsigned comparison warning

12 years agometa: add some 'f' suffixes to silence MSVC warnings
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
meta: add some 'f' suffixes to silence MSVC warnings

12 years agomesa: add some 'f' suffixes to silence MSVC warnings
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
mesa: add some 'f' suffixes to silence MSVC warnings

12 years agoutil: silence some MSVC type conversion warnings
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
util: silence some MSVC type conversion warnings

12 years agodraw: replace assert(0) with debug_warn_once()
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
draw: replace assert(0) with debug_warn_once()

If the assertion was hit, it probably meant that we were unable to allocate
or map a vertex buffer.  Instead of dying in a debug build, issue a warning
and continue.

12 years agoutil: add debug_warn_once() macro
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
util: add debug_warn_once() macro

Emits a warning message, but only once to avoid tons of repeated warnings.

12 years agodraw: whitespace fixes, etc.
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
draw: whitespace fixes, etc.

12 years agogallium: make vbuf_render::set_primitive() return void
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
gallium: make vbuf_render::set_primitive() return void

All the implementations of this function always return TRUE.

12 years agosvga: fix assorted whitespace issues, add copyright comment
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
svga: fix assorted whitespace issues, add copyright comment

12 years agosvga: add switch cases for PIPE_SHADER_CAP_OUTPUT_READ
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
svga: add switch cases for PIPE_SHADER_CAP_OUTPUT_READ

Silences unhandled switch case warning.
Return 0 since we don't want to read from output regs.

12 years agomesa: add/update comments in _mesa_copy_buffer_subdata()
Brian Paul [Sat, 7 Jan 2012 21:16:27 +0000 (14:16 -0700)]
mesa: add/update comments in _mesa_copy_buffer_subdata()

12 years agou_vbuf: don't unroll indices if mapping vertex buffers blocks
Marek Olšák [Sat, 7 Jan 2012 13:58:03 +0000 (14:58 +0100)]
u_vbuf: don't unroll indices if mapping vertex buffers blocks

12 years agodraw: fix missing include for u_format.
Dave Airlie [Sat, 7 Jan 2012 08:55:30 +0000 (08:55 +0000)]
draw: fix missing include for u_format.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agost/mesa: add support for clip vertex.
Dave Airlie [Wed, 4 Jan 2012 11:49:26 +0000 (11:49 +0000)]
st/mesa: add support for clip vertex.

We need to pass the pre-projection matrix clip planes into the driver,
instead of the post for the case we have a vertex shader that writes clip
vertex.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agogallium: add new semantic for clip vertex.
Dave Airlie [Wed, 4 Jan 2012 11:48:24 +0000 (11:48 +0000)]
gallium: add new semantic for clip vertex.

This is to match the gl_ClipVertex output from GLSL 1.20.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agodraw: don't translate non-floats to float.
Dave Airlie [Fri, 6 Jan 2012 15:07:24 +0000 (15:07 +0000)]
draw: don't translate non-floats to float.

translate signed/unsigned integers to coresponding uint/sint r32g32b32a32 types.

This fixes a bunch of piglit tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agost/mesa: fix default interpolation for colors.
Dave Airlie [Fri, 6 Jan 2012 13:31:07 +0000 (13:31 +0000)]
st/mesa: fix default interpolation for colors.

Brian mentioned that mesa-demos/reflect was broken on softpipe,
by my previous commit. The problem was were blindly translating none
to perspective, when color/pntc at least need it linear.

this is the final version that fixes the reflect regression.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agoglsl/builtins: Add missing mix(genType, genType, bvec) built-ins.
Kenneth Graunke [Thu, 5 Jan 2012 21:28:56 +0000 (13:28 -0800)]
glsl/builtins: Add missing mix(genType, genType, bvec) built-ins.

The IR for mix(float, float, bool) was missing a write mask, causing the
IR reader to die horribly.  Furthermore, I neglected to add any of the
new prototypes to the 1.30 profiles.

Fixes oglconform's glsl-bif-com advanced.mix test cases.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44477
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoi965/vs: Fix invalid array access in copy propagation.
Kenneth Graunke [Thu, 5 Jan 2012 21:54:41 +0000 (13:54 -0800)]
i965/vs: Fix invalid array access in copy propagation.

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 <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoconfigure.ac: Remove unused GLUT substitutions.
Kenneth Graunke [Thu, 5 Jan 2012 18:30:36 +0000 (10:30 -0800)]
configure.ac: Remove unused GLUT substitutions.

GLUT was removed from the main tree a while ago; nothing uses these
substitutions.

Reviewed-by: Matt Turner <mattst88@gmail.com>
12 years agoglsl: Don't mark assignment temporaries as read-only
Ian Romanick [Fri, 23 Dec 2011 18:59:38 +0000 (10:59 -0800)]
glsl: Don't mark assignment temporaries as read-only

The various l-value errors this was designed to catch are now caught
by other means.  Marking the temporaries as read-only now just
prevents sensible error messages from being generated.  It's

0:0(0): error: function parameter 'out p' references the read-only variable '_post_incdec_tmp'

versus

0:13(5): error: function parameter 'out p' references a post-decrement operation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
12 years agoglsl: Emit extra errors for l-value violations in 'out' or 'inout' parameters
Ian Romanick [Fri, 23 Dec 2011 18:58:23 +0000 (10:58 -0800)]
glsl: Emit extra errors for l-value violations in 'out' or 'inout' parameters

Somethings, like pre-increment operations, were not previously caught.
After the 8.0 release, this code needs some major refactoring and
clean-up.  It's a mess. :(

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42755

12 years agoglsl: Emit errors for assignments to non-l-value expressions
Ian Romanick [Fri, 23 Dec 2011 17:56:29 +0000 (09:56 -0800)]
glsl: Emit errors for assignments to non-l-value expressions

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42755

12 years agoglsl: Track descriptions of some expressions that can't be l-values
Ian Romanick [Fri, 23 Dec 2011 17:56:03 +0000 (09:56 -0800)]
glsl: Track descriptions of some expressions that can't be l-values

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
12 years agomesa: remove gl_framebuffer:_DepthBuffer, _StencilBuffer fields
Brian Paul [Fri, 6 Jan 2012 19:42:40 +0000 (12:42 -0700)]
mesa: remove gl_framebuffer:_DepthBuffer, _StencilBuffer fields

These were used by swrast to make a combined depth+stencil buffer look
like separate depth and stencil buffers.  But that's no longer needed
after rewriting the depth/stencil code in swrast.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoswrast: remove s_depthstencil.[ch] files
Brian Paul [Fri, 6 Jan 2012 19:42:40 +0000 (12:42 -0700)]
swrast: remove s_depthstencil.[ch] files

The code is no longer used.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoswrast: remove calls to _swrast_update_depth/stencil_buffer()
Brian Paul [Fri, 6 Jan 2012 19:42:40 +0000 (12:42 -0700)]
swrast: remove calls to _swrast_update_depth/stencil_buffer()

These functions updated the gl_renderbuffer::_DepthBuffer and
_StencilBuffer fields.  But those fields are no longer used.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Turn on ARB_depth_buffer_float by default.
Eric Anholt [Thu, 5 Jan 2012 02:02:49 +0000 (18:02 -0800)]
i965: Turn on ARB_depth_buffer_float by default.

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 <kenneth@whitecape.org>
12 years agoswrast: Convert the glBlitFramebuffer(GL_NEAREST) path to MapRenderbuffer().
Eric Anholt [Thu, 5 Jan 2012 01:54:48 +0000 (17:54 -0800)]
swrast: Convert the glBlitFramebuffer(GL_NEAREST) path to MapRenderbuffer().

Fixes on i965:
ARB_depth_buffer_float/fbo-depthstencil-GL_DEPTH32F_STENCIL8-blit
ARB_depth_buffer_float/fbo-stencil-GL_DEPTH32F_STENCIL8-blit

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: Fix packing of stencil bits to MESA_FORMAT_Z32_FLOAT_X24S8.
Eric Anholt [Thu, 5 Jan 2012 01:53:39 +0000 (17:53 -0800)]
mesa: Fix packing of stencil bits to MESA_FORMAT_Z32_FLOAT_X24S8.

We were converting our ubyte stencil value to a float.  Just write it
as a uint, which overwrites the X24 part of X24S8 with 0 but shouldn't
matter.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoswrast: Fix use of uninitialized value in rbmapping changes.
Eric Anholt [Thu, 5 Jan 2012 01:11:33 +0000 (17:11 -0800)]
swrast: Fix use of uninitialized value in rbmapping changes.

I'm so surprised that gcc didn't catch this that I feel like I must be
misreading.  srcMap is what we initialize (along with dstMap) from
this map value right after this check.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>