mesa.git
13 years agor300g: fix exposing caps on r300-r400
Marek Olšák [Sun, 24 Apr 2011 09:48:46 +0000 (11:48 +0200)]
r300g: fix exposing caps on r300-r400

Broken with 72239d16cd08113e994ea3508f91193c682b0930.

13 years agoglsl: Fix typos in comments.
Bryan Cain [Sun, 24 Apr 2011 00:29:15 +0000 (19:29 -0500)]
glsl: Fix typos in comments.

13 years agor600g: fix glsl-fs-abs-neg
Dave Airlie [Sun, 24 Apr 2011 01:04:46 +0000 (11:04 +1000)]
r600g: fix glsl-fs-abs-neg

the hw does neg after abs, so don't neg the source in the ABS instruction case.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: fix bank swizzle calcs for scalar only operations.
Dave Airlie [Sat, 23 Apr 2011 22:33:19 +0000 (08:33 +1000)]
r600g: fix bank swizzle calcs for scalar only operations.

In the initial code if we had nothing in the vector slots r would
never get reset to 0, so we'd fail to compile shaders, after the previous
commit this would happen for the LIT tests. When I fixed that we did a lot
of unnecessary loops through all the vector states when we had no vector
slots filled. So this patch optimises thing for the scalar only state.

This fixes the 3 LIT piglit tests on r600g.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: PV/PS have cycle restrictions in scalar operations
Dave Airlie [Sat, 23 Apr 2011 22:30:08 +0000 (08:30 +1000)]
r600g: PV/PS have cycle restrictions in scalar operations

In the R600 ISA document:
Section 4.7.5 Cycle restrictions for the ALU.trans states that
PV/PS have cycle restrictions wrt constants.

This is part of a fix for the LIT tests

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa: Add some comments about FRAG_RESULT_COLOR vs FRAG_RESULT_DATAn.
Eric Anholt [Thu, 21 Apr 2011 00:55:54 +0000 (17:55 -0700)]
mesa: Add some comments about FRAG_RESULT_COLOR vs FRAG_RESULT_DATAn.

This came from reading what swrast does, and 965 now behaves the same
and gallium appears to as well.

13 years agomesa: Fix fragment.color (no index) writes with OPTION ARB_draw_buffers.
Eric Anholt [Wed, 20 Apr 2011 23:49:19 +0000 (16:49 -0700)]
mesa: Fix fragment.color (no index) writes with OPTION ARB_draw_buffers.

Fixes a bug in Trine where fragment.color would write
FRAG_RESULT_COLOR (which is interpreted by drivers as being the "write
this to all color buffers" option) instead of FRAG_RESULT_DATA0 (just
the first target).

Fixes piglit ATI_draw_buffers/arbfp-no-index.

13 years agoi965: Don't double-emit fragment.color writes for MRT with ARB_fp.
Eric Anholt [Wed, 20 Apr 2011 23:10:14 +0000 (16:10 -0700)]
i965: Don't double-emit fragment.color writes for MRT with ARB_fp.

13 years agoi965: Fill in the remaining fields of gen5+ sampler default color.
Eric Anholt [Wed, 20 Apr 2011 21:03:21 +0000 (14:03 -0700)]
i965: Fill in the remaining fields of gen5+ sampler default color.

Still doesn't fix texwrap.

13 years agoi965: Fix batch decode for the gen5+ sampler default color.
Eric Anholt [Wed, 20 Apr 2011 20:59:13 +0000 (13:59 -0700)]
i965: Fix batch decode for the gen5+ sampler default color.

13 years agointel: Add support for ARB_sampler_objects.
Eric Anholt [Wed, 20 Apr 2011 18:48:31 +0000 (11:48 -0700)]
intel: Add support for ARB_sampler_objects.

This extension support consists of replacing
"gl_texture_obj->Sampler." with "_mesa_get_samplerobj(ctx, unit)->".
One instance of referencing the texture's base sampler remains in the
initial miptree allocation, where I'm not sure we have a clear
association with any texture unit.

