mesa.git
12 years agoglsl: Fix ir_last_opcode value.
Ian Romanick [Thu, 29 Mar 2012 17:51:24 +0000 (10:51 -0700)]
glsl: Fix ir_last_opcode value.

Now that ir_quadop_vector exists, ir_last_binop and ir_last_opcode are
no longer the same.  Only one place currently uses this enumeration, and
already handles ir_quadop_vector correctly.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Olivier Galibert <galibert@pobox.com>
12 years agoglsl: Request an Nx1 type instance in ir_quadop_vector lowering pass.
Ian Romanick [Thu, 22 Mar 2012 22:09:40 +0000 (15:09 -0700)]
glsl: Request an Nx1 type instance in ir_quadop_vector lowering pass.

No types have 0 columns.  The glsl_type::get_instance method contains

   if ((rows < 1) || (rows > 4) || (columns < 1) || (columns > 4))
      return error_type;

To get a vector, use columns = 1.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Olivier Galibert <galibert@pobox.com>
12 years agoglsl: Make bvec and ivec types accessible without using get_instance.
Kenneth Graunke [Thu, 26 Jul 2012 06:07:16 +0000 (23:07 -0700)]
glsl: Make bvec and ivec types accessible without using get_instance.

It's more convenient to use shortcuts like glsl_type::bvec2_type than
the longwinded glsl_type::get_instance(GLSL_TYPE_BOOL, 2, 1).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Olivier Galibert <galibert@pobox.com>
12 years agoradeon/llvm: Cleanup AMDIL.h
Tom Stellard [Mon, 30 Jul 2012 16:28:50 +0000 (16:28 +0000)]
radeon/llvm: Cleanup AMDIL.h

12 years agoradeon/llvm: Rename all AMDIL* classes to AMDGPU*
Tom Stellard [Mon, 30 Jul 2012 15:57:50 +0000 (15:57 +0000)]
radeon/llvm: Rename all AMDIL* classes to AMDGPU*

12 years agoradeon/llvm: Merge AMDILSubtarget into AMDGPUSubtarget
Tom Stellard [Mon, 30 Jul 2012 15:51:21 +0000 (15:51 +0000)]
radeon/llvm: Merge AMDILSubtarget into AMDGPUSubtarget

12 years agoradeon/llvm: Merge AMDILTargetLowering class into AMDGPUTargetLowering
Tom Stellard [Mon, 30 Jul 2012 15:23:21 +0000 (15:23 +0000)]
radeon/llvm: Merge AMDILTargetLowering class into AMDGPUTargetLowering

12 years agoradeon/llvm: Remove IL_cmp DAG node
Tom Stellard [Mon, 30 Jul 2012 14:21:16 +0000 (14:21 +0000)]
radeon/llvm: Remove IL_cmp DAG node

12 years agoradeon/llvm: Cleanup and reorganize AMDIL .td files
Tom Stellard [Fri, 27 Jul 2012 21:04:36 +0000 (21:04 +0000)]
radeon/llvm: Cleanup and reorganize AMDIL .td files

12 years agoradeon/llvm: Remove lowering code for unsupported features
Tom Stellard [Fri, 27 Jul 2012 20:06:43 +0000 (20:06 +0000)]
radeon/llvm: Remove lowering code for unsupported features

e.g. function calls, load/store from stack

12 years agoradeon/llvm: Remove AMDILVersion.td
Tom Stellard [Fri, 27 Jul 2012 19:31:08 +0000 (19:31 +0000)]
radeon/llvm: Remove AMDILVersion.td

12 years agoradeon/llvm: Remove AMDILAlgorithms.tpp
Tom Stellard [Fri, 27 Jul 2012 19:26:31 +0000 (19:26 +0000)]
radeon/llvm: Remove AMDILAlgorithms.tpp

12 years agoradeon/llvm: Merge AMDILInstrInfo.cpp into AMDGPUInstrInfo.cpp
Tom Stellard [Fri, 27 Jul 2012 19:18:04 +0000 (19:18 +0000)]
radeon/llvm: Merge AMDILInstrInfo.cpp into AMDGPUInstrInfo.cpp

12 years agoradeon/llvm: Merge AMDILRegisterInfo into AMDGPURegisterInfo
Tom Stellard [Fri, 27 Jul 2012 18:54:46 +0000 (18:54 +0000)]
radeon/llvm: Merge AMDILRegisterInfo into AMDGPURegisterInfo

