mesa.git
13 years agoRevert "st/egl: correctly return configs under wayland"
Chia-I Wu [Thu, 8 Sep 2011 08:05:32 +0000 (16:05 +0800)]
Revert "st/egl: correctly return configs under wayland"

This reverts commit 95b445699d7f049116ee0927387a958a9933766b.

13 years agoRevert "st/egl: add premultiplied alpha support to wayland"
Chia-I Wu [Thu, 8 Sep 2011 08:05:22 +0000 (16:05 +0800)]
Revert "st/egl: add premultiplied alpha support to wayland"

This reverts commit 23aa978a9d76a48f4b93e9a8911ec50c0e5d94ab.

13 years agost/egl: add premultiplied alpha support to wayland
Chia-I Wu [Wed, 7 Sep 2011 19:00:31 +0000 (03:00 +0800)]
st/egl: add premultiplied alpha support to wayland

Return true for NATIVE_PARAM_PREMULTIPLIED_ALPHA when all formats with
alpha support premultiplied alpha.  Currently, it means when argb32 and
argb32_pre are both supported.

13 years agost/egl: correctly return configs under wayland
Chia-I Wu [Wed, 7 Sep 2011 18:29:55 +0000 (02:29 +0800)]
st/egl: correctly return configs under wayland

When wl_drm is avaiable and enabled, handle "format" events and return
configs for the supported formats.  Otherwise, assume all formats of
wl_shm are supported.

13 years agost/egl: overload NATIVE_PARAM_PREMULTIPLIED_ALPHA
Chia-I Wu [Wed, 7 Sep 2011 18:39:01 +0000 (02:39 +0800)]
st/egl: overload NATIVE_PARAM_PREMULTIPLIED_ALPHA

EGL does not export this capability of a display server.  But wayland
makes use of EGL_VG_ALPHA_FORMAT to achieve it.

So, when the native display returns true for the parameter, st/egl will
set EGL_VG_ALPHA_FORMAT_PRE_BIT for all EGLConfig's with non-zero
EGL_ALPHA_SIZE.  EGL_VG_ALPHA_FORMAT attribute of a surface will affect
how the surface is presented.

Because st/vega does not support EGL_VG_ALPHA_FORMAT_PRE_BIT,
EGL_OPENVG_BIT will be cleared.

13 years agost/egl: add NATIVE_PARAM_PREMULTIPLIED_ALPHA
Chia-I Wu [Wed, 7 Sep 2011 17:39:27 +0000 (01:39 +0800)]
st/egl: add NATIVE_PARAM_PREMULTIPLIED_ALPHA

Return TRUE if the display supports premultiplied alpha.

13 years agost/egl: add native_present_control
Chia-I Wu [Fri, 2 Sep 2011 13:26:24 +0000 (21:26 +0800)]
st/egl: add native_present_control

Replace the parameters of native_surface::present by a struct,
native_present_control.  Using a struct allows us to add more control
options without having to update each backend every time.

13 years agoglsl: s/int/unsigned/ to silence warning
Brian Paul [Wed, 7 Sep 2011 17:44:35 +0000 (11:44 -0600)]
glsl: s/int/unsigned/ to silence warning

13 years agost/mesa: Remove unused renderbuffer fields and functions.
Stéphane Marchesin [Wed, 7 Sep 2011 19:06:30 +0000 (12:06 -0700)]
st/mesa: Remove unused renderbuffer fields and functions.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoi965/fs: Implement ir_u2f opcode.
Kenneth Graunke [Fri, 2 Sep 2011 17:50:40 +0000 (10:50 -0700)]
i965/fs: Implement ir_u2f opcode.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Fix disassembly for intdiv/intmod math functions.
Kenneth Graunke [Sat, 3 Sep 2011 19:39:16 +0000 (12:39 -0700)]
i965: Fix disassembly for intdiv/intmod math functions.

The opcodes and strings were reversed.  Quotient means division, and
modulus means remainder.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agost/egl: track changes to drop wl_visual in wayland
Chia-I Wu [Wed, 7 Sep 2011 13:41:30 +0000 (21:41 +0800)]
st/egl: track changes to drop wl_visual in wayland

Follow a subset of changes in 7b1d94e5d1f53ac5f59000176aea1d02fc9a1181.
There are known issues, but it works to a certain degree.  Non-working
demos also fail gracefully.  More importantly, it fixes the build.