Tested with piglit ARB_sampler_objects/sampler-objects.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoi965: Add support for NV_conditional_render.
Eric Anholt [Wed, 20 Apr 2011 04:40:48 +0000 (21:40 -0700)]
i965: Add support for NV_conditional_render.

Since we lack hardware support for it, this is a simple matter of
checking _mesa_check_conditional_render at the entrypoints, and
suppressing it for the metaops where it doesn't apply.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: Disable glAccum drawing during conditional rendering.
Eric Anholt [Thu, 21 Apr 2011 23:52:21 +0000 (16:52 -0700)]
swrast: Disable glAccum drawing during conditional rendering.

13 years agometa: Don't do conditional rendering on GenerateMipmaps and BlitFramebuffer.
Eric Anholt [Wed, 20 Apr 2011 07:21:01 +0000 (00:21 -0700)]
meta: Don't do conditional rendering on GenerateMipmaps and BlitFramebuffer.

The NV_conditional_render spec calls out specific operations that
conditional rendering applies to, which doesn't include these.

Fixes NV_conditional_render/generatemipmap on swrast.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoi965: Add support for ARB_texture_compression_rgtc.
Eric Anholt [Mon, 18 Apr 2011 21:28:14 +0000 (14:28 -0700)]
i965: Add support for ARB_texture_compression_rgtc.

Tested with rgtc-teximage-0[12].
EXT_texture_compression_rgtc/fbo-generatemipmap-formats fails in NPOT
just like S3TC does.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Don't assert on the compressed convertformat for GenerateMipmaps.
Eric Anholt [Wed, 20 Apr 2011 16:33:59 +0000 (09:33 -0700)]
mesa: Don't assert on the compressed convertformat for GenerateMipmaps.

This assertion doesn't make any sense to me -- the convertFormat is
already something valid (tested above), and the BaseFormat dictated by
convertFormat doesn't matter to the function about to be called (it's
the datatype/comps that were pulled out of convertFormat).

Fixes assertion failure in
GL_EXT_texture_compression_rgtc/fbo-generatemipmap-formats

(still has a rendering failure in NPOT like S3TC does).

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Choose RGTC formats for GL_COMPRESSED_RED, GL_COMPRESSED_RG.
Eric Anholt [Wed, 20 Apr 2011 16:31:34 +0000 (09:31 -0700)]
mesa: Choose RGTC formats for GL_COMPRESSED_RED, GL_COMPRESSED_RG.

We were falling through to the default R8 and RG88 formats instead of
compressing when possible.  Noticed by swrast fbo-blending-formats
actually doing rendering.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa/gdi: Address compiler warnings.
José Fonseca [Sat, 23 Apr 2011 19:25:11 +0000 (20:25 +0100)]
mesa/gdi: Address compiler warnings.

In particular the function prototypes.

13 years agomesa/gdi: Remove InitCritSections.cpp.
José Fonseca [Sat, 23 Apr 2011 17:44:19 +0000 (18:44 +0100)]
mesa/gdi: Remove InitCritSections.cpp.

We are now able to declare global critical sections through other
mechanisms so this is useless code.

13 years agoDrop fx windows driver.
José Fonseca [Sat, 23 Apr 2011 12:21:41 +0000 (13:21 +0100)]
Drop fx windows driver.

Irrelevant now that glide driver was removed.

13 years agoglu: Fix linux build
Jakob Bornecrantz [Sat, 23 Apr 2011 15:01:19 +0000 (17:01 +0200)]
glu: Fix linux build

13 years agoglu: Clone the enviroment
Jakob Bornecrantz [Sat, 23 Apr 2011 14:57:28 +0000 (16:57 +0200)]
glu: Clone the enviroment

13 years agodocs: Remove MSVS project files.
José Fonseca [Sat, 23 Apr 2011 12:18:45 +0000 (13:18 +0100)]
docs: Remove MSVS project files.

They were totally broken for several releases.

scons now builds everything the project files built and more, and can be
kept up-to-date with little effort.

13 years agoscons: Build glu.
José Fonseca [Sat, 23 Apr 2011 12:16:03 +0000 (13:16 +0100)]
scons: Build glu.

13 years agoscons: Build classic mesa gdi driver.
José Fonseca [Sat, 23 Apr 2011 11:41:28 +0000 (12:41 +0100)]
scons: Build classic mesa gdi driver.

