mesa.git
13 years agor600g: fix rendering with a vertex attrib having a zero stride
Alex Deucher [Mon, 13 Dec 2010 03:44:53 +0000 (22:44 -0500)]
r600g: fix rendering with a vertex attrib having a zero stride

The hardware supports zero stride just fine.  This is a port
of 2af8a1983180fc0168c1e0e53bcc69ee3d684ea4 from r300g.

NOTE: This is a candidate for both the 7.9 and 7.10 branches.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor300g: fixup rs690 tiling stride alignment calculations.
Dave Airlie [Fri, 10 Dec 2010 05:40:48 +0000 (15:40 +1000)]
r300g: fixup rs690 tiling stride alignment calculations.

The RS690 memory controller prefers things to be on a different
boundary than the discrete GPUs, we had an attempt to fix this,
but it still failed, this consolidates the stride calculation
into one place and removes the really special case check.

This fixes gnome-shell and 16 piglit tests on my rs690 system.

NOTE: This is a candidate for both the 7.9 and 7.10 branches.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agoegl: Do not unload drivers.
Chia-I Wu [Sun, 12 Dec 2010 10:13:27 +0000 (18:13 +0800)]
egl: Do not unload drivers.

When the driver is the last reference to libEGL.so, unloading it will
cause libEGL.so to be unmapped and give problems.  Disable the unloading
for now.  Still have to figure out the right timing to unload drivers.

13 years agomapi: Fix a warning in !THREADS build.
Chia-I Wu [Sun, 12 Dec 2010 09:56:49 +0000 (17:56 +0800)]
mapi: Fix a warning in !THREADS build.

It should be u_thread_self, not _glthread_GetID.

13 years agomesa: Clean up header file inclusion in nvfragparse.h.
Vinson Lee [Sat, 11 Dec 2010 22:37:18 +0000 (14:37 -0800)]
mesa: Clean up header file inclusion in nvfragparse.h.

13 years agomesa: Clean up header file inclusion in ir_to_mesa.h.
Vinson Lee [Sat, 11 Dec 2010 21:30:13 +0000 (13:30 -0800)]
mesa: Clean up header file inclusion in ir_to_mesa.h.

13 years agor300g: fix rendering with a vertex attrib having a zero stride
Marek Olšák [Sat, 11 Dec 2010 13:45:27 +0000 (14:45 +0100)]
r300g: fix rendering with a vertex attrib having a zero stride

The hardware apparently does support a zero stride, so let's use it.

This fixes missing objects in ETQW, but might also fix a ton of other
similar-looking bugs.

NOTE: This is a candidate for both the 7.9 and 7.10 branches.

13 years agotgsi: fix rbug compile error
Marek Olšák [Sat, 11 Dec 2010 07:38:39 +0000 (08:38 +0100)]
tgsi: fix rbug compile error

../mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h:139:
error: dereferencing pointer ‘tokens.25’ does break strict-aliasing rules

Signed-off-by: Marek Olšák <maraeo@gmail.com>
13 years agor300/compiler: fix swizzle lowering with a presubtract source operand
Marek Olšák [Sat, 11 Dec 2010 12:22:19 +0000 (13:22 +0100)]
r300/compiler: fix swizzle lowering with a presubtract source operand

If a source operand has a non-native swizzle (e.g. the KIL instruction
cannot have a swizzle other than .xyzw), the lowering pass uses one or more
MOV instructions to move the operand to an intermediate temporary with
native swizzles.

This commit fixes that the presubtract information was lost during
the lowering.

NOTE: This is a candidate for both the 7.9 and 7.10 branches.

13 years agor300/compiler: fix LIT in VS
Marek Olšák [Sat, 11 Dec 2010 06:32:24 +0000 (07:32 +0100)]
r300/compiler: fix LIT in VS

This fixes broken rendering of trees in ETQW. The trees still disappear
for an unknown reason when they are close.

Broken since:
2ff9d4474bdf5f05852ad4963d0b597d20743678
r300/compiler: make lowering passes possibly use up to two less temps

NOTE: This is a candidate for the 7.10 branch.

13 years agoglsl: Inherrit type of declared variable from initializer after processing assignment
Ian Romanick [Fri, 10 Dec 2010 23:48:15 +0000 (15:48 -0800)]
glsl: Inherrit type of declared variable from initializer after processing assignment