13 years agost/egl: track server side wayland changes
Chia-I Wu [Wed, 7 Sep 2011 13:42:56 +0000 (21:42 +0800)]
st/egl: track server side wayland changes

Follow changes in c661ecce1089000c3fca9a543713f8264221be50.

13 years agost/egl: use new wl_callback mechanism in wayland
Chia-I Wu [Wed, 7 Sep 2011 13:40:41 +0000 (21:40 +0800)]
st/egl: use new wl_callback mechanism in wayland

Follow the changes in 6602bda23ba6c4351eb7f04d34803103a68ac2db.

13 years agoi965: Use proper texture alignment units for cubemaps on Gen5+.
Kenneth Graunke [Mon, 15 Aug 2011 19:04:37 +0000 (12:04 -0700)]
i965: Use proper texture alignment units for cubemaps on Gen5+.

In particular, S3TC compressed textures need align_h == 4.

Fixes skybox errors in Quake 4 and FEAR.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34628
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoglsl/ir_reader: Make sure constants have the right number of components.
Kenneth Graunke [Mon, 5 Sep 2011 19:03:29 +0000 (12:03 -0700)]
glsl/ir_reader: Make sure constants have the right number of components.

The list of numbers in (constant type (<numbers>)) needs to contain
exactly type->components() numbers (16 for a mat4, 3 for a vec3, etc.)

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoglsl/builtins: Fix invalid float constant in noise4 built-in.
Kenneth Graunke [Mon, 5 Sep 2011 19:12:10 +0000 (12:12 -0700)]
glsl/builtins: Fix invalid float constant in noise4 built-in.

Throwing away the extra numbers ought to match the existing behavior.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoglsl/builtins: Fix invalid vecN constants in hyperbolic functions.
Kenneth Graunke [Mon, 5 Sep 2011 19:20:18 +0000 (12:20 -0700)]
glsl/builtins: Fix invalid vecN constants in hyperbolic functions.

Each of these vecN constants only provided one component, which is
illegal.  The printed IR is meant to contain exactly as many components
as are necessary; the IR reader does not splat single values.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agovarray.c: fix logic around BGRA with ARB_vertex_type_2_10_10_10_rev.
Dave Airlie [Wed, 7 Sep 2011 09:19:14 +0000 (10:19 +0100)]
varray.c: fix logic around BGRA with ARB_vertex_type_2_10_10_10_rev.

I introduced a regression in here, I've just split the logic ot now, so
its easier to read/understand.

Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=40664

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa/vbo: s/inline/INLINE/
Vinson Lee [Wed, 7 Sep 2011 04:43:51 +0000 (21:43 -0700)]
mesa/vbo: s/inline/INLINE/

MSVC does not support inline keyword.

13 years agoi965/vs: Fix point size handling on gen4.
Eric Anholt [Tue, 30 Aug 2011 22:34:43 +0000 (15:34 -0700)]
i965/vs: Fix point size handling on gen4.

Fixes glsl-vs-point-size.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Use write commits on scratch writes in pre-gen6.
Eric Anholt [Wed, 31 Aug 2011 00:56:33 +0000 (17:56 -0700)]
i965/vs: Use write commits on scratch writes in pre-gen6.

This is required to ensure ordering between reads and writes within a
thread.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix setup of scratch space pointer on pre-gen6.
Eric Anholt [Tue, 30 Aug 2011 23:58:03 +0000 (16:58 -0700)]
i965/vs: Fix setup of scratch space pointer on pre-gen6.

We were failing to relocate, so on the first draw run our scratch
would tend to get written to 0x0.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix message setup for array read/writes on pre-gen6.
Eric Anholt [Tue, 30 Aug 2011 23:47:43 +0000 (16:47 -0700)]
i965/vs: Fix message setup for array read/writes on pre-gen6.

We were passing an MRF as the source argument, instead of using the
implied move and putting the MRF number in the proper place in the
instruction encoding.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix constant-indexed array read/write addresses on pre-gen6.
Eric Anholt [Tue, 30 Aug 2011 23:40:06 +0000 (16:40 -0700)]
i965/vs: Fix constant-indexed array read/write addresses on pre-gen6.