Build as

  scons platform=windows mesagdi

13 years agoosmesa: Fix Mingw build.
José Fonseca [Sat, 23 Apr 2011 11:23:42 +0000 (12:23 +0100)]
osmesa: Fix Mingw build.

Build as

  scons platform=windows osmesa

13 years agoscons: Build osmesa.
José Fonseca [Sat, 23 Apr 2011 11:22:59 +0000 (12:22 +0100)]
scons: Build osmesa.

Just type

  scons osmesa

13 years agomapi/glapi: Avoid warnings about visibility being unsupported on MinGW.
José Fonseca [Sat, 23 Apr 2011 11:14:39 +0000 (12:14 +0100)]
mapi/glapi: Avoid warnings about visibility being unsupported on MinGW.

13 years agomesa/vf: Remove.
José Fonseca [Sat, 23 Apr 2011 10:49:41 +0000 (11:49 +0100)]
mesa/vf: Remove.

Unused.  Probably replaced by translate module.

13 years agograw: Replace dead symlinks to delete python statetracker shaders with their contents.
José Fonseca [Sat, 23 Apr 2011 09:44:43 +0000 (10:44 +0100)]
graw: Replace dead symlinks to delete python statetracker shaders with their contents.

13 years agodraw: fix point/line/tri flushing bug in vbuf code
Brian Paul [Fri, 22 Apr 2011 19:37:10 +0000 (13:37 -0600)]
draw: fix point/line/tri flushing bug in vbuf code

Need to reset the point/line/tri functions to point to the "first"
versions whenever we flush vertices.  Fixes unfilled polygon rendering
errors seen in demos/samples/logo.c.  See comments for more info.

NOTE: This is a candidate for the 7.10 branch.

13 years agor300g: do not advertise color_buffer_float on r300 and r400
Marek Olšák [Fri, 22 Apr 2011 18:19:38 +0000 (20:19 +0200)]
r300g: do not advertise color_buffer_float on r300 and r400

It seems they can't do unclamped vertex colors. Tested on RV350.

13 years agor300/compiler: fix up error message
Marek Olšák [Fri, 22 Apr 2011 16:54:02 +0000 (18:54 +0200)]
r300/compiler: fix up error message

13 years agoegl/wayland: Follow buffer.attach removal
Benjamin Franzke [Mon, 7 Mar 2011 14:10:01 +0000 (15:10 +0100)]
egl/wayland: Follow buffer.attach removal

13 years agoegl/wayland: Update to buffer.damage addition
Benjamin Franzke [Mon, 7 Mar 2011 14:06:31 +0000 (15:06 +0100)]
egl/wayland: Update to buffer.damage addition

13 years agoconfigure.ac: fix up the help text for --enable-gallium-r300
Marek Olšák [Fri, 22 Apr 2011 14:55:54 +0000 (16:55 +0200)]
configure.ac: fix up the help text for --enable-gallium-r300

13 years agor300g: disallow A16F,L16F,LA16F,I16F texture formats on DRM<2.8.0
Marek Olšák [Fri, 22 Apr 2011 14:17:18 +0000 (16:17 +0200)]
r300g: disallow A16F,L16F,LA16F,I16F texture formats on DRM<2.8.0

13 years agost/egl: Update to wayland protocol,egl changes
Benjamin Franzke [Thu, 21 Apr 2011 08:51:44 +0000 (10:51 +0200)]
st/egl: Update to wayland protocol,egl changes

13 years agoegl_dri2: Create wl_buffers for pixmap surfaces
Benjamin Franzke [Thu, 21 Apr 2011 08:51:14 +0000 (10:51 +0200)]
egl_dri2: Create wl_buffers for pixmap surfaces

Needed since wayland-egl doesnt do this anymore.

13 years agoegl/wayland: Add new version parameter for post_drm
Benjamin Franzke [Thu, 21 Apr 2011 09:14:02 +0000 (11:14 +0200)]
egl/wayland: Add new version parameter for post_drm