do_assignment may apply implicit conversions to coerce the base type
of initializer to the base type of the variable being declared.  Fixes
piglit test glsl-implicit-conversion-02 (bugzilla #32287).  This
probably also fixes bugzilla #32273.

NOTE: This is a candidate for the 7.9 branch and the 7.10 branch.

13 years agoglsl: Minor clean-up in validate_assignment
Ian Romanick [Fri, 10 Dec 2010 23:47:11 +0000 (15:47 -0800)]
glsl: Minor clean-up in validate_assignment

This code has been changed around a lot, and there were some temporary
variables left around from previous versions.

13 years agoi965: Put common info on converting MESA_FORMAT to BRW_FORMAT in a table.
Eric Anholt [Fri, 10 Dec 2010 21:09:55 +0000 (13:09 -0800)]
i965: Put common info on converting MESA_FORMAT to BRW_FORMAT in a table.

There are exceptions to the table for depth texturing or rendering to
not-quite-supported formats thanks to the non-orthogonal component
selection for surface formats, but it's still a lot simpler.

13 years agointel: Just use ChooseTextureFormat for renderbuffer format choice.
Eric Anholt [Fri, 10 Dec 2010 01:15:26 +0000 (17:15 -0800)]
intel: Just use ChooseTextureFormat for renderbuffer format choice.

One less place to forget to put your new MESA_FORMAT support in.

13 years agointel: Add a couple of helper functions to reduce rb code duplication.
Eric Anholt [Fri, 10 Dec 2010 01:08:31 +0000 (17:08 -0800)]
intel: Add a couple of helper functions to reduce rb code duplication.

13 years agointel: Add spans code for the ARB_texture_rg support.
Eric Anholt [Fri, 10 Dec 2010 01:30:41 +0000 (17:30 -0800)]
intel: Add spans code for the ARB_texture_rg support.

This starts spantmp2.h down the path of using MESA_FORMAT_* for
specifying the format instead of the crazy GL format/type combo.

13 years agomesa: Don't assertion fail for _mesa_get_format_name(MESA_FORMAT_NONE)
Eric Anholt [Fri, 10 Dec 2010 19:34:41 +0000 (11:34 -0800)]
mesa: Don't assertion fail for _mesa_get_format_name(MESA_FORMAT_NONE)

13 years agotnl: Initialize gl_program_machine memory in run_vp.
Vinson Lee [Fri, 10 Dec 2010 22:24:05 +0000 (14:24 -0800)]
tnl: Initialize gl_program_machine memory in run_vp.

Fixes piglit valgrind glsl-array-bounds-04 failure (FDO bug 29946).

NOTE:
This is a candidate for the 7.10 branch.
This is a candidate for the 7.9 branch.

13 years agovbo: Avoid the copy to current in dlists if not required.
Mathias Fröhlich [Sun, 17 Oct 2010 16:16:30 +0000 (18:16 +0200)]
vbo: Avoid the copy to current in dlists if not required.

The current state is allowed to be undefined past DrawElements et al.
Consequently omit that copying at least in the display list code.
This pays us some percents performance.

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa/meta: fix broken assertion, rename stack depth var
Brian Paul [Fri, 10 Dec 2010 17:02:33 +0000 (10:02 -0700)]
mesa/meta: fix broken assertion, rename stack depth var

assert(current_save_state < MAX_META_OPS_DEPTH) did not compile.

Rename current_save_state to SaveStackDepth to be more consistent with
the style of the other fields.

13 years agor600g: fix bo size when creating bo from handle
Jerome Glisse [Fri, 10 Dec 2010 16:17:27 +0000 (11:17 -0500)]
r600g: fix bo size when creating bo from handle

Spoted by Alex Diomin

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agomesa: Clean up header file inclusion in arbprogparse.h.
Vinson Lee [Fri, 10 Dec 2010 07:52:28 +0000 (23:52 -0800)]
mesa: Clean up header file inclusion in arbprogparse.h.

13 years agoi965: support for two-sided lighting on Sandybridge
Xiang, Haihao [Fri, 10 Dec 2010 05:01:44 +0000 (13:01 +0800)]
i965: support for two-sided lighting on Sandybridge

VS places color attributes together so that SF unit can fetch the right
attribute according to object orientation. This fixes light issue in
mesa demo geartrain, projtex.

13 years agometa: allow nested meta operations
Xiang, Haihao [Fri, 10 Dec 2010 01:31:19 +0000 (09:31 +0800)]
meta: allow nested meta operations

_mesa_meta_CopyPixels results in nested meta operations on Sandybridge.
Previoulsy the second meta operation overrides all states saved by the
first meta function.

13 years agoi965: Add support for gen6 reladdr VS constant loading.
Eric Anholt [Thu, 9 Dec 2010 17:42:05 +0000 (09:42 -0800)]
i965: Add support for gen6 reladdr VS constant loading.

13 years agoi965: Add support for gen6 constant-index constant loading.
Eric Anholt [Thu, 9 Dec 2010 17:36:17 +0000 (09:36 -0800)]
i965: Add support for gen6 constant-index constant loading.

13 years agotargets/egl: Improve st_GL.so loading.
Chia-I Wu [Fri, 10 Dec 2010 02:44:03 +0000 (10:44 +0800)]
targets/egl: Improve st_GL.so loading.

When the application is not linked to any libGL*.so, loading st_GL.so
would give

  /usr/local/lib/egl/st_GL.so: undefined symbol: _glapi_tls_Context

In that case, load libGL.so and try again.  This works because
util_dl_open loads with RTLD_GLOBAL.

Fix "clear" OpenGL ES 1.1 demo.

13 years agotarget/egl: Fix misleading debug message.
Chia-I Wu [Fri, 10 Dec 2010 02:28:57 +0000 (10:28 +0800)]
target/egl: Fix misleading debug message.

When the name of the module is NULL, the process itself is dlopen()ed.
Do not print

  libEGL debug: searching for st module (null)

13 years agodraw/llvm: don't flush in vs_llvm_delete()
Brian Paul [Fri, 10 Dec 2010 01:37:59 +0000 (18:37 -0700)]
draw/llvm: don't flush in vs_llvm_delete()

Fixes piglit glx-shader-sharing crash.

When shaders are shared by multiple contexts, the shader's draw context
pointer may point to a previously destroyed context.  Dereferencing the
context pointer will lead to a crash.

In this case, simply removing the flushing code avoids the crash (the
exec and sse shader paths don't flush here either).

There's a deeper issue here, however, that needs examination.  Shaders
should not keep pointers to contexts since contexts might get destroyed
at any time.

NOTE: This is a candidate for the 7.10 branch (after this has been
tested for a while).

13 years agodraw/llvm: remove redundant comment
Brian Paul [Thu, 9 Dec 2010 23:02:28 +0000 (16:02 -0700)]
draw/llvm: remove redundant comment

13 years agodraw/llvm: remove extraneous conditional
Brian Paul [Thu, 9 Dec 2010 23:02:12 +0000 (16:02 -0700)]
draw/llvm: remove extraneous conditional

13 years agoglsl: Unroll loops with conditional breaks anywhere (not just the end)
Luca Barbieri [Wed, 1 Dec 2010 23:12:07 +0000 (15:12 -0800)]
glsl: Unroll loops with conditional breaks anywhere (not just the end)

Currently we only unroll loops with conditional breaks at the end, which is
the form that lower_jumps generates.

However, if breaks are not lowered, they tend to appear at the beginning, so
add support for a conditional break anywhere.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoglsl: Consider the "else" branch when looking for loop breaks.
Kenneth Graunke [Wed, 1 Dec 2010 23:33:56 +0000 (15:33 -0800)]
glsl: Consider the "else" branch when looking for loop breaks.

Found this bug by code inspection.  Based off the comments just before
this code, the intent is to find whether the break exists in the "then"
branch or the "else" branch.  However, the code actually looked at the
last instruction in the "then" branch twice.

13 years agoglsl: Clean up code by adding a new is_break() function.
Kenneth Graunke [Wed, 1 Dec 2010 23:06:47 +0000 (15:06 -0800)]
glsl: Clean up code by adding a new is_break() function.

13 years agoglsl: Correct the marking of InputsRead/OutputsWritten on in/out matrices.
Eric Anholt [Thu, 9 Dec 2010 22:31:43 +0000 (14:31 -0800)]
glsl: Correct the marking of InputsRead/OutputsWritten on in/out matrices.

If you used a constant array index to access the matrix, we'd flag a
bunch of wrong inputs/outputs as being used because the index was
multiplied by matrix columns and the actual used index was left out.

Fixes glsl-mat-attribute.

13 years agointel: Set the swizzling for depth textures using the GL_RED depth mode.
Eric Anholt [Thu, 9 Dec 2010 21:51:21 +0000 (13:51 -0800)]
intel: Set the swizzling for depth textures using the GL_RED depth mode.

Fixes depth-tex-modes-rg.

13 years agointel: Use plain R8 and RG8 for COMPRESSED_RED and COMPRESSED_RG.
Eric Anholt [Thu, 9 Dec 2010 21:45:47 +0000 (13:45 -0800)]
intel: Use plain R8 and RG8 for COMPRESSED_RED and COMPRESSED_RG.

Fixes texture-rg.

13 years agoi965: Silence uninitialized variable warning.
Vinson Lee [Thu, 9 Dec 2010 22:17:17 +0000 (14:17 -0800)]
i965: Silence uninitialized variable warning.

Fixes this GCC warning.
brw_fs.cpp: In function 'brw_reg brw_reg_from_fs_reg(fs_reg*)':
brw_fs.cpp:3255: warning: 'brw_reg' may be used uninitialized in this function

13 years agor600g: Fix SCons build.
Vinson Lee [Thu, 9 Dec 2010 22:03:58 +0000 (14:03 -0800)]
r600g: Fix SCons build.

13 years agor600g: indentation cleanup
Jerome Glisse [Thu, 9 Dec 2010 21:16:22 +0000 (16:16 -0500)]
r600g: indentation cleanup

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agor600g: specialized upload manager
Jerome Glisse [Wed, 8 Dec 2010 18:41:25 +0000 (13:41 -0500)]
r600g: specialized upload manager

Allow important performance increase by doing hw specific implementation
of the upload manager helper. Drop the range flushing that is not hit with
this code (and wasn't with previous neither). Performance improvement are
mostly visible on slow CPU.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agor600g: avoid using pb* helper we are loosing previous cpu cycle with it
Jerome Glisse [Thu, 9 Dec 2010 18:07:10 +0000 (13:07 -0500)]
r600g: avoid using pb* helper we are loosing previous cpu cycle with it

r600g is up to a point where all small CPU cycle matter and pb* turn
high on profile. It's mostly because pb try to be generic and thus
trigger unecessary check for r600g driver. To avoid having too much
abstraction & too much depth in the call embedded everythings into
r600_bo. Make code simpler & faster. The performance win highly depend
on the CPU & application considered being more important on slower CPU
and marginal/unoticeable on faster one.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agoglsl: fix lowering conditional returns in subroutines
Fabian Bieler [Wed, 1 Dec 2010 13:44:58 +0000 (14:44 +0100)]
glsl: fix lowering conditional returns in subroutines

this fix applies to the lower_sub_return 'branch' of the lower_jumps pass

Fixes piglit tests glsl-functions-5 and glsl-functions-6.

13 years agoi965: remove unused variable since brw_wm_glsl.c removal.
Eric Anholt [Thu, 9 Dec 2010 19:10:31 +0000 (11:10 -0800)]
i965: remove unused variable since brw_wm_glsl.c removal.

13 years agoi965: Set render_cache_read_write surface state bit on gen6 constant surfs.
Eric Anholt [Thu, 9 Dec 2010 18:03:49 +0000 (10:03 -0800)]
i965: Set render_cache_read_write surface state bit on gen6 constant surfs.

This is said to be required in the spec, even when you aren't doing writes.

13 years agoi965: Set up the correct texture border color state struct for Ironlake.
Eric Anholt [Wed, 16 Jun 2010 00:58:14 +0000 (17:58 -0700)]
i965: Set up the correct texture border color state struct for Ironlake.

This doesn't actually fix border color on Ironlake, but it appears to
be a requirement, and gen6 needs it too.

13 years agoi965: Clean up VS constant buffer location setup.
Eric Anholt [Thu, 9 Dec 2010 17:26:41 +0000 (09:26 -0800)]
i965: Clean up VS constant buffer location setup.

13 years agoi965: Fix VS constants regression pre-gen6.
Eric Anholt [Thu, 9 Dec 2010 17:17:59 +0000 (09:17 -0800)]
i965: Fix VS constants regression pre-gen6.

Last minute change for gen6 with 0 used params dropped the multiply.

13 years agollvmpipe: Plug fence leaks.
José Fonseca [Tue, 7 Dec 2010 16:59:25 +0000 (16:59 +0000)]
llvmpipe: Plug fence leaks.

13 years agomesa: allow GLfixed arrays for OpenGL ES 2.0
Shuang He [Thu, 9 Dec 2010 00:49:51 +0000 (08:49 +0800)]
mesa: allow GLfixed arrays for OpenGL ES 2.0

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Fix glTexCoordPointer with type GL_FIXED.
Chia-I Wu [Thu, 9 Dec 2010 11:37:15 +0000 (19:37 +0800)]
mesa: Fix glTexCoordPointer with type GL_FIXED.

GL_FIXED is also a legal type for glTexCoordPointer.

13 years agomesa: Fix GL_FIXED arrays.
Chia-I Wu [Thu, 9 Dec 2010 11:05:50 +0000 (19:05 +0800)]
mesa: Fix GL_FIXED arrays.

It is broken since 433e5e6defc85d8b1d6262aff990e3f5a8b37027.

13 years agoi965: Drop push-mode reladdr constant loading and always use constant_map.
Eric Anholt [Thu, 9 Dec 2010 01:00:54 +0000 (17:00 -0800)]
i965: Drop push-mode reladdr constant loading and always use constant_map.

This eases the gen6 implementation, which can only handle up to 32
registers of constants, while likely not penalizing real apps using
reladdr since all of those I've seen also end up hitting the pull
constant buffer.  On gen6, the constant map means that simple NV VPs
fit under the 32-reg limit and now succeed.  Fixes around 10 testcases.

13 years agoradeon: bump mip tree levels to 15
Alex Deucher [Thu, 9 Dec 2010 05:13:21 +0000 (00:13 -0500)]
radeon: bump mip tree levels to 15

I forgot to bump this when I bumped the tex levels.

13 years agomesa: simplify target checking for TexImage functions
Brian Paul [Thu, 9 Dec 2010 04:38:35 +0000 (21:38 -0700)]
mesa: simplify target checking for TexImage functions

13 years agomesa: revamp error checking for compressed texture images
Brian Paul [Thu, 9 Dec 2010 04:38:35 +0000 (21:38 -0700)]
mesa: revamp error checking for compressed texture images

Simplify some code, remove unneeded checks, etc.

13 years agoglsl: In ast_to_hir, check sampler array indexing
Chad Versace [Tue, 7 Dec 2010 18:35:36 +0000 (10:35 -0800)]
glsl: In ast_to_hir, check sampler array indexing

Raise error if a sampler array is indexed with a non-constant expression.

From section 4.1.7 of the GLSL 1.30 spec:
  "Samplers aggregated into arrays within a shader (using square
  brackets [ ]) can only be indexed with integral constant
  expressions [...]."

13 years agoi965: Drop KIL_NV from the ff/ARB_fp path since it was only used for GLSL.
Eric Anholt [Wed, 8 Dec 2010 18:59:58 +0000 (10:59 -0800)]
i965: Drop KIL_NV from the ff/ARB_fp path since it was only used for GLSL.

13 years agoi965: Use the new pixel mask location for gen6 ARB_fp KIL instructions.
Eric Anholt [Wed, 8 Dec 2010 18:57:22 +0000 (10:57 -0800)]
i965: Use the new pixel mask location for gen6 ARB_fp KIL instructions.

Fixes:
fp-kil
fp-generic/kil-swizzle.

13 years agoi965: Set the render target index in gen6 fixed-function/ARB_fp path.
Eric Anholt [Wed, 8 Dec 2010 18:17:24 +0000 (10:17 -0800)]
i965: Set the render target index in gen6 fixed-function/ARB_fp path.

Fixes:
fbo-drawbuffers2-blend
fbo-drawbuffers2-colormask

13 years agoi965: Set up the per-render-target blend state on gen6.
Eric Anholt [Wed, 8 Dec 2010 18:12:20 +0000 (10:12 -0800)]
i965: Set up the per-render-target blend state on gen6.

This will let us get EXT_draw_buffers2 blending and colormasking working.

13 years agoi965: Set up the color masking for the first drawbuffer on gen6.
Eric Anholt [Wed, 8 Dec 2010 17:52:56 +0000 (09:52 -0800)]
i965: Set up the color masking for the first drawbuffer on gen6.

Fixes glean/maskedClear

13 years agomesa: Do not advertise GL_OES_texture_3D.
Chia-I Wu [Wed, 8 Dec 2010 14:33:07 +0000 (22:33 +0800)]
mesa: Do not advertise GL_OES_texture_3D.

GL_OES_texture_3D has a GLSL counterpart.  Since it is not implemented,
GL_OES_texture_3D should not be advertised.

13 years agovbo: Fix GLES2 glVertexAttrib.
Chia-I Wu [Tue, 7 Dec 2010 13:33:53 +0000 (21:33 +0800)]
vbo: Fix GLES2 glVertexAttrib.

Attribute 0 has no special meaning in GLES2.  Add VertexAttrib4f_nopos
for that purpose and make _es_VertexAttrib* call the new function.

Rename _vbo_* to _es_* to avoid confusion.  These functions are only
used by GLES, and now some of them (_es_VertexAttrib*) even behave
differently than vbo_VertexAttrib*.

13 years agovbo: Drop second ATTR macro.
Chia-I Wu [Tue, 7 Dec 2010 13:22:28 +0000 (21:22 +0800)]
vbo: Drop second ATTR macro.

There is no need to have a special version of ATTR for
!FEATURE_beginend, since 81ccb3e2ce708619f4c23537a237d61bdffdd35f.

13 years agoconfigure: use llvm-config --cppflags instead of --cflags
Brian Paul [Wed, 8 Dec 2010 13:44:42 +0000 (06:44 -0700)]
configure: use llvm-config --cppflags instead of --cflags

13 years agomesa: make _mesa_test_proxy_teximage() easier to read
Brian Paul [Wed, 8 Dec 2010 04:37:20 +0000 (21:37 -0700)]
mesa: make _mesa_test_proxy_teximage() easier to read

13 years agomesa: consolidate glCompressedTexImage1/2/3D() functions
Brian Paul [Wed, 8 Dec 2010 04:37:20 +0000 (21:37 -0700)]
mesa: consolidate glCompressedTexImage1/2/3D() functions

13 years agomesa: consolidate glCopyTexSubImage1/2/3D() functions
Brian Paul [Wed, 8 Dec 2010 04:37:20 +0000 (21:37 -0700)]
mesa: consolidate glCopyTexSubImage1/2/3D() functions

13 years agomesa: consolidate glCopyTexImage1/2D() code
Brian Paul [Wed, 8 Dec 2010 04:37:19 +0000 (21:37 -0700)]
mesa: consolidate glCopyTexImage1/2D() code

13 years agomesa: consolidate the glTexSubImage1/2/3D() functions
Brian Paul [Wed, 8 Dec 2010 04:37:19 +0000 (21:37 -0700)]
mesa: consolidate the glTexSubImage1/2/3D() functions

13 years agomesa: simplify proxy texture code in texture_error_check()
Brian Paul [Wed, 8 Dec 2010 04:37:19 +0000 (21:37 -0700)]
mesa: simplify proxy texture code in texture_error_check()

13 years agor300/compiler: remove at least unused immediates if externals cannot be removed
Marek Olšák [Wed, 8 Dec 2010 03:27:58 +0000 (04:27 +0100)]
r300/compiler: remove at least unused immediates if externals cannot be removed

13 years agor300/compiler: make lowering passes possibly use up to two less temps
Marek Olšák [Tue, 7 Dec 2010 20:57:18 +0000 (21:57 +0100)]
r300/compiler: make lowering passes possibly use up to two less temps

CMP may now use two less temps, other non-native instructions may end up
using one less temp, except for SIN/COS/SCS, which I am leaving unchanged
for now.

This may reduce register pressure inside loops, because the register
allocator doesn't do a very good job there.

13 years agor300/compiler: handle DPH and XPD in rc_compute_sources_for_writemask
Marek Olšák [Wed, 8 Dec 2010 00:59:33 +0000 (01:59 +0100)]
r300/compiler: handle DPH and XPD in rc_compute_sources_for_writemask

This bug can only be triggered if you put deadcode before native rewrite.

13 years agor300/compiler: do not print pair/tex/presub program stats for vertex shaders
Marek Olšák [Wed, 8 Dec 2010 00:58:00 +0000 (01:58 +0100)]
r300/compiler: do not print pair/tex/presub program stats for vertex shaders

13 years agor300/compiler: cleanup rc_run_compiler
Marek Olšák [Tue, 7 Dec 2010 23:18:05 +0000 (00:18 +0100)]
r300/compiler: cleanup rc_run_compiler

13 years agor300/compiler: add a function to query program stats (alu, tex, temps..)
Marek Olšák [Tue, 7 Dec 2010 22:34:21 +0000 (23:34 +0100)]
r300/compiler: add a function to query program stats (alu, tex, temps..)

13 years agor300/compiler: don't terminate regalloc if we surpass max temps limit
Marek Olšák [Tue, 7 Dec 2010 20:45:34 +0000 (21:45 +0100)]
r300/compiler: don't terminate regalloc if we surpass max temps limit

The same check is already in a later pass (translate_vertex_program).

13 years agoi965: Don't try to store gen6 (float) blend constant color in bytes.
Eric Anholt [Wed, 8 Dec 2010 03:29:26 +0000 (19:29 -0800)]
i965: Don't try to store gen6 (float) blend constant color in bytes.

Fixes glean/blendFunc

13 years agolinker: Fix regressions caused by previous commit
Ian Romanick [Wed, 8 Dec 2010 03:00:44 +0000 (19:00 -0800)]
linker: Fix regressions caused by previous commit

That's what I get for not running piglit before pushing.

Don't try to patch types of unsized arrays when linking fails.

Don't try to patch types of unsized arrays that are shared between
shader stages.

13 years agolinker: Ensure that unsized arrays have a size after linking
Ian Romanick [Wed, 8 Dec 2010 02:30:33 +0000 (18:30 -0800)]
linker: Ensure that unsized arrays have a size after linking

Fixes piglit test case glsl-vec-array (bugzilla #31908).

NOTE: This bug does not affect 7.9, but I think this patch is a
candiate for the 7.9 branch anyway.

13 years agoi965: Fix flipped value of the not-embedded-in-if on gen6.
Eric Anholt [Wed, 8 Dec 2010 01:07:05 +0000 (17:07 -0800)]
i965: Fix flipped value of the not-embedded-in-if on gen6.

Fixes:
glean/glsl1-! (not) operator (1, fail)
glean/glsl1-! (not) operator (1, pass)

13 years agoglsl: Inherrit type of declared variable from initializer
Ian Romanick [Wed, 8 Dec 2010 00:27:22 +0000 (16:27 -0800)]
glsl: Inherrit type of declared variable from initializer

Types of declared variables and their initializer must match excatly
except for unsized arrays.  Previously the type inherritance for
unsized arrays happened implicitly in the emitted assignment.
However, this assignment is never emitted for uniforms.  Now that type
is explicitly copied unconditionally.

Fixes piglit test array-compare-04.vert (bugzilla #32035) and
glsl-array-uniform-length (bugzilla #31985).

NOTE: This is a candidate for the 7.9 branch.

13 years agoi965: Work around gen6 ignoring source modifiers on math instructions.
Eric Anholt [Tue, 7 Dec 2010 22:50:50 +0000 (14:50 -0800)]
i965: Work around gen6 ignoring source modifiers on math instructions.

With the change of extended math from having the arguments moved into
mrfs and handed off through message passing to being directly hooked
up to the EU, it looks like the piece for doing source modifiers
(negate and abs) was left out.

Fixes:
fog-modes
glean/fp1-ARB_fog_exp test
glean/fp1-ARB_fog_exp2 test
glean/fp1-Computed fog exp test
glean/fp1-Computed fog exp2 test
ext_fog_coord-modes

13 years agoi965: Add disabled debug code for dumping out the WM constant payload.
Eric Anholt [Tue, 7 Dec 2010 22:46:27 +0000 (14:46 -0800)]
i965: Add disabled debug code for dumping out the WM constant payload.

This can significantly ease thinking about the asm.

13 years agoi965: Correctly emit constants for aggregate types (array, matrix, struct)
Ian Romanick [Tue, 7 Dec 2010 22:50:34 +0000 (14:50 -0800)]
i965: Correctly emit constants for aggregate types (array, matrix, struct)

Previously the code only handled scalars and vectors.  This new code
is modeled somewhat after similar code in ir_to_mesa.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agor600g: fix userspace fence against lastest kernel
Jerome Glisse [Tue, 7 Dec 2010 20:15:58 +0000 (15:15 -0500)]
r600g: fix userspace fence against lastest kernel

R6XX GPU doesn't like to have two partial flush writting
back to memory in row without a prior flush of the pipeline.
Add PS_PARTIAL_FLUSH to flush all work between the CP and
the ES, GS, VS, PS shaders.

Thanks a lot to Alban Browaeys (prahal on irc) for investigating
this issue.

Signed-off-by: Alban Browaeys <prahal@yahoo.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agor600g: remove dead code
Jerome Glisse [Tue, 7 Dec 2010 21:11:51 +0000 (16:11 -0500)]
r600g: remove dead code

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
13 years agoi965: Always hand the absolute value to RSQ.
Eric Anholt [Tue, 7 Dec 2010 20:34:30 +0000 (12:34 -0800)]
i965: Always hand the absolute value to RSQ.

gen6 builtin RSQ apparently clamps negative values to 0 instead of
returning the RSQ of the absolute value like ARB_fragment_program
desires and pre-gen6 apparently does.

Fixes:
glean/fp1-RSQ test 2 (reciprocal square root of negative value)
glean/vp1-RSQ test 2 (reciprocal square root of negative value)

13 years agoglsl: Ensure that equality comparisons don't return a NULL IR tree
Ian Romanick [Thu, 2 Dec 2010 20:17:36 +0000 (12:17 -0800)]
glsl: Ensure that equality comparisons don't return a NULL IR tree

This fixes bugzilla #32035 and piglit test case array-compare-01 and
array-compare-02.

NOTE: This is a candidate for the 7.9 branch.

13 years agoi965: Handle saturates on gen6 math instructions.
Eric Anholt [Tue, 7 Dec 2010 19:32:50 +0000 (11:32 -0800)]
i965: Handle saturates on gen6 math instructions.

We get saturate as an argument to brw_math() instead of as compile
state, since that's how the pre-gen6 send instructions work.  Fixes
fp-ex2-sat.

13 years agoi965: Fix comment about gen6_wm_constants.
Eric Anholt [Tue, 7 Dec 2010 19:33:34 +0000 (11:33 -0800)]
i965: Fix comment about gen6_wm_constants.

This is the push constant buffer, not the pull constants.

13 years agoRefresh autogenerated glcpp parser.
Kenneth Graunke [Tue, 7 Dec 2010 18:48:10 +0000 (10:48 -0800)]
Refresh autogenerated glcpp parser.

13 years agoglcpp: Don't emit SPACE tokens in conditional_tokens production.
Kenneth Graunke [Tue, 7 Dec 2010 18:47:50 +0000 (10:47 -0800)]
glcpp: Don't emit SPACE tokens in conditional_tokens production.

Fixes glslparsertest defined-01.vert.

Reported-by: José Fonseca <jfonseca@vmware.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Carl Worth <cworth@cworth.org>
13 years agor300g: also revalidate the SWTCL vertex buffer after its reallocation
Marek Olšák [Tue, 7 Dec 2010 18:24:19 +0000 (19:24 +0100)]
r300g: also revalidate the SWTCL vertex buffer after its reallocation

13 years agoi965: upload WM state for _NEW_POLYGON on sandybridge
Zhenyu Wang [Tue, 7 Dec 2010 09:02:02 +0000 (17:02 +0800)]
i965: upload WM state for _NEW_POLYGON on sandybridge

Be sure polygon stipple mode is updated. This fixes 'gamma' demo.

13 years agor200: Silence uninitialized variable warning.
Vinson Lee [Tue, 7 Dec 2010 08:56:07 +0000 (00:56 -0800)]
r200: Silence uninitialized variable warning.

Fixes this GCC warning.
r200_maos_arrays.c: In function 'r200EmitArrays':
r200_maos_arrays.c:113: warning: 'emitsize' may be used uninitialized in this function

13 years agoi965: set minimum/maximum Point Width on Sandybridge
Xiang, Haihao [Tue, 7 Dec 2010 08:30:00 +0000 (16:30 +0800)]
i965: set minimum/maximum Point Width on Sandybridge

It is used for point width on vertex. This fixes mesa demo spriteblast and pointblast.

13 years agomesa: Clean up header file inclusion in viewport.h.
Vinson Lee [Tue, 7 Dec 2010 08:37:48 +0000 (00:37 -0800)]
mesa: Clean up header file inclusion in viewport.h.