The second vertex was getting a garbage index.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Add support for vector comparison ops resulting in bool cond codes.
Eric Anholt [Tue, 30 Aug 2011 23:23:44 +0000 (16:23 -0700)]
i965/vs: Add support for vector comparison ops resulting in bool cond codes.

Fixes a giant pile of VS tests on gen4.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Make pre-gen6 math operate in vector mode instead of scalar.
Eric Anholt [Tue, 30 Aug 2011 22:59:26 +0000 (15:59 -0700)]
i965/vs: Make pre-gen6 math operate in vector mode instead of scalar.

On the old backend, we used scalar mode because Mesa IR math is
result.xyzw = math(op0.xxxx), which matched up well.  However, in GLSL
IR we do things like result.xy = math(op0.xy), so we want vector mode.
For the common case of result.x = math(op0.x), performance will be the
same (no cost for un-executed channels), though result.xyzw =
math(op0.xxxx) would be worse.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix copy-and-paste disaster in pre-gen6 POW support.
Eric Anholt [Fri, 2 Sep 2011 23:58:30 +0000 (16:58 -0700)]
i965/vs: Fix copy-and-paste disaster in pre-gen6 POW support.

Fixes vs-pow-float-float and friends.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix gen4 comparisons used for predication.
Eric Anholt [Fri, 2 Sep 2011 23:46:46 +0000 (16:46 -0700)]
i965/vs: Fix gen4 comparisons used for predication.

When we tried to retype a brw_null_reg() in CMP(), the retyping didn't
take effect because HW_REG just ignores the type field.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Fix GPU hangs in shaders with large virtual GRFs pre-gen6.
Eric Anholt [Tue, 30 Aug 2011 22:50:17 +0000 (15:50 -0700)]
i965/vs: Fix GPU hangs in shaders with large virtual GRFs pre-gen6.

If you get your total GRF count wrong, you write over some other
shader's g0, and the GPU fails shortly thereafter.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965: add casts to silence int/enum conversion warnings
Brian Paul [Tue, 6 Sep 2011 22:50:27 +0000 (16:50 -0600)]
i965: add casts to silence int/enum conversion warnings

13 years agostate_trackers/dri/sw: Implement texture_from_pixmap.
Stéphane Marchesin [Tue, 30 Aug 2011 00:22:03 +0000 (17:22 -0700)]
state_trackers/dri/sw: Implement texture_from_pixmap.

Signed-off-by: Stuart Abercrombie <sabercrombie@chromium.org>
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
13 years agoDuplicate state_tracker/dri/sw/dri_drawable.c
Stéphane Marchesin [Tue, 30 Aug 2011 00:19:29 +0000 (17:19 -0700)]
Duplicate state_tracker/dri/sw/dri_drawable.c

We need this for the upcoming fix for sw texture_from_pixmap.

Signed-off-by: Stuart Abercrombie <sabercrombie@chromium.org>
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
13 years agoEnable GLX_EXT_texture_from_pixmap in software.
nobled [Mon, 29 Aug 2011 23:24:59 +0000 (16:24 -0700)]
Enable GLX_EXT_texture_from_pixmap in software.

Signed-off-by: nobled <nobled@dreamwidth.org>
Signed-off-by: Stuart Abercrombie <sabercrombie@chromium.org>
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
13 years agost/mesa: remove unneeded #include
Brian Paul [Tue, 6 Sep 2011 21:44:44 +0000 (15:44 -0600)]
st/mesa: remove unneeded #include

13 years agomesa: whitespace fixes, just to be consistent
Brian Paul [Tue, 6 Sep 2011 21:30:14 +0000 (15:30 -0600)]
mesa: whitespace fixes, just to be consistent

13 years agomesa: put _mesa_ prefix on vert_result_to_frag_attrib()
Brian Paul [Tue, 6 Sep 2011 21:29:24 +0000 (15:29 -0600)]
mesa: put _mesa_ prefix on vert_result_to_frag_attrib()

13 years agomesa: fix vert_result_to_frag_attrib() parameter type
Brian Paul [Tue, 6 Sep 2011 21:24:14 +0000 (15:24 -0600)]
mesa: fix vert_result_to_frag_attrib() parameter type

13 years agomesa: s/inline/INLINE/ to fix MSVC build
Brian Paul [Tue, 6 Sep 2011 21:20:33 +0000 (15:20 -0600)]
mesa: s/inline/INLINE/ to fix MSVC build