13 years agoegl/wayland: Fix prefixes for interface names
Benjamin Franzke [Thu, 21 Apr 2011 07:39:25 +0000 (09:39 +0200)]
egl/wayland: Fix prefixes for interface names

13 years agoswrast: fix readpix clamping
Marek Olšák [Wed, 20 Apr 2011 10:40:40 +0000 (12:40 +0200)]
swrast: fix readpix clamping

Broken with e5c6a92a12b5cd7db205d72039f58d302b0be9d5. (ARB_color_buffer_float)

Clamping should occur if type != float, otherwise the MSBs of the resulting
pixels are killed off. For example, reading back LUMINANCE = R+G+B can be
greater than 0xff, but the result is naturally masked by 0xff
for UNSIGNED_BYTE, leading to bogus results.

The following bug report seems to want clamping to occur if type == half_float
too. Not sure what's correct.

Bug: [bisected pineview] oglc case pxconv-read failed
https://bugs.freedesktop.org/show_bug.cgi?id=35852

Tested by: Fang Xun <xunx.fang@intel.com>
Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoWL_bind_wayland_display: clarify that context must be NULL
Kristian Høgsberg [Fri, 22 Apr 2011 03:47:36 +0000 (23:47 -0400)]
WL_bind_wayland_display: clarify that context must be NULL

13 years agoi915: Gut all remaining bits of hardware fog
Ian Romanick [Sat, 16 Apr 2011 05:20:09 +0000 (22:20 -0700)]
i915: Gut all remaining bits of hardware fog

None of this ever gets used.  Fog is always calculated by a fragment
program.  Even though the fixed-function fog unit is never used, state
updates are still sent to the hardware.  Removing those spurious state
updates can't hurt performance.

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi915: i915_context::vertex_fog is always I915_FOG_NONE, so kill it
Ian Romanick [Sat, 16 Apr 2011 02:25:59 +0000 (19:25 -0700)]
i915: i915_context::vertex_fog is always I915_FOG_NONE, so kill it

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi915: There's always a fragment program
Ian Romanick [Sat, 16 Apr 2011 02:23:13 +0000 (19:23 -0700)]
i915: There's always a fragment program

Fragment programs are generated by core Mesa for fixed-function.
Because of this, there's no reason to handle cases where there is no
fragment program for fog.

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi915: Delete disabled try_pixel_fog paths
Ian Romanick [Sat, 16 Apr 2011 02:14:36 +0000 (19:14 -0700)]
i915: Delete disabled try_pixel_fog paths

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agomesa: Kill gl_fragment_program::FogOption with fire
Ian Romanick [Sat, 16 Apr 2011 02:04:57 +0000 (19:04 -0700)]
mesa: Kill gl_fragment_program::FogOption with fire

All drivers expect this to always be GL_NONE.  Don't let there be any
opportunity for a bad value to leak out and infect some unsuspecting
driver.  If any driver for hardware that had fixed-function
per-fragment fog (i915 and perhaps some r300-ish) was ever going to
add support, it would have done it by now.

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi915: gl_fragment_program::FogOption is always GL_NONE so don't check it
Ian Romanick [Sat, 16 Apr 2011 01:46:57 +0000 (18:46 -0700)]
i915: gl_fragment_program::FogOption is always GL_NONE so don't check it

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi965: gl_fragment_program::FogOption is always GL_NONE so don't check it
Ian Romanick [Sat, 16 Apr 2011 01:46:43 +0000 (18:46 -0700)]
i965: gl_fragment_program::FogOption is always GL_NONE so don't check it

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agomesa: gl_fragment_program::FogOption is always GL_NONE so don't check it
Ian Romanick [Sat, 16 Apr 2011 01:45:06 +0000 (18:45 -0700)]
mesa: gl_fragment_program::FogOption is always GL_NONE so don't check it

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agomesa: Fix bugs in ff fragment shader fog handling
Ian Romanick [Sat, 16 Apr 2011 01:38:54 +0000 (18:38 -0700)]
mesa: Fix bugs in ff fragment shader fog handling

This patch fixes two bugs related to fog in the fixed-function
fragment shader generation code.

Fog was only lowered to instructions if MRTs were used.  The fragment
shader assembler always lowers "fog option" code to instructions, and
many drivers (e.g., r300) expect this.