12 years agoradeon/llvm: Change the tablegen target from AMDIL to AMDGPU
Tom Stellard [Fri, 27 Jul 2012 17:46:40 +0000 (17:46 +0000)]
radeon/llvm: Change the tablegen target from AMDIL to AMDGPU

12 years agoi965: Support MESA_FORMAT_SIGNED_RGBA_16.
Kenneth Graunke [Sat, 9 Jun 2012 09:33:22 +0000 (02:33 -0700)]
i965: Support MESA_FORMAT_SIGNED_RGBA_16.

The hardware supports this format with no known quirks, so we may as
well enable it.

Alpha blending is not supported until Sandybridge, but as far as I can
tell, OpenGL doesn't require alpha blending on SNORM formats.  Plus, we
already expose R8G8B8A8_SNORM which has a similar restriction.

Fixes 6 piglit texwrap-2D-*SNORM* cases,
gl-3.1/required-sized-texture-formats, and 10 oglconform snorm-textures
subcases

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agogbm: Fix build for wayland include
Elvis Lee [Thu, 19 Jul 2012 04:54:05 +0000 (13:54 +0900)]
gbm: Fix build for wayland include

backends/gbm_dri.c fails to find wayland-server.h.

Signed-off-by: Elvis Lee <kwangwoong.lee@lge.com>
12 years agomesa: fix _math_matrix_copy(), again
Brian Paul [Mon, 30 Jul 2012 14:29:08 +0000 (08:29 -0600)]
mesa: fix _math_matrix_copy(), again

The matrix is 16 GLfloats in size.  Since from->inv is just a pointer (not
an array), sizeof(*from->inv) wasn't right.

12 years agomesa: Fix wrong sizeof argument in _math_matrix_copy.
Vinson Lee [Mon, 30 Jul 2012 00:54:55 +0000 (17:54 -0700)]
mesa: Fix wrong sizeof argument in _math_matrix_copy.

Fixes Coverity wrong sizeof argument defect.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoradeonsi: fix db and stencil setup v2
Christian König [Fri, 27 Jul 2012 19:57:40 +0000 (21:57 +0200)]
radeonsi: fix db and stencil setup v2

v2: fix tiling for small pitches, that finally makes
    glxgears and readPixSanity work

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix stencil op mapping
Christian König [Thu, 26 Jul 2012 11:53:42 +0000 (13:53 +0200)]
radeonsi: fix stencil op mapping

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix assertion in si_bind_vs_sampler
Christian König [Wed, 25 Jul 2012 20:45:08 +0000 (22:45 +0200)]
radeonsi: fix assertion in si_bind_vs_sampler

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix shader binding
Christian König [Wed, 25 Jul 2012 20:39:15 +0000 (22:39 +0200)]
radeonsi: fix shader binding

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix dummy export in shaders v2
Christian König [Wed, 25 Jul 2012 19:58:46 +0000 (21:58 +0200)]
radeonsi: fix dummy export in shaders v2

v2: add assertion for vertex shader

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix vertex buffer and elements
Christian König [Wed, 25 Jul 2012 09:22:59 +0000 (11:22 +0200)]
radeonsi: fix vertex buffer and elements

Let's just use the T# descriptors until we get a fetch shader.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix shader size and handling
Christian König [Tue, 24 Jul 2012 16:50:49 +0000 (18:50 +0200)]
radeonsi: fix shader size and handling

We should always upload the shader here.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: rename r600_resource to si_resource
Christian König [Tue, 24 Jul 2012 16:47:19 +0000 (18:47 +0200)]
radeonsi: rename r600_resource to si_resource

Also split it into seperate header and add
some helper functions.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoglcpp: Add a newline to expanded #line directives.
Kenneth Graunke [Sat, 28 Jul 2012 20:04:53 +0000 (13:04 -0700)]
glcpp: Add a newline to expanded #line directives.

Otherwise, the preprocessor happily outputs

    #line 2 4 <your next line of code>

and the main compiler gets horribly confused and fails to compile.

This is not the right solution (line numbers in error messages will
likely be off-by-one in certain circumstances), but until Carl comes
up with a proper fix, this gets programs running again.

Fixes regressions in Regnum Online, Overgrowth, Piglit, and others since
commit aac78ce8234d96932c38b3f48b1d828077bc0027.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51802
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51506
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41152
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agogallium: specify resource_resolve destination via a pipe_surface
Christoph Bumiller [Wed, 25 Jul 2012 11:47:58 +0000 (13:47 +0200)]
gallium: specify resource_resolve destination via a pipe_surface

