mesa.git
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>
13 years agomesa: fix void pointer arithmetic warnings
Brian Paul [Mon, 18 Apr 2011 18:59:28 +0000 (12:59 -0600)]
mesa: fix void pointer arithmetic warnings

And fix a couple logic errors in the put_*_generic() functions.

13 years agomesa: fix wrong parameter type in set_sampler_max_lod()
Brian Paul [Mon, 18 Apr 2011 18:43:42 +0000 (12:43 -0600)]
mesa: fix wrong parameter type in set_sampler_max_lod()

13 years agonvfx: comment-out unused var
Brian Paul [Mon, 18 Apr 2011 14:19:42 +0000 (08:19 -0600)]
nvfx: comment-out unused var

13 years agointel: Add I8 and L8 to intel_mesa_format_to_rb_datatype().
Eric Anholt [Sun, 17 Apr 2011 17:44:46 +0000 (10:44 -0700)]
intel: Add I8 and L8 to intel_mesa_format_to_rb_datatype().

Fixes warnings in fbo-storage-formats.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoRevert "intel: Add spans code for the ARB_texture_rg support."
Eric Anholt [Sat, 16 Apr 2011 03:00:38 +0000 (20:00 -0700)]
Revert "intel: Add spans code for the ARB_texture_rg support."

This reverts what remains of commit
28bab24e1698843e27d27204a1117066e7ffeabb.  It was garbage, trying to
use a MESA_FORMAT enum as a preprocessor token, and I don't know how I
thought it was even tested.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.
Eric Anholt [Sat, 16 Apr 2011 02:58:21 +0000 (19:58 -0700)]
intel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.

Fixes:
ARB_texture_rg/fbo-alphatest-formats

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: Don't try to adjust_colors for <8bpc when handling R16, RG1616.
Eric Anholt [Sat, 16 Apr 2011 02:55:38 +0000 (19:55 -0700)]
swrast: Don't try to adjust_colors for <8bpc when handling R16, RG1616.

The GL_RED and GL_RG were tricking this code into executing, but it's
totally unprepared for a 16-bit channel and just rescaled the values
down to 0.  We don't have anything with <8bit channels alongside >8bit
channels, so disabling it should be safe.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.
Eric Anholt [Sat, 16 Apr 2011 02:11:53 +0000 (19:11 -0700)]
mesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.

This will replace the current (broken by trying to use an enum in the
preprocessor) spantmp2.h support I wrote for the intel driver.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*
Eric Anholt [Fri, 15 Apr 2011 20:09:21 +0000 (13:09 -0700)]
mesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*
Eric Anholt [Fri, 15 Apr 2011 19:58:17 +0000 (12:58 -0700)]
mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Use Mesa core's renderbuffer accessors for depth.
Eric Anholt [Fri, 15 Apr 2011 18:58:58 +0000 (11:58 -0700)]
intel: Use Mesa core's renderbuffer accessors for depth.

Since we're using GTT mappings now (no manual detiling), there's
really nothing special to accessing these buffers, other than needing
the new RowStride field of gl_renderbuffer to accomodate padding.

Reduces the driver size by 2.7kb, and improves glean depthStencil
performance 3-10x (!)

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add a function to set up the default renderbuffer accessors.
Eric Anholt [Fri, 15 Apr 2011 18:47:35 +0000 (11:47 -0700)]
mesa: Add a function to set up the default renderbuffer accessors.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add a gl_renderbuffer.RowStride field like textures have.
Eric Anholt [Fri, 15 Apr 2011 18:37:23 +0000 (11:37 -0700)]
mesa: Add a gl_renderbuffer.RowStride field like textures have.

This will allow some drivers to reuse the core renderbuffer.c get/put
row functions in place of using the spantmp.h macros.  Note that
unlike textures, we use a signed integer here to allow for handling
FBO orientation.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Repack single-byte fields in gl_renderbuffer.
Eric Anholt [Fri, 15 Apr 2011 18:13:44 +0000 (11:13 -0700)]
mesa: Repack single-byte fields in gl_renderbuffer.

Cuts 8 out of 120 bytes in the struct.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Remove renderbuffer deletion debug field.
Eric Anholt [Fri, 15 Apr 2011 18:06:36 +0000 (11:06 -0700)]
mesa: Remove renderbuffer deletion debug field.