When fog lowering did happen, it was after the instruction count was
checked against implementation limits.  Since fog lowering may add up
to 5 instructions, a program that was below the limits before lowering
may exceed the limits after lowering.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Acked-by: Alex Deucher <alexdeucher@gmail.com>
13 years agost/mesa: check image size before copy_image_data_to_texture()
Brian Paul [Thu, 21 Apr 2011 18:59:16 +0000 (12:59 -0600)]
st/mesa: check image size before copy_image_data_to_texture()

We should only copy images into the dest texture if the size is correct.
This fixes a failed assertion when finalizing a texture with mis-defined
mipmap levels such as:
level 0: 32x32
level 1: 8x8

Also, fix incorrect mipmap level used in assertion at the top of
copy_image_data_to_texture().

NOTE: This is a candidate for the 7.10 branch.

13 years agogalahad,util: warn on resource target mismatch in copy_region
Marek Olšák [Thu, 21 Apr 2011 13:13:34 +0000 (15:13 +0200)]
galahad,util: warn on resource target mismatch in copy_region

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
13 years agost/mesa: implement CopyBufferSubData using resource_copy_region
Marek Olšák [Thu, 21 Apr 2011 10:54:56 +0000 (12:54 +0200)]
st/mesa: implement CopyBufferSubData using resource_copy_region

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
13 years agogallium: add fallback for copying buffers to all drivers
Marek Olšák [Thu, 21 Apr 2011 10:53:16 +0000 (12:53 +0200)]
gallium: add fallback for copying buffers to all drivers

Just to keep drivers working.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
13 years agoutil: add a simple memcpy path for copying buffers in util_resource_copy_region
Marek Olšák [Thu, 21 Apr 2011 10:50:00 +0000 (12:50 +0200)]
util: add a simple memcpy path for copying buffers in util_resource_copy_region

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
13 years agoglsl/ast_to_hir: Only use the local 'type' variable as a temporary.
Kenneth Graunke [Fri, 15 Apr 2011 00:21:59 +0000 (17:21 -0700)]
glsl/ast_to_hir: Only use the local 'type' variable as a temporary.

Lots of code (deleted by this patch) tried to make type == result->type,
but not all cases did.  Don't pretend; just use result->type.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Remove dead vertex buffer structs.
Kenneth Graunke [Tue, 19 Apr 2011 22:33:15 +0000 (15:33 -0700)]
i965: Remove dead vertex buffer structs.

We do this OUT_BATCH-style in brw_draw_upload.c.

13 years agowayland-egl: Update to wayland-egl.h changes, drop struct wl_egl_display
Kristian Høgsberg [Thu, 14 Apr 2011 14:42:41 +0000 (10:42 -0400)]
wayland-egl: Update to wayland-egl.h changes, drop struct wl_egl_display

13 years agomesa: fix void pointer arithmetic warning
Brian Paul [Wed, 20 Apr 2011 18:04:25 +0000 (12:04 -0600)]
mesa: fix void pointer arithmetic warning

13 years agodocs: Mention that GLSL 1.30 is started.
Eric Anholt [Mon, 18 Apr 2011 20:45:00 +0000 (13:45 -0700)]
docs: Mention that GLSL 1.30 is started.

Things definitely remaining todo: switch statements, clip distances.
On 965, we also need real integers in the VS, and implementations of
some things like isinf/isnan.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agodocs: Update for Intel ARB_texture_float and ARB_color_buffer_float.
Eric Anholt [Mon, 18 Apr 2011 20:44:35 +0000 (13:44 -0700)]
docs: Update for Intel ARB_texture_float and ARB_color_buffer_float.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Add support for ARB_color_buffer_float.
Eric Anholt [Fri, 15 Apr 2011 21:40:09 +0000 (14:40 -0700)]
intel: Add support for ARB_color_buffer_float.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agometa: Add support for ARB_color_buffer_float to _mesa_meta_Clear().
Eric Anholt [Fri, 15 Apr 2011 21:39:47 +0000 (14:39 -0700)]
meta: Add support for ARB_color_buffer_float to _mesa_meta_Clear().