The format member of pipe_surface may differ from that of the
pipe_resource, which is used to communicate, for instance, whether
sRGB encode should be enabled in the resolve operation or not.

Fixes resolve to sRGB surfaces in mesa/st when GL_FRAMEBUFFER_SRGB
is disabled.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agost/mesa: call update_renderbuffer_surface for sRGB renderbuffers, too
Christoph Bumiller [Fri, 20 Jul 2012 18:57:45 +0000 (20:57 +0200)]
st/mesa: call update_renderbuffer_surface for sRGB renderbuffers, too

sRGBEnabled should affect both textures and renderbuffers, so we need
to check/update the pipe_surface format for both.

Fixes, for instance, rendering appearing too bright in wine applications
using sRGB multisample renderbuffers.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agonv50: fix depth/stencil multisample memory storage types
Christoph Bumiller [Wed, 25 Jul 2012 14:16:11 +0000 (16:16 +0200)]
nv50: fix depth/stencil multisample memory storage types

Leftover from libdrm_nouveau v2 interface change.

12 years agonv50: fix resource_resolve shader start offsets
Christoph Bumiller [Mon, 23 Jul 2012 11:04:34 +0000 (13:04 +0200)]
nv50: fix resource_resolve shader start offsets

12 years agost/mesa: undo a couple static asserts
Brian Paul [Fri, 27 Jul 2012 22:10:35 +0000 (16:10 -0600)]
st/mesa: undo a couple static asserts

Hmm, gcc didn't catch these mistakes, but MSVC did.

12 years agost/mesa: use STATIC_ASSERT in a few places
Brian Paul [Fri, 27 Jul 2012 21:45:27 +0000 (15:45 -0600)]
st/mesa: use STATIC_ASSERT in a few places

12 years agomesa: whitespace, etc. fixes in program.h
Brian Paul [Fri, 27 Jul 2012 21:43:53 +0000 (15:43 -0600)]
mesa: whitespace, etc. fixes in program.h

12 years agometa: fix glDrawPixels fallback test, stencil drawing
Brian Paul [Fri, 27 Jul 2012 14:22:44 +0000 (08:22 -0600)]
meta: fix glDrawPixels fallback test, stencil drawing

Remove the check for pixel transfer ops.  If any RGB/depth scale/bias
is in effect, it'll be applied in the glTexImage step.

If drawing stencil pixels we need to disable pixel transfer so that
alpha scale/bias are not applied to the stencil data.

These issues were spotted by Roland.

Fixes Blender performance issues reported in
http://bugs.freedesktop.org/show_bug.cgi?id=47375

NOTE: This is a candidate for the 8.0 branch.

Tested-by: Barto <mister.freeman@laposte.net>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
12 years agoradeon: fix 'sowftware' typo
Brian Paul [Thu, 26 Jul 2012 22:15:50 +0000 (16:15 -0600)]
radeon: fix 'sowftware' typo

12 years agoi965/gen7: Reduce GT1 WM thread count according to updated BSpec.
Eric Anholt [Fri, 27 Jul 2012 18:34:07 +0000 (11:34 -0700)]
i965/gen7: Reduce GT1 WM thread count according to updated BSpec.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
https://bugs.freedesktop.org/show_bug.cgi?id=52382

12 years agoi965: Fix typo in shader channel select field name.
Kenneth Graunke [Fri, 27 Jul 2012 18:24:19 +0000 (11:24 -0700)]
i965: Fix typo in shader channel select field name.

"chanel" isn't very searchable.  I can type, honest!

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: Use MESA_FORMAT_R8 for MCS buffer.
Paul Berry [Thu, 26 Jul 2012 21:13:35 +0000 (14:13 -0700)]
i965/msaa: Use MESA_FORMAT_R8 for MCS buffer.

No functional change.  This patch modifies intel_miptree_alloc_mcs to
allocate the 4x MCS buffer using MESA_FORMAT_R8 instead of
MESA_FORMAT_A8.  In principle it doesn't matter, since we only access
the buffer using MCS-specific hardware mechanisms, so all that's
important is to use a format with the correct size.  However,
MESA_FORMAT_A8 has enough unusual behaviours that it seems prudent to
avoid it.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agointel: increase wm thread number to 80 on gen6 GT2
Zou Nan hai [Thu, 26 Jul 2012 22:04:02 +0000 (06:04 +0800)]
intel: increase wm thread number to 80 on gen6 GT2