13 years agoDrop some Glide remnants
Adam Jackson [Tue, 6 Sep 2011 19:58:00 +0000 (15:58 -0400)]
Drop some Glide remnants

Apparently the x11 driver had a hack for glide passthrough.  Who knew?

Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agoRemove an AmiWin leftover
Adam Jackson [Tue, 6 Sep 2011 19:55:11 +0000 (15:55 -0400)]
Remove an AmiWin leftover

Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agoRemove dead glfbdev.h
Adam Jackson [Tue, 6 Sep 2011 19:50:11 +0000 (15:50 -0400)]
Remove dead glfbdev.h

This belonged to the now-dead swrast-on-fbdev driver.

Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agoDrop documentation references for deleted backends
Adam Jackson [Wed, 29 Jun 2011 14:48:43 +0000 (10:48 -0400)]
Drop documentation references for deleted backends

Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agortasm,translate: Disable on Mingw-w64.
José Fonseca [Tue, 6 Sep 2011 19:40:21 +0000 (20:40 +0100)]
rtasm,translate: Disable on Mingw-w64.

Causes crash and stack corruption.

Needs more investigation. Disable for now.

13 years agodocs: skeleton file for 7.12 release notes
Ian Romanick [Wed, 31 Aug 2011 20:20:00 +0000 (13:20 -0700)]
docs: skeleton file for 7.12 release notes

Current just the items that have been removed from Mesa are mentioned
in the release notes.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove support for unpacking from client memory to color-index pixels
Ian Romanick [Mon, 29 Aug 2011 21:33:51 +0000 (14:33 -0700)]
mesa: Remove support for unpacking from client memory to color-index pixels

Mesa hasn't supported color-index rendering for a long time.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoswrast: Use GL_STENCIL_INDEX for address calculations
Ian Romanick [Mon, 29 Aug 2011 21:06:00 +0000 (14:06 -0700)]
swrast: Use GL_STENCIL_INDEX for address calculations

GL_COLOR_INDEX produced the same result (because GL_BITMAP is always
used for stencil glDrawPixels), but it was confusing to read.  I spent
about 15 minutes wondering, "WTF?"

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove GL_COLOR_INDEX from _mesa_{dest,source}_buffer_exists
Ian Romanick [Mon, 29 Aug 2011 20:59:49 +0000 (13:59 -0700)]
mesa: Remove GL_COLOR_INDEX from _mesa_{dest,source}_buffer_exists

Mesa hasn't supported color-index rendering for a long time.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove GL_COLOR_INDEX from base format assertions
Ian Romanick [Mon, 29 Aug 2011 20:34:52 +0000 (13:34 -0700)]
mesa: Remove GL_COLOR_INDEX from base format assertions

_mesa_make_temp_float_image can't work on color-index textures, but
there is no such thing as a color-index texture anymore.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoswrast: Remove GL_COLOR_INDEX from assertions
Ian Romanick [Mon, 29 Aug 2011 20:30:46 +0000 (13:30 -0700)]
swrast: Remove GL_COLOR_INDEX from assertions

These sampling functions don't work on color-index textures, but there
is no such thing as a color-index texture anymore.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove unused struct gl_color_table
Ian Romanick [Mon, 29 Aug 2011 18:39:20 +0000 (11:39 -0700)]
mesa: Remove unused struct gl_color_table

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove unused functions _mesa_lookup_rgba_{float,ubyte}
Ian Romanick [Mon, 29 Aug 2011 18:38:55 +0000 (11:38 -0700)]
mesa: Remove unused functions _mesa_lookup_rgba_{float,ubyte}

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove all mention of GL_COLOR_INDEX*_EXT
Ian Romanick [Mon, 29 Aug 2011 16:49:04 +0000 (09:49 -0700)]
mesa: Remove all mention of GL_COLOR_INDEX*_EXT

These enums were only valid with the paletted texture extensions.
This allows a couple other trivial clean-ups.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove dd_function_table::CopyColorTable, ::CopyColorSubTable, and ::UpdateText...
Ian Romanick [Mon, 29 Aug 2011 16:38:09 +0000 (09:38 -0700)]
mesa: Remove dd_function_table::CopyColorTable, ::CopyColorSubTable, and ::UpdateTexturePalette