Tested with piglit arb_color_buffer_float-clear.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agometa: Add support for ARB_color_buffer_float to _mesa_meta_DrawPixels.
Eric Anholt [Fri, 15 Apr 2011 22:48:32 +0000 (15:48 -0700)]
meta: Add support for ARB_color_buffer_float to _mesa_meta_DrawPixels.

Tested with piglit arb_color_buffer_float-drawpixels.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Add support for ARB_texture_float.
Eric Anholt [Fri, 15 Apr 2011 18:00:00 +0000 (11:00 -0700)]
intel: Add support for ARB_texture_float.

For 1 and 2-channel formats the hardware only supports rendering to R
and RG.  To do I and L render targets we just call them R and
everything works out.  For A, we would need to rewrite the CC to do
the alpha channel's blending on color instead, and send the fragment
alpha down the red channel.  For LA, there doesn't seem to be any
hope, because we can't do independent color/alpha blending while
treating the LA surface as RG.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Add support for blit copies of >32bpp formats.
Eric Anholt [Sat, 16 Apr 2011 01:15:59 +0000 (18:15 -0700)]
intel: Add support for blit copies of >32bpp formats.

The blitter only does up 32bpp at a time, so we handle it by mangling
coordinates and calling the surface 32bpp.

Fixes ARB_texture_rg/fbo-generatemipmap-formats-float with ARB_texture_float.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add renderbuffer accessors for A, I, L, FLOAT32.
Eric Anholt [Mon, 18 Apr 2011 17:53:06 +0000 (10:53 -0700)]
mesa: Add renderbuffer accessors for A, I, L, FLOAT32.

Of these, intel will be using I and L initially, and A once we rewrite
fragment shaders and the CC for rendering to it as R.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add renderbuffer accessors for MESA_FORMAT_R_FLOAT32, RG_FLOAT32.
Eric Anholt [Mon, 18 Apr 2011 16:17:00 +0000 (09:17 -0700)]
mesa: Add renderbuffer accessors for MESA_FORMAT_R_FLOAT32, RG_FLOAT32.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add ChooseTexFormat fallbacks for floating point textures.
Eric Anholt [Fri, 15 Apr 2011 21:18:43 +0000 (14:18 -0700)]
mesa: Add ChooseTexFormat fallbacks for floating point textures.

This covers X_FLOAT16 -> X_FLOAT32, and X -> RGBA_FLOAT32.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add renderbuffer accessors for MESA_FORMAT_RGBA_FLOAT32.
Eric Anholt [Fri, 15 Apr 2011 20:36:40 +0000 (13:36 -0700)]
mesa: Add renderbuffer accessors for MESA_FORMAT_RGBA_FLOAT32.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: Add LUMINANCE, INTENSITY, LUMINANCE_ALPHA to span asserts.
Eric Anholt [Mon, 18 Apr 2011 16:32:06 +0000 (09:32 -0700)]
swrast: Add LUMINANCE, INTENSITY, LUMINANCE_ALPHA to span asserts.

Fixes ARB_texture_float/fbo-alphatest-formats.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agor600g: fix userspace fences again
Alex Deucher [Wed, 20 Apr 2011 17:09:09 +0000 (13:09 -0400)]
r600g: fix userspace fences again

reinstate b7617346dcff50a66a10c61b95c33682cf629c9e after the
rework in 6067a2a67f9a7aab2aee051469bea8af03747a95.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor600g: don't flush the dest caches on every draw
Fredrik Höglund [Tue, 19 Apr 2011 22:21:42 +0000 (00:21 +0200)]
r600g: don't flush the dest caches on every draw

Keep track of when the caches are dirty, and only flush them when
the framebuffer state is set and when the context is flushed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agotranslate: disable clamping of instanced array indexes
Brian Paul [Tue, 19 Apr 2011 22:13:43 +0000 (16:13 -0600)]
translate: disable clamping of instanced array indexes

This fixes piglit's draw-instanced-divisor test for softpipe on both
the generic and SSE paths.  This is temporary until we have the
correct per-array max_index information.