It seems reset is not required for setting the max_wm_threads to 80
on gen6 GT2.

Increases performance in the Counter-Strike: Source video stress test
by 7.18% (n=5).

Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Matt Turner <mattst88@gmail.com>
Acked-by: Eric Anholt <eric@anholt.net>
12 years agor600g: Emit dispatch state for compute directly to the cs
Tom Stellard [Tue, 24 Jul 2012 16:59:05 +0000 (16:59 +0000)]
r600g: Emit dispatch state for compute directly to the cs

We no longer rely on an evergreen_compute_resource for emitting dispatch
state.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g: Initialize VGT_PRIMITIVE_TYPE in the start_cs_cmd atom
Tom Stellard [Tue, 24 Jul 2012 14:49:25 +0000 (14:49 +0000)]
r600g: Initialize VGT_PRIMITIVE_TYPE in the start_cs_cmd atom

The value of this register will always be DI_PT_POINTLIST for compute
shaders.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g: Atomize compute shader state
Tom Stellard [Tue, 24 Jul 2012 14:23:12 +0000 (14:23 +0000)]
r600g: Atomize compute shader state

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g: Add helper functions for emitting compute SET_CONTEXT packets
Tom Stellard [Tue, 24 Jul 2012 17:33:19 +0000 (17:33 +0000)]
r600g: Add helper functions for emitting compute SET_CONTEXT packets

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agoradeon/llvm: Add instruction defs for branches on SI
Tom Stellard [Wed, 25 Jul 2012 12:56:08 +0000 (08:56 -0400)]
radeon/llvm: Add instruction defs for branches on SI

12 years agoradeon/llvm: Fix VOPC and V_CNDMASK encoding
Tom Stellard [Thu, 26 Jul 2012 12:41:00 +0000 (08:41 -0400)]
radeon/llvm: Fix VOPC and V_CNDMASK encoding

12 years agoradeon/llvm: Assert if we try to copy SCC reg
Tom Stellard [Wed, 25 Jul 2012 12:46:35 +0000 (08:46 -0400)]
radeon/llvm: Assert if we try to copy SCC reg

12 years agoradeon/llvm: Add SI DAG optimizations for setcc, select_cc
Tom Stellard [Wed, 25 Jul 2012 12:40:30 +0000 (08:40 -0400)]
radeon/llvm: Add SI DAG optimizations for setcc, select_cc

These are needed for correctly lowering branch instructions in some
cases.

12 years agoradeon/llvm: Add support for encoding SI branch instructions
Tom Stellard [Wed, 25 Jul 2012 12:32:43 +0000 (08:32 -0400)]
radeon/llvm: Add support for encoding SI branch instructions

12 years agoradeon/llvm: Add special nodes for SALU operations on VCC
Tom Stellard [Wed, 25 Jul 2012 12:30:32 +0000 (08:30 -0400)]
radeon/llvm: Add special nodes for SALU operations on VCC

The VCC register is tricky because the SALU views it as 64-bit, but the
VALU views it as 1-bit.  In order to deal with this we've added some
special bitcast and binary operations to help convert from the 64-bit
SALU view to the 1-bit VALU view and vice versa.

12 years agoradeon/llvm: Add i1 registers for SI.
Tom Stellard [Wed, 25 Jul 2012 12:27:50 +0000 (08:27 -0400)]
radeon/llvm: Add i1 registers for SI.

12 years agoradeon/llvm: Fix CCReg definitions on SI
Tom Stellard [Wed, 25 Jul 2012 12:33:34 +0000 (08:33 -0400)]
radeon/llvm: Fix CCReg definitions on SI

12 years agoradeonsi: Enable PIPE_SHADER_CAP_INTEGERS
Tom Stellard [Wed, 25 Jul 2012 12:22:30 +0000 (08:22 -0400)]
radeonsi: Enable PIPE_SHADER_CAP_INTEGERS

12 years agoradeonsi: Add support for loading integers from constant memory
Tom Stellard [Wed, 25 Jul 2012 12:23:52 +0000 (08:23 -0400)]
radeonsi: Add support for loading integers from constant memory

12 years agoradeon/llvm: Add bitconvert patterns for SI
Tom Stellard [Thu, 19 Jul 2012 17:29:15 +0000 (13:29 -0400)]
radeon/llvm: Add bitconvert patterns for SI