There's nothing left that can call any of these functions.  This also
removes the meta-ops code that implemented the first two.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Remove API facing bits of EXT_paletted_texture and EXT_shared_texture_palette
Ian Romanick [Mon, 29 Aug 2011 16:37:24 +0000 (09:37 -0700)]
mesa: Remove API facing bits of EXT_paletted_texture and EXT_shared_texture_palette

This was also discussed at XDS 2010.  However, actually making the
change was delayed because several drivers still exposed these
extensions to significant benefit (e.g., tdfx).  Now that those
drivers have been removed, this code can be removed as well.

v2: A lot of bits that were missed in the previous patch have been removed.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965: Remove two_side_color from brw_compute_vue_map().
Paul Berry [Sat, 3 Sep 2011 15:42:28 +0000 (08:42 -0700)]
i965: Remove two_side_color from brw_compute_vue_map().

Since we now lay out the VUE the same way regardless of whether
two-sided color is enabled, brw_compute_vue_map() no longer needs to
know whether two-sided color is enabled.  This allows the two-sided
color flag to be removed from the clip, GS, and VS keys, so that fewer
GPU programs need to be recompiled when turning two-sided color on and
off.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: For GEN6+, always make front/back colors adjacent in VUE.
Paul Berry [Sat, 3 Sep 2011 15:23:27 +0000 (08:23 -0700)]
i965: For GEN6+, always make front/back colors adjacent in VUE.

When doing two-sided color on GEN6+, we use the SF unit's
INPUTATTR_FACING mode to cause front colors to be used on front-facing
triangles, and back colors to be used on back-facing triangles.  This
mode requires that the front and back colors be adjacent in the VUE.

Previously, we would only place front and back colors adjacent in the
VUE when two-sided color was enabled.  Now we place them adjacent in
the VUE whether two-sided color is enabled or not.  (We still only
swizzle the colors when two-sided color is enabled, so there should be
no user-visible change).

This simplifies the implementation of the VUE map and reduces the
amount of code that is dependent on two-sided color mode.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: GS: Use the VUE map to compute URB size.
Paul Berry [Tue, 30 Aug 2011 17:54:14 +0000 (10:54 -0700)]
i965: GS: Use the VUE map to compute URB size.

The previous computation had two bugs: (a) it used a formula based on
Gen5 for Gen6 and Gen7 as well. (b) it failed to account for the fact
that PSIZ is stored in the VUE header.  Fortunately, both bugs caused
it to compute a URB size that was too large, which was benign.  This
patch computes the URB size directly from the VUE map, so it gets the
result correct in all circumstances.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Remove no-longer-needed variables.
Paul Berry [Fri, 26 Aug 2011 16:30:35 +0000 (09:30 -0700)]
i965: clip: Remove no-longer-needed variables.

The variables offset[], idx_to_attr[], nr_bytes, nr_attrs, and
header_regs were all serving purposes which are now served by the VUE
map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Remove assumption about VUE header from brw_clip_interp_vertex()
Paul Berry [Fri, 26 Aug 2011 19:17:56 +0000 (12:17 -0700)]
i965: clip: Remove assumption about VUE header from brw_clip_interp_vertex()