13 years agor600g: add evergreen+ big endian support
Alex Deucher [Tue, 19 Apr 2011 17:35:19 +0000 (13:35 -0400)]
r600g: add evergreen+ big endian support

Based on Cédric's r6xx/r7xx patch.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor600g: add big endian support for r6xx/r7xx
Cédric Cano [Tue, 19 Apr 2011 17:02:14 +0000 (13:02 -0400)]
r600g: add big endian support for r6xx/r7xx

Signed-off-by: Cedric Cano <ccano@interfaceconcept.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor600c: add evergreen big endian support
Alex Deucher [Tue, 19 Apr 2011 16:03:55 +0000 (12:03 -0400)]
r600c: add evergreen big endian support

Based on Cedric's r6xx/r7xx patch.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor600c: add big endian support for r6xx/r7xx
Cédric Cano [Tue, 19 Apr 2011 15:14:23 +0000 (11:14 -0400)]
r600c: add big endian support for r6xx/r7xx

Signed-off-by: Cedric Cano <ccano@interfaceconcept.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoMakefile: add missing Scons files
Brian Paul [Tue, 19 Apr 2011 15:07:44 +0000 (09:07 -0600)]
Makefile: add missing Scons files

13 years agoMakefile: add missing .cpp, .ll, .yy files
Thierry Vignaud [Tue, 19 Apr 2011 14:34:06 +0000 (08:34 -0600)]
Makefile: add missing .cpp, .ll, .yy files

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agor600g: add cb support for snorm formats.
Dave Airlie [Tue, 19 Apr 2011 10:42:48 +0000 (20:42 +1000)]
r600g: add cb support for snorm formats.

Check for signed type and enable SNORM.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agoconfigure.ac: rename --enable-gallium-radeon to --enable-gallium-r300
Marek Olšák [Tue, 19 Apr 2011 10:28:51 +0000 (12:28 +0200)]
configure.ac: rename --enable-gallium-radeon to --enable-gallium-r300

Also fix up the help string for both r300 and r600.

13 years agor200: enable some extensions
Marek Olšák [Sun, 17 Apr 2011 21:41:33 +0000 (23:41 +0200)]
r200: enable some extensions

Such as:
- GL_ARB_half_float_pixel
- GL_ARB_vertex_array_object
- GL_APPLE_vertex_array_object
- GL_EXT_gpu_program_parameters

13 years agor600g: fix warnings with piglit texture-rg test.
Dave Airlie [Tue, 19 Apr 2011 08:44:43 +0000 (18:44 +1000)]
r600g: fix warnings with piglit texture-rg test.

Fill in the swaps for the formats to fix warnings.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: make loop const always flush
Dave Airlie [Tue, 19 Apr 2011 06:39:50 +0000 (16:39 +1000)]
r600g: make loop const always flush

this needs revisiting, we really don't want to be flushing all 32 of these,
but currently we don't flush any of them, and it seems to have caused a regression
as reported on irc with doom3 on evergreen.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor300/compiler: Fix dataflow analysis bug with ELSE blocks
Tom Stellard [Tue, 19 Apr 2011 04:16:14 +0000 (21:16 -0700)]
r300/compiler: Fix dataflow analysis bug with ELSE blocks

Writes within ELSE blocks were being ignored which prevented us from
discovering all possible writers for some register values.

Fixes piglit glsl-fs-raytrace-bug27060

13 years agoglsl: fix conversions from uint to bool and from float/bool to uint
Bryan Cain [Mon, 18 Apr 2011 06:39:08 +0000 (01:39 -0500)]
glsl: fix conversions from uint to bool and from float/bool to uint

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agor600g: add dirty tracking to context reg.
Dave Airlie [Tue, 19 Apr 2011 00:08:18 +0000 (10:08 +1000)]
r600g: add dirty tracking to context reg.

just makes the code more consistent.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: deinline some large functions.
Dave Airlie [Tue, 19 Apr 2011 00:04:02 +0000 (10:04 +1000)]
r600g: deinline some large functions.

really at these sort of sizes these are pointless inlines.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: consolidate r600/evergreen code for resource emission.
Dave Airlie [Tue, 19 Apr 2011 00:00:03 +0000 (10:00 +1000)]
r600g: consolidate r600/evergreen code for resource emission.