12 years agoradeon/llvm: Add custom lowering for SELECT_CC nodes on SI
Tom Stellard [Thu, 19 Jul 2012 17:28:25 +0000 (13:28 -0400)]
radeon/llvm: Add custom lowering for SELECT_CC nodes on SI

12 years agoradeon/llvm: Move conditional pattern leafs to common tablegen file
Tom Stellard [Thu, 19 Jul 2012 17:26:41 +0000 (13:26 -0400)]
radeon/llvm: Move conditional pattern leafs to common tablegen file

12 years agoradeon/llvm: Implement getSetCCResultType for SI
Tom Stellard [Wed, 25 Jul 2012 12:41:29 +0000 (08:41 -0400)]
radeon/llvm: Implement getSetCCResultType for SI

12 years agoradeon/llvm: Custom lower BR_CC for SI
Tom Stellard [Wed, 18 Jul 2012 17:39:00 +0000 (13:39 -0400)]
radeon/llvm: Custom lower BR_CC for SI

12 years agoradeon/llvm: Move lowering of BR_CC node to R600ISelLowering
Tom Stellard [Wed, 18 Jul 2012 16:47:11 +0000 (12:47 -0400)]
radeon/llvm: Move lowering of BR_CC node to R600ISelLowering

SI will handle BR_CC different from R600, so we need to move it
out of the shared instruction selector.

12 years agoradeon/llvm: Move lowering of SETCC node to R600ISelLowering
Tom Stellard [Wed, 18 Jul 2012 16:26:45 +0000 (12:26 -0400)]
radeon/llvm: Move lowering of SETCC node to R600ISelLowering

SI will handle SETCC different from R600, so we need to move it
out of the shared instruction selector.

12 years agoradeon/llvm: Use correct node type when lowering SETCC
Tom Stellard [Wed, 18 Jul 2012 16:22:33 +0000 (12:22 -0400)]
radeon/llvm: Use correct node type when lowering SETCC

12 years agoradeon/llvm: Move LowerSELECT_CC into R600ISelLowering
Tom Stellard [Wed, 18 Jul 2012 15:59:14 +0000 (11:59 -0400)]
radeon/llvm: Move LowerSELECT_CC into R600ISelLowering

SI will handle SELECT_CC different from R600, so we need to move it out
of the shared instruction selector.

12 years agoautomake: Remove OPT_FLAGS.
Eric Anholt [Thu, 26 Jul 2012 16:35:36 +0000 (09:35 -0700)]
automake: Remove OPT_FLAGS.

If you want to change your compiler arguments, just set CFLAGS/CXXFLAGS.
Having Mesa have this separate variable is a great way to have your arguments
not thoroughly propagated to all compiler invocations.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoautomake: Remove ARCH_FLAGS.
Eric Anholt [Thu, 26 Jul 2012 16:32:56 +0000 (09:32 -0700)]
automake: Remove ARCH_FLAGS.

In all current uses, it was appended to CFLAGS, which already had -m32.  If
you want to do some other flag supplied to compiler invocations, there's
CFLAGS/CXXFLAGS.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: use ROUND_DOWN_TO macro.
Paul Berry [Tue, 24 Jul 2012 21:48:51 +0000 (14:48 -0700)]
i965/msaa: use ROUND_DOWN_TO macro.

No functional change.  This patch modifies brw_blorp_blit.cpp to use
the ROUND_DOWN_TO macro instead of open-coded bit manipulations, for
clarity.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agosvga: initialize svga_compile_key to zeros to be safe
Brian Paul [Thu, 26 Jul 2012 21:55:26 +0000 (15:55 -0600)]
svga: initialize svga_compile_key to zeros to be safe

12 years agosvga: fix invalid memory reference in needs_to_create_zero()
Brian Paul [Thu, 26 Jul 2012 19:26:17 +0000 (13:26 -0600)]
svga: fix invalid memory reference in needs_to_create_zero()

The emit->key.fkey info is only valid if we're generating a fragment shader.
We should not look at it if we're generating a vertex shader.

When generating a vertex shader, the value of emit->key.fkey.num_textures was
garbage and the loop over num_textures would read invalid data.  At best
this would cause us to emit an unused constant.  At worse, we could segfault.
Just by dumb luck, fkey.num_textures was usually a smallish integer.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
12 years agoradeon: fix Base/base typo
Brian Paul [Thu, 26 Jul 2012 21:57:18 +0000 (15:57 -0600)]
radeon: fix Base/base typo

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=52563