It has presumably served its purpose by now, and other object deletion
doesn't do this.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: Don't assert against glReadPixels of GL_RED and GL_RG.
Eric Anholt [Sat, 16 Apr 2011 00:50:41 +0000 (17:50 -0700)]
swrast: Don't assert against glReadPixels of GL_RED and GL_RG.

Everything appears to already be in place for this.  Fixes aborts in:
ARB_texture_rg/fbo-alphatest-formats-float
ARB_texture_rg/fbo-blending-formats-float.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agointel: Use _mesa_base_tex_format for FBO texture attachments.
Eric Anholt [Sat, 16 Apr 2011 03:28:51 +0000 (20:28 -0700)]
intel: Use _mesa_base_tex_format for FBO texture attachments.

The _mesa_base_fbo_format variant doesn't handle some texture
internalformats, such as "3".

Fixes:
fbo-blending-formats.
fbo-alphatest-formats
EXT_texture_sRGB/fbo-alphatest-formats

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agor300g: remove non-existing include path from SConscript
Marek Olšák [Mon, 18 Apr 2011 01:07:11 +0000 (03:07 +0200)]
r300g: remove non-existing include path from SConscript

13 years agor300g/winsys: rename r300->radeon and do a little cleanup
Marek Olšák [Mon, 18 Apr 2011 00:39:50 +0000 (02:39 +0200)]
r300g/winsys: rename r300->radeon and do a little cleanup

Renaming a few files, types, and functions.
Also make the winsys independent of r300g.

13 years agoFix mesa tarball creation again
Thierry Vignaud [Sun, 17 Apr 2011 23:25:44 +0000 (01:25 +0200)]
Fix mesa tarball creation again

Signed-off-by: Marek Olšák <maraeo@gmail.com>
13 years agor600g: disable ARB_draw_instanced
Marek Olšák [Sat, 16 Apr 2011 23:57:13 +0000 (01:57 +0200)]
r600g: disable ARB_draw_instanced

The very presence of this extension breaks things.
This should bring us closer to being able to run Unigine Heaven.

The extension will be re-enabled once gl_InstanceID is implemented.

13 years agor300g: disable ARB_draw_instanced on SWTCL chipsets.
Marek Olšák [Sun, 17 Apr 2011 22:43:19 +0000 (00:43 +0200)]
r300g: disable ARB_draw_instanced on SWTCL chipsets.

This fixes Unigine Heaven.

13 years agoi965: Quit spamming gen6 DP read/write send instructions with gen5 bits.
Eric Anholt [Fri, 15 Apr 2011 03:25:33 +0000 (20:25 -0700)]
i965: Quit spamming gen6 DP read/write send instructions with gen5 bits.

This was copy-and-paste from originally trying to get DP read/write
working reliably, and notably for other common messages (URB, sampler)
we weren't doing this.

13 years agoi965/fs: Add gen6 register spilling support.
Eric Anholt [Fri, 15 Apr 2011 02:36:28 +0000 (19:36 -0700)]
i965/fs: Add gen6 register spilling support.