These really didn't have much difference, and totally not inline material.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: don't flush caches if we already did so, even for a subset of the flags
Bas Nieuwenhuizen [Wed, 13 Apr 2011 18:36:15 +0000 (20:36 +0200)]
r600g: don't flush caches if we already did so, even for a subset of the flags

Merging the flushes that are left doesn't seem to give a significant
performance improvement

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: attempt to avoid emitting resources that are the same
Dave Airlie [Mon, 18 Apr 2011 03:37:10 +0000 (13:37 +1000)]
r600g: attempt to avoid emitting resources that are the same

This just avoids reemitting resources that haven't changed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: modify block to only emit the first few dirty registers. (v2)
Dave Airlie [Mon, 18 Apr 2011 03:03:06 +0000 (13:03 +1000)]
r600g: modify block to only emit the first few dirty registers. (v2)

This gets me from 2200 to 1978 dwords for a gears frame.

This is due to us having some 32-dwords blocks in the SPI, that we only
modify the first dwords off.

v2: fix dirty reg count from Bas Nieuwenhuizen

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: track dirty registers better. (v2)
Dave Airlie [Sun, 17 Apr 2011 07:35:44 +0000 (17:35 +1000)]
r600g: track dirty registers better. (v2)

This is a first step to decreasing the CPU usage, by decreasing how much
stuff we pass to the GPU and hence to the kernel CS checker.

This adds a check to see if the values we need to write are actually dirty,
and avoids writing if they are. However certain register need to always
be written so we add a new flag to say which ones should be always written
if used. (Note this could probably be done cleaner with a larger refactoring,
 since I think the CONST_BUFFER_SIZE_PS/VS and CONST_CACHE_PS/VS might
be better off as a special state).

It also moves the need_bo to be a flags on the register now.

With this, a frame of gears goes from emitting 3k dwords to emitting 2k dwords,
and I'm sure it could get a lot smaller.

v2: fix some evergreen dirty bits.

Original patch from: Bas Nieuwenhuizen, I NIHed nearly the same thing
before seeing his patch on the list, oops.

Reviewed-by: Bas Nieuwenhuizen
Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agoglsl: 80-column wrapping and whitespace fixes
Ian Romanick [Tue, 19 Apr 2011 00:06:08 +0000 (17:06 -0700)]
glsl: 80-column wrapping and whitespace fixes

13 years agoi965: Convert 3DPRIMITIVE command from struct-style to OUT_BATCH style.
Kenneth Graunke [Thu, 14 Apr 2011 21:37:46 +0000 (14:37 -0700)]
i965: Convert 3DPRIMITIVE command from struct-style to OUT_BATCH style.

Most of the newer portions of the code use OUT_BATCH style.  I prefer
this style because it offers a clear distinction between a) hardware
messages/structures with a mandatory format, and b) data structures for
our own internal use that we can format however we want.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Allocate the whole URB to the VS and fix calculations for Gen6.
Kenneth Graunke [Tue, 12 Apr 2011 22:42:06 +0000 (15:42 -0700)]
i965: Allocate the whole URB to the VS and fix calculations for Gen6.

Since we never enable the GS on Sandybridge, there's no need to allocate
it any URB space.

Furthermore, the previous calculation was incorrect: it neglected to
multiply by nr_vs_entries, instead comparing whether twice the size of
a single VS URB entry was bigger than the entire URB space.  It also
neglected to take into account that vs_size is in units of 128 byte
blocks, while urb_size is in bytes.

Despite the above problems, the calculations resulted in an acceptable
programming of the URB in most cases, at least on GT2.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoglsl: Emit a warning when the left-hand operand of a comma has no effect
Ian Romanick [Mon, 11 Apr 2011 17:10:30 +0000 (10:10 -0700)]
glsl: Emit a warning when the left-hand operand of a comma has no effect

The expression

    x = y, 5, 3;

will generate

    0:7(9): warning: left-hand operand of comma expression has no effect

The warning is only emitted for the left-hand operands, becuase the
right-most operand is the result of the expression.  This could be
used in an assignment, etc.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>