12 years agoandroid-build: fix dricore build for autogenerated files (v3)
Daniel Charles [Thu, 26 Jul 2012 21:18:15 +0000 (14:18 -0700)]
android-build: fix dricore build for autogenerated files (v3)

Recently more files were removed from control to be auto-generated
in the dricore library. Android build was not able to locate the
new files if they were not created beforehand.

LOCAL_SRC_FILES includes some of those files and Android.gen.mk
re-defines this variable by filtering out the auto-generated files.
Unfortunately for this variable it is not the same to have the SRCDIR
variable defined as the current directory.

By re-defining SRCDIR for the autotools build the Android build system
is happy again and the new files were actually removed from the sources
to use the auto generated versions.

Also patch d5c1801a018efda8ac2b was partially reverted as the files
can not be compiled to the LOCAL_PATH, instead they should live on the
intermediates folder so that a clean can wipe them out.

v3: [chad] Fix the definition of SRCDIR in libdricore/Makefile.am.

Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
12 years agoradeon: set swrast_renderbuffer::ColorType field when mapping renderbuffers
Brian Paul [Thu, 26 Jul 2012 19:56:39 +0000 (13:56 -0600)]
radeon: set swrast_renderbuffer::ColorType field when mapping renderbuffers

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=47375

NOTE: This is a candidate for the 8.0 branch.

Tested-by: Barto <mister.freeman@laposte.net>
12 years agoxlib: add X error handler around XGetImage() call
Brian Paul [Wed, 25 Jul 2012 22:23:42 +0000 (16:23 -0600)]
xlib: add X error handler around XGetImage() call

XGetImage() will generate a BadMatch error if the source window isn't
visible.  When that happens, create a new XImage.  Fixes piglit 'select'
test failures with swrast/xlib driver.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: remove obsolete matrix comment
Brian Paul [Wed, 25 Jul 2012 13:33:19 +0000 (07:33 -0600)]
mesa: remove obsolete matrix comment

12 years agomesa: fix comment typo: s/pointer/point/
Brian Paul [Wed, 25 Jul 2012 13:33:19 +0000 (07:33 -0600)]
mesa: fix comment typo: s/pointer/point/

12 years agomesa: remove _math_matrix_alloc_inv()
Brian Paul [Wed, 25 Jul 2012 13:33:19 +0000 (07:33 -0600)]
mesa: remove _math_matrix_alloc_inv()

Always allocate space for the inverse matrix in _math_matrix_ctr()
since we were always calling _math_matrix_alloc_inv() anyway.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: loosen small matrix determinant check
Brian Paul [Tue, 24 Jul 2012 17:11:45 +0000 (11:11 -0600)]
mesa: loosen small matrix determinant check

When computing a matrix inverse, if the determinant is too small we could hit
a divide by zero.  There's a check to prevent this (we basically give up on
computing the inverse and return the identity matrix.)  This patch loosens
this test to fix a lighting bug reported by Lars Henning Wendt.

v2: use abs(det) to handle negative values

NOTE: This is a candidate for the 8.0 branch.

Tested-by: Lars Henning Wendt <lars.henning.wendt@gris.tu-darmstadt.de>
12 years agoi965: Use sendc for all render target writes on Gen6+.
Paul Berry [Thu, 19 Jul 2012 14:58:30 +0000 (07:58 -0700)]
i965: Use sendc for all render target writes on Gen6+.

The sendc instruction causes the fragment shader thread to wait for
any dependent threads (i.e. threads rendering to overlapping pixels)
to complete before sending the message.  We need to use sendc on the
first render target write in order to guarantee that fragment shader
outputs are written to the render target in the correct order.

Previously, we only used the "sendc" instruction when writing to
binding table index 0.  This did the right thing for fragment shaders,
because our fragment shader back-ends always issue their first render
target write to binding table index 0.  However, it did the wrong
thing for blorp, which performs its render target writes to binding
table index 1.

A more robust solution is to use sendc for all render target writes.
This should not produce any performance penalty, since after the first
sendc, all of the dependent threads will have completed.