Previously, brw_clip_interp_vertex() iterated only through the
"non-header" elements of the VUE when performing interpolation
(because header elements don't need interpolation).  This code now
refers exclusively to the VUE map to figure out which elements need
interpolation, so that brw_clip_interp_vertex() doesn't need to know
the header size.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Change computation of nr_regs to use VUE map.
Paul Berry [Fri, 26 Aug 2011 19:08:43 +0000 (12:08 -0700)]
i965: clip: Change computation of nr_regs to use VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Convert computations to ..._to_offset() for clarity.
Paul Berry [Wed, 31 Aug 2011 22:34:01 +0000 (15:34 -0700)]
i965: clip: Convert computations to ..._to_offset() for clarity.

This patch replaces some ad-hoc computations using ATTR_SIZE and the
offset[] array to use the VUE map functions
brw_vert_result_to_offset() and brw_vue_slot_to_offset().

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Add a function to determine whether a vert_result is in use.
Paul Berry [Thu, 25 Aug 2011 20:27:57 +0000 (13:27 -0700)]
i965: clip: Add a function to determine whether a vert_result is in use.

Previously we would examine the offset[] array (since an offset of 0
meant "not in use").  This paves the way for removing the offset[]
array.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Rework brw_clip_interp_vertex() to use the VUE map.
Paul Berry [Thu, 25 Aug 2011 18:14:47 +0000 (11:14 -0700)]
i965: clip: Rework brw_clip_interp_vertex() to use the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Modify brw_clip_interp_vertex() to use the VUE map.
Paul Berry [Thu, 25 Aug 2011 17:42:29 +0000 (10:42 -0700)]
i965: clip: Modify brw_clip_interp_vertex() to use the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Move header_regs into brw_clip_compile.
Paul Berry [Thu, 25 Aug 2011 16:58:30 +0000 (09:58 -0700)]
i965: clip: Move header_regs into brw_clip_compile.

This makes header_regs available for computing VUE offsets within clip code.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Modify brw_clip_tri_alloc_regs() to use the VUE map.
Paul Berry [Thu, 25 Aug 2011 15:06:31 +0000 (08:06 -0700)]
i965: clip: Modify brw_clip_tri_alloc_regs() to use the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Move hpos_offest and ndc_offset into local functions.
Paul Berry [Thu, 25 Aug 2011 03:03:35 +0000 (20:03 -0700)]
i965: clip: Move hpos_offest and ndc_offset into local functions.

The offsets within the VUE of HPOS and NDC are needed only in a few
auxiliary clipping functions.  This patch moves computation of those
offsets into the functions that need them, and does the computation
using the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: rename header_position_offset to the more correct ndc_offset.
Paul Berry [Thu, 25 Aug 2011 02:57:51 +0000 (19:57 -0700)]
i965: clip: rename header_position_offset to the more correct ndc_offset.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: clip: Add VUE map computation to clip stage for Gen4-5.
Paul Berry [Thu, 25 Aug 2011 02:51:54 +0000 (19:51 -0700)]
i965: clip: Add VUE map computation to clip stage for Gen4-5.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Change gen{6,7}_sf_state.c to compute URB read length based on VUE map.
Paul Berry [Wed, 31 Aug 2011 16:31:00 +0000 (09:31 -0700)]
i965: SF: Change gen{6,7}_sf_state.c to compute URB read length based on VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Move outputs_written to a local variable for clarity.
Paul Berry [Wed, 31 Aug 2011 16:33:57 +0000 (09:33 -0700)]
i965: SF: Move outputs_written to a local variable for clarity.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: New implementation of get_attr_override using the VUE map.
Paul Berry [Tue, 30 Aug 2011 20:06:14 +0000 (13:06 -0700)]
i965: SF: New implementation of get_attr_override using the VUE map.

This patch changes get_attr_override() (which computes the
relationship between vertex shader outputs and fragment shader inputs)
to use the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Remove unnecessary variables.
Paul Berry [Thu, 25 Aug 2011 02:04:31 +0000 (19:04 -0700)]
i965: SF: Remove unnecessary variables.

This patch removes the variables nr_attrs and nr_setup_attrs, whose
purpose is now being served by the VUE map.  nr_attr_regs and
nr_setup_regs are still needed, however they are now computed using
the VUE map rather than by counting the number of vertex shader
outputs (which caused subtle bugs when gl_PointSize was written).

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Stop using nr_setup_attrs in compute_masks.
Paul Berry [Thu, 25 Aug 2011 01:57:32 +0000 (18:57 -0700)]
i965: SF: Stop using nr_setup_attrs in compute_masks.

Previously, the SF used nr_setup_attrs to determine whether it was
looking at the last element of the VUE.  Changed this code to use the
VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Remove attr_to_idx and idx_to_attr.
Paul Berry [Thu, 25 Aug 2011 01:41:30 +0000 (18:41 -0700)]
i965: SF: Remove attr_to_idx and idx_to_attr.

These data structures were serving the same purpose as the VUE map,
but were buggy.  Now that the code has been transitioned to use the
VUE map, they are not needed.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Change calculate_masks to use the VUE map.
Paul Berry [Wed, 24 Aug 2011 22:48:55 +0000 (15:48 -0700)]
i965: SF: Change calculate_masks to use the VUE map.

Previously, SF code used the idx_to_attr[] array to compute the
location of entries in the VUE map.  This array didn't properly
account for gl_PointSize.  Now we use the VUE map directly.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Change the flags that refer to "attr" to be based on gl_vert_result.
Paul Berry [Wed, 24 Aug 2011 22:32:17 +0000 (15:32 -0700)]
i965: SF: Change the flags that refer to "attr" to be based on gl_vert_result.

Previously, some of the code in SF erroneously used bitfields based on
the gl_frag_attrib enum when actually referring to vertex results.
This worked, because coincidentally the particular enum values being
used happened to match between gl_frag_attrib and gl_vert_result.  But
it was fragile, because a future change to either gl_vert_result or
gl_frag_attrib would have made the enum values stop matching up.  This
patch switches the SF code to use the correct enum.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: change get_vert_attr to use the VUE map, and rename it.
Paul Berry [Wed, 24 Aug 2011 19:19:10 +0000 (12:19 -0700)]
i965: SF: change get_vert_attr to use the VUE map, and rename it.

The new function, called get_vert_result(), uses the VUE map to find
the register containing a given vertex attribute.  Previously, we used
the attr_to_idx[] array, which served the same purpose but didn't
account for gl_PointSize correctly.

This fixes a bug on pre-Gen6 wherein the back side of a triangle would
be rendered incorrectyl if the vertex shader wrote to gl_PointSize.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Modify calculate_point_sprite_mask to use the VUE map.
Paul Berry [Tue, 23 Aug 2011 22:49:32 +0000 (15:49 -0700)]
i965: SF: Modify calculate_point_sprite_mask to use the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: SF: Move the computation of urb_entry_read_offset.
Paul Berry [Tue, 23 Aug 2011 20:49:19 +0000 (13:49 -0700)]
i965: SF: Move the computation of urb_entry_read_offset.

This patch moves the computation of the SF URB entry read offset from
upload_sf_unit() to its own function, so that it can be re-used when
creating the gen4-5 SF program.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: Compute urb entry size based on the VUE map.
Paul Berry [Tue, 23 Aug 2011 18:43:46 +0000 (11:43 -0700)]
i965: new VS: Compute urb entry size based on the VUE map.

Previously, the new VS backend computed the size of the URB entry by
counting the number of MRFs used in emitting the URB entry.  Now it
just gets it straight from the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: Clarify comments about max_usable_mrf and add an assertion.
Paul Berry [Tue, 23 Aug 2011 18:41:41 +0000 (11:41 -0700)]
i965: new VS: Clarify comments about max_usable_mrf and add an assertion.

max_usable_mrf has been carefully set such that (max_usable_mrf -
base_mrf) is a multiple of 2, so that an even number of VUE slots are
emitted with each URB write (which Gen6 requires).  This patch adds an
assertion to confirm that this is the case, and moves the comment to
this effect to be near the assertion.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: use the VUE map to write out vertex attributes.
Paul Berry [Tue, 23 Aug 2011 18:07:56 +0000 (11:07 -0700)]
i965: new VS: use the VUE map to write out vertex attributes.

Previously, the new VS backend used two functions,
emit_vue_header_gen6() and emit_vue_header_gen4() to emit the fixed
parts of the VUE, and then a pair of carefully-constructed loops to
emit the rest of the VUE, leaving out the parts that were already
emitted as part of the header.

This patch changes the new VS backend to use the VUE map to emit the
entire VUE.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: move clip distance computation (GEN5+) to a separate function.
Paul Berry [Tue, 23 Aug 2011 17:41:31 +0000 (10:41 -0700)]
i965: new VS: move clip distance computation (GEN5+) to a separate function.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: Move PSIZ/flags computation to a separate function.
Paul Berry [Tue, 23 Aug 2011 17:29:48 +0000 (10:29 -0700)]
i965: new VS: Move PSIZ/flags computation to a separate function.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: move NDC computation (GEN4-5) to a separate function.
Paul Berry [Tue, 23 Aug 2011 17:26:15 +0000 (10:26 -0700)]
i965: new VS: move NDC computation (GEN4-5) to a separate function.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: new VS: Use output_reg[] to find NDC and HPOS registers.
Paul Berry [Tue, 23 Aug 2011 17:17:34 +0000 (10:17 -0700)]
i965: new VS: Use output_reg[] to find NDC and HPOS registers.

Previously, emit_vue_header_gen4() used local variables to keep track
of which registers were storing the NDC and HPOS.  This patch uses the
output_reg[] array instead, so that the code that manipulates NDC and
HPOS can be more easily refactored.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: old VS: use the VUE map to compute the URB entry size.
Paul Berry [Tue, 23 Aug 2011 05:09:02 +0000 (22:09 -0700)]
i965: old VS: use the VUE map to compute the URB entry size.

Previously, the old VS backend computed the URB entry size by adding
the number of vertex shader outputs to the size of the URB header.
This often produced a larger result than necessary, because some
vertex shader outputs are stored in the header, so they were being
double counted.  This patch changes the old VS backend to compute the
URB entry size directly from the number of slots in the VUE map.

Note: there's a subtle change in that we no longer count header
registers towards the size of the VF input.  I believe this is
correct, because the header is only emitted in the output of the VS
stage--it is not present in the input.  (As evidence for this, note
that brw_vs_state.c sets urb_entry_read_offset to 0--it does not
include space for the header as part of the VS input).

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: old VS: Use brw_vue_map instead of implicit assumptions about VUE structure.
Paul Berry [Wed, 31 Aug 2011 22:04:42 +0000 (15:04 -0700)]
i965: old VS: Use brw_vue_map instead of implicit assumptions about VUE structure.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Add functions to compute offsets within the VUE map.
Paul Berry [Thu, 1 Sep 2011 22:30:21 +0000 (15:30 -0700)]
i965: Add functions to compute offsets within the VUE map.

Some parts of the i965 driver keep track of locations within the VUE
(vertex URB entry) using byte offsets.  This patch adds inline
functions to compute these byte offsets using the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Write code to compute a VUE map.
Paul Berry [Wed, 31 Aug 2011 22:04:23 +0000 (15:04 -0700)]
i965: Write code to compute a VUE map.

Several places in the i965 code make implicit assumptions about the
structure of data in the VUE (vertex URB entry).  This patch adds a
function, brw_compute_vue_map(), which computes the structure of the
VUE explicitly.  Future patches will modify the rest of the driver to
use the explicitly computed map rather than rely on implicit
assumptions about it.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoRefactor code that converts between gl_vert_result and gl_frag_attrib.
Paul Berry [Tue, 30 Aug 2011 18:46:29 +0000 (11:46 -0700)]
Refactor code that converts between gl_vert_result and gl_frag_attrib.

Previously, this conversion was duplicated in several places in the
i965 driver.  This patch moves it to a common location in mtypes.h,
near the declaration of gl_vert_result and gl_frag_attrib.

I've also added comments to remind us that we may need to revisit the
conversion code when adding elements to gl_vert_result and
gl_frag_attrib.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agodocs: more info about non-subscriber list postings
Brian Paul [Tue, 6 Sep 2011 15:19:36 +0000 (09:19 -0600)]
docs: more info about non-subscriber list postings

13 years agodocs: update link, remove dead links
Brian Paul [Tue, 6 Sep 2011 14:40:53 +0000 (08:40 -0600)]
docs: update link, remove dead links

13 years agoscons: Set -static-libstdc++ on mingw-w64
José Fonseca [Tue, 6 Sep 2011 12:14:09 +0000 (13:14 +0100)]
scons: Set -static-libstdc++ on mingw-w64

To avoid depending on libstdc++-xxx.dll

13 years agoscons: Move MinGW flags from crossmingw.py to gallium.py
José Fonseca [Tue, 6 Sep 2011 12:13:32 +0000 (13:13 +0100)]
scons: Move MinGW flags from crossmingw.py to gallium.py

So that they are used by native MinGW compilers too.

13 years agor600g: add TXQ and TXF support
Dave Airlie [Wed, 24 Aug 2011 12:29:56 +0000 (13:29 +0100)]
r600g: add TXQ and TXF support

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: add initial evergreen integer opcode support
Dave Airlie [Fri, 5 Aug 2011 18:08:10 +0000 (19:08 +0100)]
r600g: add initial evergreen integer opcode support

This just adds the opcodes for evergreen, need to work on r600 and cayman
implementations.

don't advertise nativeintegers yet until we work out all the regressions.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agodocs: update gl3.txt for ARB_vertex_type_2_10_10_10_rev
Dave Airlie [Sun, 4 Sep 2011 07:25:00 +0000 (08:25 +0100)]
docs: update gl3.txt for ARB_vertex_type_2_10_10_10_rev