Most of this is code movement to get the scratch space allocated in a
shared location.  Other than that, the only real changes are that the
old oword block messages now operate on oword-aligned areas (with new
messages for unaligned access, which we don't do), and that the
caching control is in the SFID part of the descriptor instead of
message control.

Fixes glsl-fs-convolution-1.

13 years agomesa: Fix _mesa_unpack_dudv_span_byte assertion.
Eric Anholt [Wed, 13 Apr 2011 17:50:56 +0000 (10:50 -0700)]
mesa: Fix _mesa_unpack_dudv_span_byte assertion.

It was accepting only GL_DUDV_ATI and not the specific sized format
GL_DU8DV8_ATI.  Fixes assertion failure at startup in Shadowgrounds.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoglcpp: Fix attempts to expand recursive macros infinitely (bug #32835).
Carl Worth [Fri, 15 Apr 2011 19:03:25 +0000 (12:03 -0700)]
glcpp: Fix attempts to expand recursive macros infinitely (bug #32835).

The 095-recursive-define test case was triggering infinite recursion
with the following test case:

#define A(a, b) B(a, b)
#define C A(0, C)
C

Here's what was happening:

  1. "C" was pushed onto the active list to expand the C node

  2. While expanding the "0" argument, the active list would be
     emptied by the code at the end of _glcpp_parser_expand_token_list

  3. When expanding the "C" argument, the active list was now empty,
     so lather, rinse, repeat.

We fix this by adjusting the final popping at the end of
_glcpp_parser_expand_token_list to never pop more nodes then this
particular invocation had pushed itself. This is as simple as saving
the original state of the active list, and then interrupting the
popping when we reach this same state.

With this fix, all of the glcpp-test tests now pass.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32835
Signed-off-by: Carl Worth <cworth@cworth.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-and-tested-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agor600g: use some loops.
Dave Airlie [Sun, 17 Apr 2011 07:19:28 +0000 (17:19 +1000)]
r600g: use some loops.

unrolling loops is for Gentoo users, and I really want to put something
else inside these loops later.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: consolidate the same piece of cut-n-paste code into a function.
Dave Airlie [Sun, 17 Apr 2011 07:11:36 +0000 (17:11 +1000)]
r600g: consolidate the same piece of cut-n-paste code into a function.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agogallium: include u_format.h for util_format_is_supported
Marcin Slusarz [Sat, 16 Apr 2011 20:15:52 +0000 (22:15 +0200)]
gallium: include u_format.h for util_format_is_supported

Without it gcc complains:
nv50_screen.c: In function ‘nv50_screen_is_format_supported’:
nv50_screen.c:48: warning: implicit declaration of function ‘util_format_is_supported’

and handles it wrongly - util_format_is_supported returns boolean, which is typedef'ed
to uchar, but function without prototype is assumed to return int.

For me nv50_screen_is_format_supported was returning true for float formats without
--enable-texture-float...

13 years agonvc0: work around what looks like a code prefetch bug
Christoph Bumiller [Sat, 16 Apr 2011 13:24:07 +0000 (15:24 +0200)]
nvc0: work around what looks like a code prefetch bug

Sounds very unlikely, but I don't have a better explanation at the
moment.
The GPU throws page faults at the first page after the code buffer
quite frequently on startup, and traces don't show us overflowing.

13 years agonv50,nvc0: add new texture and render target formats
Christoph Bumiller [Sat, 16 Apr 2011 11:24:44 +0000 (13:24 +0200)]
nv50,nvc0: add new texture and render target formats

13 years agonv50,nvc0: fix normalized RG16 and RGBA32 texture format entries
Christoph Bumiller [Sat, 16 Apr 2011 11:13:56 +0000 (13:13 +0200)]
nv50,nvc0: fix normalized RG16 and RGBA32 texture format entries

13 years agonvc0: fix viewport rectangle calculation
Christoph Bumiller [Sat, 16 Apr 2011 22:14:31 +0000 (00:14 +0200)]
nvc0: fix viewport rectangle calculation

13 years agoprog_optimize: Add simplify CMP optimization pass
Tom Stellard [Tue, 5 Apr 2011 05:07:55 +0000 (22:07 -0700)]
prog_optimize: Add simplify CMP optimization pass

This pass coverts CMP T0, T1 T2 T0 -> MOV T0, T2 when the CMP
instruction is the first instruction to write to register T0.
This pass is useful for hardware that requires a lot of lowering passes
that generate many CMP instructions.

13 years agoprog_optimize: get_src_arg_mask() respect writemask for more opcodes
Tom Stellard [Wed, 6 Apr 2011 05:38:26 +0000 (22:38 -0700)]
prog_optimize: get_src_arg_mask() respect writemask for more opcodes

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agor300/compiler: Fix incorrect presubtract conversion
Tom Stellard [Sat, 16 Apr 2011 19:39:09 +0000 (12:39 -0700)]
r300/compiler: Fix incorrect presubtract conversion

ADD instructions with constant swizzles can't be converted to
presubtract operations.

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

13 years agomesa: provide more info for glCompressedTexImage() errors
Carl-Philip Haensch [Sat, 16 Apr 2011 14:13:47 +0000 (08:13 -0600)]
mesa: provide more info for glCompressedTexImage() errors

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: move error check code in compressedteximage()
Brian Paul [Sat, 16 Apr 2011 14:03:47 +0000 (08:03 -0600)]
mesa: move error check code in compressedteximage()

This was mistakenly inside the #if FEATURE_ES block.

13 years agodocs: Reapply some of Marek's typo fixes.
José Fonseca [Sat, 16 Apr 2011 10:14:25 +0000 (11:14 +0100)]
docs: Reapply some of Marek's typo fixes.

There were some typos too.

13 years agogallium/docs: Improve min_index/max_index description.
José Fonseca [Sat, 16 Apr 2011 09:18:20 +0000 (10:18 +0100)]
gallium/docs: Improve min_index/max_index description.

13 years agodocs: Undo Marek typo fixes to original text.
José Fonseca [Sat, 16 Apr 2011 08:22:34 +0000 (09:22 +0100)]
docs: Undo Marek typo fixes to original text.

Not really typos.

13 years agotranslate: s/varient/variant/
Brian Paul [Fri, 15 Apr 2011 16:16:53 +0000 (10:16 -0600)]
translate: s/varient/variant/

13 years agovbo: init prim[] array with memset()
Brian Paul [Fri, 15 Apr 2011 14:32:56 +0000 (08:32 -0600)]
vbo: init prim[] array with memset()

This fixes a Coverity warning about uninitialized data.

13 years agovega: move ureg_destroy(ureg) after last use of ureg var
Brian Paul [Fri, 15 Apr 2011 14:31:10 +0000 (08:31 -0600)]
vega: move ureg_destroy(ureg) after last use of ureg var

13 years agost/mesa: simplify a bit of the previous patch
Brian Paul [Fri, 15 Apr 2011 14:32:12 +0000 (08:32 -0600)]
st/mesa: simplify a bit of the previous patch

Grrr, this was supposed to go in the previous commit.

13 years agost/mesa: add handling for 'PIPE_FORMAT_B8G8R8X8_UNORM' in st_fast_readpixels
Pierre-Eric Pelloux-Prayer [Thu, 14 Apr 2011 16:17:28 +0000 (18:17 +0200)]
st/mesa: add handling for 'PIPE_FORMAT_B8G8R8X8_UNORM' in st_fast_readpixels

With minor edits by Brian Paul.

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoRevert "r300/compiler: Don't try to convert RGB to Alpha in full instructions"
Marek Olšák [Thu, 14 Apr 2011 16:48:34 +0000 (18:48 +0200)]
Revert "r300/compiler: Don't try to convert RGB to Alpha in full instructions"

This reverts commit cd2857fae16e1352f39b37f611797e66619d3fe5.

It breaks Unigine Heaven.

13 years agodocs: update relnotes-7.11
Marek Olšák [Thu, 14 Apr 2011 15:27:03 +0000 (17:27 +0200)]
docs: update relnotes-7.11

I made a glxinfo diff between 7.10 and master and added missing items
and also sorted the list.

13 years agodocs: update GL3 status
Marek Olšák [Wed, 13 Apr 2011 21:48:15 +0000 (23:48 +0200)]
docs: update GL3 status

13 years agogallium: add and use generic function for querying patented format support (v2)
Marek Olšák [Mon, 11 Apr 2011 04:23:00 +0000 (06:23 +0200)]
gallium: add and use generic function for querying patented format support (v2)

v2: Unsigned floats are allowed regardless of the configure switch.

13 years agoconfigure.ac: add an enable switch for float textures (v2)
Marek Olšák [Thu, 31 Mar 2011 23:12:41 +0000 (01:12 +0200)]
configure.ac: add an enable switch for float textures (v2)

So --enable-texture-float it is.

Hardware drivers (including the Gallium ones) should
use #ifdef TEXTURE_FLOAT_ENABLED to hide any code that may
expose floating-point renderbuffers via any interface,
public or private.

v2: Print a warning when using --enable-texture-float.

13 years agodocs: add patents.txt
Marek Olšák [Thu, 31 Mar 2011 23:12:41 +0000 (01:12 +0200)]
docs: add patents.txt

Thanks to José Fonseca for writing this.

13 years agor300g: enable A/L/LA/I float render targets
Marek Olšák [Tue, 29 Mar 2011 14:35:13 +0000 (16:35 +0200)]
r300g: enable A/L/LA/I float render targets

13 years agost/mesa: convert Mesa float formats to Gallium
Marek Olšák [Tue, 15 Feb 2011 23:40:37 +0000 (00:40 +0100)]
st/mesa: convert Mesa float formats to Gallium

Squashed commit of the following:

Author: Marek Olšák <maraeo@gmail.com>

    st/mesa: require RGBA16F and RGBA32F to be renderable
    st/mesa: fix L32F and L16F format translation
    st/mesa: also convert the R/RG float formats

commit 49a9948b6a81b7d813304d081139d98e95ba5d1a
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Fri Aug 20 10:36:17 2010 +0200

    mesa/st: enable ARB_texture_float if supported formats allow it

commit 7383632f7b6f9021b65f4973b7e7c99f0e8ce9b2
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Tue Aug 24 21:00:46 2010 +0200

    mesa/st: support ARB_texture_float internal formats

commit 7c362cc06982586c2d29fac55f6bcc4bcd1550b5
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Tue Aug 24 21:00:33 2010 +0200

    mesa/st: convert L/A/I floating point formats

13 years agogallium: add A/L/LA/I floating point formats
Luca Barbieri [Tue, 15 Feb 2011 23:40:37 +0000 (00:40 +0100)]
gallium: add A/L/LA/I floating point formats

13 years agomesa: finish up ARB_texture_float
Marek Olšák [Tue, 15 Feb 2011 23:35:44 +0000 (00:35 +0100)]
mesa: finish up ARB_texture_float

Squashed commit of the following:

Author: Marek Olšák <maraeo@gmail.com>

    mesa: handle floating-point formats in _mesa_base_fbo_format
    mesa: add ARB/ATI_texture_float, remove MESAX_texture_float

commit 123bb110852739dffadcc81ad80b005b1c4f586d
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Wed Aug 25 01:35:42 2010 +0200

    mesa: compute floatMode for FBOs and return it on RGBA_FLOAT_MODE

13 years agomesa: add R/RG floating-point formats
Marek Olšák [Tue, 15 Feb 2011 23:35:44 +0000 (00:35 +0100)]
mesa: add R/RG floating-point formats

13 years agomesa: fix L16F and L32F format properties
Marek Olšák [Tue, 15 Feb 2011 23:35:44 +0000 (00:35 +0100)]
mesa: fix L16F and L32F format properties

13 years agoAdd expected file for 095-recursive-define test case.
Carl Worth [Thu, 14 Apr 2011 23:18:35 +0000 (16:18 -0700)]
Add expected file for 095-recursive-define test case.

It's clear enough that the current segmentation fault isn't what we
want. And it's also very easy to know what we do want here, (just
check with any functional C preprocessor such as "gcc -E").

Add the desired output as an expected file so that the test suite
gives useful output, (showing the omitted output and the segfault),
rather than just reporting "No such file" for the expected file.

13 years agoglcpp: Simplify calling convention of parser's active_list functions
Carl Worth [Thu, 14 Apr 2011 22:35:41 +0000 (15:35 -0700)]
glcpp: Simplify calling convention of parser's active_list functions

These were all written as generic list functions, (accepting and returning
a list to act upon). But they were only ever used with parser->active as
the list. By simply accepting the parser itself, these functions can update
parser->active and now return nothing at all. This makes the code a bit
more compact.

And hopefully the code is no less readable since the functions are also
now renamed to have "_parser_active" in the name for better correlation
with nearby tests of the parser->active field.

13 years agoglcpp: Add --valgrind option to the glcpp-test utility
Carl Worth [Thu, 14 Apr 2011 21:55:52 +0000 (14:55 -0700)]
glcpp: Add --valgrind option to the glcpp-test utility

The common case for this test suite is to quickly test that everything
returns the correct results. In this case, the second run of the test
suite under valgrind was just annoying, (and the user would often
interrupt it).

Now, do what is wanted in the common case by default (just run the
test suite), and require a run with "glcpp-test --valgrind" in order
to test with valgrind.