For more information about sendc, see the Ivy Bridge PRM, Vol4 Part3
p218 (sendc - Conditional Send Message), and p54 (TDR Registers).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965/msaa: Remove TODO comments that are no longer relevant.
Paul Berry [Wed, 18 Jul 2012 16:54:04 +0000 (09:54 -0700)]
i965/msaa: Remove TODO comments that are no longer relevant.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agointel: Make more consistent use of _mesa_is_{user,winsys}_fbo()
Paul Berry [Wed, 18 Jul 2012 19:54:48 +0000 (12:54 -0700)]
intel: Make more consistent use of _mesa_is_{user,winsys}_fbo()

A lot of code was still differentiating between between winsys and
user fbos by testing the fbo's name against zero.  This converts
everything in the i915 and 965 drivers over to use _mesa_is_user_fbo()
and _mesa_is_winsys_fbo().

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Make more consistent use of _mesa_is_{user,winsys}_fbo()
Paul Berry [Wed, 18 Jul 2012 19:54:48 +0000 (12:54 -0700)]
mesa: Make more consistent use of _mesa_is_{user,winsys}_fbo()

A lot of code was still differentiating between between winsys and
user fbos by testing the fbo's name against zero.  This converts
everything in core mesa, the state tracker, and src/mesa/program over
to use _mesa_is_user_fbo() and _mesa_is_winsys_fbo().

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl: warning: pragma `invariant(all)' not supported in GLSL ES 1.00
Oliver McFadden [Thu, 5 Jul 2012 08:22:06 +0000 (11:22 +0300)]
glsl: warning: pragma `invariant(all)' not supported in GLSL ES 1.00

The OpenGL(R) ES Shading Language
Version 1.00 Revision 17 (12 May, 2009)

> 4.6.1 The Invariant Qualifier
> ... To force all output variables to be invariant, use the pragma
> #pragma STDGL invariant(all)

Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoshared-glapi: Install libglapi.so.0.0.0 and .0 links in lib/.
Kenneth Graunke [Mon, 23 Jul 2012 22:22:06 +0000 (15:22 -0700)]
shared-glapi: Install libglapi.so.0.0.0 and .0 links in lib/.

We already provided these files on 'make install', but only created a
'libglapi.so' in the top-level lib/ convenience folder.  We used to
create all three, but at some point in the build system churn, it broke.

Various applications (like the ES2 conformance suite) seem to link
against libglapi.so.0, so without these links, setting LD_LIBRARY_PATH
and LIBGL_DRIVERS_PATH can lead to using /usr/lib/libglapi.so.0 with
/home/whatever/libGL.so, which leads to API calls getting routed
incorrectly (i.e. glCompileShader -> _mesa_LinkProgramARB), which leads
to rage problems.

Preserve developer sanity...install links.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoscons: Fix build with clang.
Vinson Lee [Wed, 25 Jul 2012 06:02:18 +0000 (23:02 -0700)]
scons: Fix build with clang.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoi965: Remove unused param conversion code.
Eric Anholt [Sat, 21 Jul 2012 00:03:57 +0000 (17:03 -0700)]
i965: Remove unused param conversion code.

Ever since ctx->NativeIntegers was set, the conversion flag has been
PARAM_NO_CONVERT.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agosoftpipe: fix copy/paste error in tex sample code
Olivier Galibert [Wed, 25 Jul 2012 13:45:42 +0000 (07:45 -0600)]
softpipe: fix copy/paste error in tex sample code

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=52369

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoRemove redundant osmesa shared library install from Makefile.old
Jon TURNEY [Tue, 10 Jul 2012 15:33:40 +0000 (16:33 +0100)]
Remove redundant osmesa shared library install from Makefile.old

Since osmesa now has been converted to Makefile.am, an appropriate install: rule
is generated to install the shared libary, so we no longer need to do that in
src/mesa/Makefile.old

This leaves nothing in src/mesa/Makefile.old but the tags: rule, so move that to
Makefile.am and remove Makefile.old

Also, nothing now uses OSMESA_LIB_GLOB anymore, so remove it

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoUpdate mesa/drivers/x11/Makefile.am for xm_image.h removal
Jon TURNEY [Thu, 12 Jul 2012 21:41:06 +0000 (22:41 +0100)]
Update mesa/drivers/x11/Makefile.am for xm_image.h removal

Commit 6c6803f28de0d4cb6937fcd95a47aa81da31fd78 removed xm_image.[ch], and removed
xm_image.c, but not xm_image.h from the Makefile, this was subsequently carried over
into Makefile.am

Remove xm_image.h from Makfile.am.  This allows 'make dist' to succeed, even if it
doesn't do anything useful

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agodrivers/osmesa: Link OSMesa using -no-undefined libtool flag
Jon TURNEY [Sat, 7 Jul 2012 21:02:44 +0000 (22:02 +0100)]
drivers/osmesa: Link OSMesa using -no-undefined libtool flag

"Use -no-undefined to assure libtool that the library has no
unresolved symbols at link time, so that libtool will build a shared
library on platforms require that all symbols are resolved when the
library is linked."

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agodrivers/X11: Link X11 libGL with -no-undefined libtool flag
Jon TURNEY [Sat, 7 Jul 2012 17:01:50 +0000 (18:01 +0100)]
drivers/X11: Link X11 libGL with -no-undefined libtool flag

"Use -no-undefined to assure libtool that the library has no
unresolved symbols at link time, so that libtool will build a shared
library on platforms require that all symbols are resolved when the
library is linked."

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoRevert "scons: Add instrumentation component libraries to linking on llvm-3.2."
Vinson Lee [Wed, 25 Jul 2012 05:46:47 +0000 (22:46 -0700)]
Revert "scons: Add instrumentation component libraries to linking on llvm-3.2."

This reverts commit e2e7b467d8a6567437823767af74004a396f1c82.

No longer needed after llvm-3.2svn r160611.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
12 years agoi965/msaa: Switch on 8x MSAA for Gen7.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/msaa: Switch on 8x MSAA for Gen7.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: Adjust MCS buffer allocation for 8x MSAA.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/msaa: Adjust MCS buffer allocation for 8x MSAA.

MCS buffers use 32 bits per pixel in 8x MSAA, and 8 bits per pixel in
4x MSAA.  This patch adjusts the format we use to allocate the buffer
so that enough memory is set aside for 8x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: Remove assertion in 3DSTATE_SAMPLE_MASK to allow 8x MSAA.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/msaa: Remove assertion in 3DSTATE_SAMPLE_MASK to allow 8x MSAA.

The code to emit 3DSTATE_SAMPLE_MASK was already correct for 8x
MSAA--this patch just removes an assertion that would have prevented
it from being used for 8x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: Adjust 3DSTATE_MULTISAMPLE packet for 8x MSAA.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/msaa: Adjust 3DSTATE_MULTISAMPLE packet for 8x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/blorp: Encode and decode IMS format for 8x MSAA correctly.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/blorp: Encode and decode IMS format for 8x MSAA correctly.

This patch updates the blorp functions encode_msaa() and decode_msaa()
to properly handle the encoding of IMS MSAA buffers when
num_samples=8.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/blorp: Compute sample number correctly for 8x MSAA.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/blorp: Compute sample number correctly for 8x MSAA.

When operating in persample dispatch mode, the blorp engine would
previously assume that subspan N always represented sample N (this is
correct assuming 4x MSAA and a 16-wide dispatch).  In order to support
8x MSAA, we must compute which sample is associated with each subspan,
using the "Starting Sample Pair Index" field in the thread payload.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/blorp: Properly adjust primitive size for 8x MSAA.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/blorp: Properly adjust primitive size for 8x MSAA.

When rendering to an IMS MSAA surface on Gen7, blorp sets up the
rendering pipeline as though it were rendering to a single-sampled
surface; accordingly it must adjust the size of the primitive it sends
down the pipeline to account for the interleaving of samples in an IMS
surface.

This patch modifies the size adjustment code to properly handle 8x
MSAA, which makes room for the extra samples by using an interleaving
pattern that is twice as wide as 4x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/blorp: Parameterize manual_blend() by num_samples.
Paul Berry [Wed, 18 Jul 2012 04:06:01 +0000 (21:06 -0700)]
i965/blorp: Parameterize manual_blend() by num_samples.

This patch adds a num_samples argument to the blorp function
manual_blend(), allowing it to be told how many samples need to be
blended together.  Previously it assumed 4x MSAA, since that was all
we supported.

We also bump up LOG2_MAX_BLEND_SAMPLES from 2 to 3, so that
manual_blend() will be able to handle 8x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/msaa: Remove comment about falsely claiming to support MSAA.
Paul Berry [Mon, 9 Jul 2012 23:23:26 +0000 (16:23 -0700)]
i965/msaa: Remove comment about falsely claiming to support MSAA.

Gen6+ hardware now supports MSAA properly.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>