mesa.git
13 years agollvmpipe: Always use memory allocation macros.
José Fonseca [Sun, 25 Sep 2011 10:48:00 +0000 (11:48 +0100)]
llvmpipe: Always use memory allocation macros.

13 years agosoftpipe: Use memory allocation macros.
José Fonseca [Sun, 25 Sep 2011 10:46:49 +0000 (11:46 +0100)]
softpipe: Use memory allocation macros.

Fixes segfault with memory debugging on.

13 years agost/vdpau: Link vdpau targets with librt to avoid unresolved symbols error related...
Emeric Grange [Thu, 22 Sep 2011 19:03:43 +0000 (21:03 +0200)]
st/vdpau: Link vdpau targets with librt to avoid unresolved symbols error related to the use of the clock_gettime() function

This patch fix a "Unresolved Symbols" run time error when using G3DVL
through the VDPAU state tracker, by linking the vdpau targets with librt.
Reported by Arkadiusz Miśkiewicz.

Caused by this commit :
commit e911dbb56374edf9f3b7c4cec0cf9a22738bb198
Author: Emeric Grange <emeric.grange@gmail.com>
Date:   Mon Sep 12 23:39:33 2011 +0200

Signed-off-by: Emeric Grange <emeric.grange@gmail.com>
13 years agog3dvl: Don't use SCALED types for iDCT
Christian König [Fri, 16 Sep 2011 16:43:44 +0000 (18:43 +0200)]
g3dvl: Don't use SCALED types for iDCT

This should bring g3dvl back to work until we figured out
how SCALED types should really work.

Signed-off-by: Christian König <deathsimple@vodafone.de>
13 years agodraw: Never allocate duplicate extra vertex attribs.
José Fonseca [Fri, 23 Sep 2011 18:55:47 +0000 (19:55 +0100)]
draw: Never allocate duplicate extra vertex attribs.

Prevents mismatches when the VS outputs generic attributes not used by
the FS.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agodraw: Make copy of the TGSI tokens.
José Fonseca [Fri, 23 Sep 2011 15:32:31 +0000 (16:32 +0100)]
draw: Make copy of the TGSI tokens.

There is no guarantee that the tokens TGSI will persist beyond the
create_fs_state. The pipe driver (and therefore the draw module) is
responsible for making copies of the TGSI tokens when it needs them.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoglsl: Fix Android build
Chad Versace [Sun, 25 Sep 2011 02:35:35 +0000 (19:35 -0700)]
glsl: Fix Android build

Add lower_clip_distance.cpp to list of source files.

Signed-off-by: Chad Versace <chad@chad-versace.us>
13 years agointel: Remove pointless boolean return value from *_miptree_layout.
Kenneth Graunke [Sat, 24 Sep 2011 05:42:18 +0000 (22:42 -0700)]
intel: Remove pointless boolean return value from *_miptree_layout.

i915_miptree_layout, i945_miptree_layout, and brw_miptree_layout always
just return GL_TRUE, so there's really no point to it.  Change them to
void functions and remove the (dead) error checking code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoglsl: Free all S-Expressions immediately after reading IR.
Kenneth Graunke [Thu, 22 Sep 2011 20:05:03 +0000 (13:05 -0700)]
glsl: Free all S-Expressions immediately after reading IR.

For some reason I thought subexpressions were chained off the top-level
one.  This isn't the case, so just create a temporary context and free
it.  All of this memory would be eventually freed, but now is freed
much sooner.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoglsl: Defer initialization of built-in functions until they're needed.
Kenneth Graunke [Tue, 20 Sep 2011 01:30:15 +0000 (18:30 -0700)]
glsl: Defer initialization of built-in functions until they're needed.

Very simple shaders don't actually use GLSL built-ins.  For example:
- gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
- gl_FragColor = vec4(0.0);
Both of the shaders used by _mesa_meta_glsl_Clear() also qualify.

By waiting to initialize the built-ins until the first time we need to
look for a signature, we can avoid the overhead entirely in these cases.

Makes piglit run roughly 18% faster (255 vs. 312 seconds).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Increase MaxClipPlanes to 8 for gen6+.
Paul Berry [Tue, 13 Sep 2011 17:58:47 +0000 (10:58 -0700)]
i965: Increase MaxClipPlanes to 8 for gen6+.

This is necessary for GLSL 1.30 compliance.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Allow clip distances to be read back in fragment shaders.
Paul Berry [Sun, 4 Sep 2011 19:18:06 +0000 (12:18 -0700)]
i965: Allow clip distances to be read back in fragment shaders.

Previously, we conditionally set up the SF pipline stage with a
urb_entry_read_offset of 2 when clipping was in use, and 1 otherwise,
causing the clip distance VUE slots to be skipped if present.  This
was an extremely minor savings (it saved the SF unit from reading 2
vec4s out of the URB, but it didn't affect any computation, since we
only instruct the SF unit to perform interpolation on VUE slots that
are actually used by the fragment shader).

GLSL 1.30 requires an interpolated version of gl_ClipDistance to be
available for reading in the fragment shader, so we need the SF's
urb_entry_read_offset to be 1 when the fragment shader reads from
gl_ClipDistance.

This patch just unconditionally sets the urb_entry_read_offset to 1 in
all cases; this is sufficient to make gl_ClipDistance available to the
fragment shader when it is needed, and the performance loss should be
negligible when it isn't.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Set up clip distance VUE slots appropriately for gl_ClipDistance.
Paul Berry [Fri, 2 Sep 2011 19:36:09 +0000 (12:36 -0700)]
i965: Set up clip distance VUE slots appropriately for gl_ClipDistance.

When gl_ClipDistance is in use, the contents of the gl_ClipDistance
array just need to be copied directly into the clip distance VUE
slots, so we re-use the code that copies all other generic VUE slots
(this has been extracted to its own method).  When gl_ClipDistance is
not in use, the vertex shader needs to calculate the clip distances
based on user-specified clipping planes.

This patch also removes the i965-specific enum values
BRW_VERT_RESULT_CLIP[01], since we now have generic Mesa enums that
serve the same purpose (VERT_RESULT_CLIP_DIST[01]).

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Don't upload clip planes when gl_ClipDistance is in use.
Paul Berry [Fri, 2 Sep 2011 21:57:18 +0000 (14:57 -0700)]
i965: Don't upload clip planes when gl_ClipDistance is in use.

When the vertex shader writes to gl_ClipDistance, we do clipping based
on clip distances rather than user clip planes, so don't waste push
constant space storing user clip planes that won't be used.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Enable lower_clip_distance.
Paul Berry [Thu, 15 Sep 2011 22:16:08 +0000 (15:16 -0700)]
i965: Enable lower_clip_distance.

i965 requires gl_ClipDistance to be formatted as an array of 2 vec4's
(as opposed to an array of 8 floats), so enable the lowering pass that
performs this conversion.

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agomesa: Decode GL_CLIP_DISTANCE[67] properly in _mesa_set_enable().
Paul Berry [Tue, 13 Sep 2011 19:07:15 +0000 (12:07 -0700)]
mesa: Decode GL_CLIP_DISTANCE[67] properly in _mesa_set_enable().

In order to support 8 clip distances, we need to properly decode when
the user sets the GL_CLIP_DISTANCE6 and GL_CLIP_DISTANCE7 enable
flags.

For clarity, this patch changes the names GL_CLIP_PLANE[0-5] in the
switch statement to the equivalent names GL_CLIP_DISTANCE[0-5], since
the GL_CLIP_PLANE names are deprecated.

Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
13 years agomesa: set up gl_vert_result and gl_frag_attrib values for gl_ClipDistance.
Paul Berry [Fri, 19 Aug 2011 20:12:23 +0000 (13:12 -0700)]
mesa: set up gl_vert_result and gl_frag_attrib values for gl_ClipDistance.

This patch assigns enumerated values for gl_ClipDistance in the
gl_vert_result and gl_frag_attrib enums, so that driver back-ends can
assign gl_ClipDistance to the appropriate hardware registers.  It also
adjusts the functions _mesa_vert_result_to_frag_attrib() and
_mesa_frag_attrib_to_vert_result() (which translate between the two
enums) to correctly translate the new enumerated values.

Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add a flag to indicate whether a program uses gl_ClipDistance.
Paul Berry [Sat, 17 Sep 2011 16:42:02 +0000 (09:42 -0700)]
mesa: Add a flag to indicate whether a program uses gl_ClipDistance.

GLSL 1.30 requires us to use gl_ClipDistance for clipping if the
vertex shader contains a static write to it, and otherwise use
user-defined clipping planes.  Since the driver needs to behave
differently in these two cases, we need a flag to record whether the
shader has written to gl_ClipDistance.

The new flag is called UsesClipDistance.  We initially store it in
gl_shader_program (since that is the data structure that is available
when we check to see whethe gl_ClipDistance was written to), and we
later copy it to a flag with the same name in gl_vertex_program, since
that is a more convenient place for the driver to access it (in i965,
at least).

Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
13 years agoglsl: Implement a lowering pass for gl_ClipDistance.
Paul Berry [Fri, 12 Aug 2011 03:58:21 +0000 (20:58 -0700)]
glsl: Implement a lowering pass for gl_ClipDistance.

In i965 GEN6+ (and I suspect most other hardware), gl_ClipDistance
needs to be laid out as a pair of vec4's (the first containing clip
distances 0-3, and the second containing clip distances 4-7).
However, it is declared in GLSL as an array of 8 floats.

This lowering pass acts at the GLSL level, modifying the declaration
of gl_ClipDistance so that it is an array of vec4's rather than an
array of floats, and renaming it to gl_ClipDistanceMESA.  In addition,
it modifies all accesses to the array so that they access the
appropiate component of one of the vec4's.

Since some hardware may not internally represent gl_ClipDistance as a
pair of vec4's, this lowering pass is optional.  To enable it, set the
LowerClipDistance flag in gl_shader_compiler_options to true.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoglsl hierarchical visitor: Do not overwrite base_ir for parameter lists.
Paul Berry [Fri, 19 Aug 2011 04:37:31 +0000 (21:37 -0700)]
glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.

This patch fixes a bug in ir_hirearchical_visitor: when traversing an
exec_list representing the formal or actual parameters of a function,
it modified base_ir to point to each parameter in turn, rather than
leaving it as a pointer to the enclosing statement.  This was a
problem, since base_ir is used by visitor classes to locate the
statement containing the node being visited (usually so that
additional statements can be inserted before or after it).  Without
this fix, visitors might attempt to insert statements into parameter
lists.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Add missing includes to meta.h
Chad Versace [Thu, 22 Sep 2011 18:04:40 +0000 (11:04 -0700)]
mesa: Add missing includes to meta.h

Include mtypes.h.

Signed-off-by: Chad Versace <chad@chad-versace.us>
13 years agodocs: mention VMware svga driver updates in 7.12 release notes
Brian Paul [Fri, 23 Sep 2011 14:05:36 +0000 (08:05 -0600)]
docs: mention VMware svga driver updates in 7.12 release notes

13 years agosvga: indentation/formatting fixes
Brian Paul [Thu, 22 Sep 2011 23:30:34 +0000 (17:30 -0600)]
svga: indentation/formatting fixes

13 years agosvga: remove emit_consts() offset parameter
Brian Paul [Thu, 22 Sep 2011 23:19:47 +0000 (17:19 -0600)]
svga: remove emit_consts() offset parameter

It was always zero.

13 years agosvga: s/int/unsigned/ in svga_state_constants.c
Brian Paul [Thu, 22 Sep 2011 23:17:34 +0000 (17:17 -0600)]
svga: s/int/unsigned/ in svga_state_constants.c

Be consistent with other functions in the file.  And add some comments.

13 years agosvga: s/unit/shader/ and related clean-ups
Brian Paul [Thu, 22 Sep 2011 23:10:24 +0000 (17:10 -0600)]
svga: s/unit/shader/ and related clean-ups

'shader' is more intuitive.  Also s/int/unsigned/ and add assertions.

13 years agosvga: clean up return values and error codes
Brian Paul [Thu, 22 Sep 2011 23:02:59 +0000 (17:02 -0600)]
svga: clean up return values and error codes

Previously we were using a hodge podge of int vs. pipe_enum and
0 vs. PIPE_OK.  Some functions that always returned PIPE_OK were
made void.

13 years agosvga: add format translation for DXT/sRGB formats
Brian Paul [Wed, 27 Jul 2011 22:12:25 +0000 (16:12 -0600)]
svga: add format translation for DXT/sRGB formats

Without this, apps/tests that tried to use a DXT/sRGB format would die on
a failed assertion (st_texture.c:80).

13 years agosvga: test register W component in emit_kil()
Brian Paul [Wed, 27 Jul 2011 15:13:32 +0000 (09:13 -0600)]
svga: test register W component in emit_kil()

Only the XYZ components are checked to be negative by SVGA3DOP_TEXKILL.
GL_ARB_fp requires all four components be checked.  Emit a second texkill
for W if needed.

13 years agosvga: fix depth/shadow compare for non-projected texcoords
Brian Paul [Tue, 26 Jul 2011 15:19:40 +0000 (09:19 -0600)]
svga: fix depth/shadow compare for non-projected texcoords

We only need to do the divide by Q step for TXP instructions.
This fixes the incorrectly rendered soft shadow test in Lightsmark.
Along with the previous texture swizzle commit, this also fixes all
the piglit glsl-fs-shadow2d-XX.shader_test failures.

13 years agosvga: implement texture swizzling
Brian Paul [Mon, 25 Jul 2011 22:06:45 +0000 (16:06 -0600)]
svga: implement texture swizzling

This exposes the GL_EXT_texture_swizzle extension and allows the various
depth texture modes to be implemented properly.  This, plus a follow-on
texture/shadow change fixes quite a few piglit GLSL shadow sampler test
failures.

13 years agosvga: check that we don't exceed input/ouput register limits
Brian Paul [Tue, 19 Jul 2011 20:52:54 +0000 (14:52 -0600)]
svga: check that we don't exceed input/ouput register limits

13 years agosvga: implement point sprite suppport
Brian Paul [Wed, 13 Jul 2011 16:58:01 +0000 (10:58 -0600)]
svga: implement point sprite suppport

Emit the SVGA3D_RS_POINTSPRITEENABLE render state.
When sprite_coord_mode=PIPE_SPRITE_COORD_LOWER_LEFT emit extra frag
shader code to invert the Y coordinate of the incoming texcoord.

13 years agosvga: add translation for float formats
Brian Paul [Mon, 11 Jul 2011 16:30:56 +0000 (10:30 -0600)]
svga: add translation for float formats

13 years agosvga: check to avoid writing beyond end of constant buffer
Brian Paul [Mon, 20 Jun 2011 17:07:57 +0000 (11:07 -0600)]
svga: check to avoid writing beyond end of constant buffer

See bug 688394

13 years agosvga: Cleanup format capability checking.
José Fonseca [Wed, 27 Apr 2011 11:02:08 +0000 (12:02 +0100)]
svga: Cleanup format capability checking.

Accurately describe what operations are supported when a format caps
entry is not advertised by the host, and which formats are never
supported, instead of making ad-hoc and often incorrect assumptions.

13 years agosvga: Don't use the new depth formats for surfaces that will never be sampled from.
José Fonseca [Thu, 14 Apr 2011 12:28:10 +0000 (13:28 +0100)]
svga: Don't use the new depth formats for surfaces that will never be sampled from.

Mitigates issues with hosts where support for these new depth formats is
flaky.

13 years agosvga: Share one texcoord between depth and fog
Jakob Bornecrantz [Thu, 7 Apr 2011 16:23:48 +0000 (17:23 +0100)]
svga: Share one texcoord between depth and fog

13 years agosvga: Only emit Z depth work if it is actually read
Jakob Bornecrantz [Thu, 7 Apr 2011 13:07:20 +0000 (14:07 +0100)]
svga: Only emit Z depth work if it is actually read

13 years agosvga: Fix vPos usage
Jakob Bornecrantz [Wed, 6 Apr 2011 11:13:33 +0000 (12:13 +0100)]
svga: Fix vPos usage

13 years agosvga: Wip for passing depth in a texcoord
Jakob Bornecrantz [Fri, 25 Mar 2011 02:59:07 +0000 (02:59 +0000)]
svga: Wip for passing depth in a texcoord

TODO: Can we pass this as the same texcoord as fog?

13 years agosvga: Add a comment about depth format selection.
José Fonseca [Fri, 8 Apr 2011 14:21:10 +0000 (15:21 +0100)]
svga: Add a comment about depth format selection.

13 years agosvga: Consider the new depth formats in svga_texture_from_handle().
José Fonseca [Fri, 8 Apr 2011 14:12:45 +0000 (15:12 +0100)]
svga: Consider the new depth formats in svga_texture_from_handle().

13 years agosvgadump: Dump the new depth format names.
José Fonseca [Fri, 8 Apr 2011 14:11:39 +0000 (15:11 +0100)]
svgadump: Dump the new depth format names.

13 years agosvga: Expose the new depth formats
Jakob Bornecrantz [Thu, 7 Apr 2011 17:46:09 +0000 (18:46 +0100)]
svga: Expose the new depth formats

13 years agosvga: Coalesce multiple shader constants in a single command.
José Fonseca [Wed, 23 Feb 2011 18:45:04 +0000 (18:45 +0000)]
svga: Coalesce multiple shader constants in a single command.

HWv8 feature.

Tested with GoogleEarth, Mesa demos.

13 years agosvgadump: Update for svga3d_reg.h header changes.
José Fonseca [Wed, 23 Feb 2011 18:43:53 +0000 (18:43 +0000)]
svgadump: Update for svga3d_reg.h header changes.

13 years agosvga: updated svga3d_reg.h to latest public version
Brian Paul [Thu, 22 Sep 2011 16:42:41 +0000 (10:42 -0600)]
svga: updated svga3d_reg.h to latest public version

13 years agoAllow RBUG to start blocked
Alex Corscadden [Tue, 10 Aug 2010 20:37:44 +0000 (13:37 -0700)]
Allow RBUG to start blocked

It is sometimes useful to examine the first frame or and early frame of a
quickly executing and non-repeating application, this chain introduces a new
environment variable that is checked when creating contexts.  If
GALLIUM_RBUG_START_BLOCKED is set, then each context that is created is started
in a blocked state.  This allows time to connect rbug before anything is
rendered in the context.

13 years agodraw/llvm: add additional null pointer checkin draw_pt_fetch_pipeline_or_emit_llvm()
Brian Paul [Thu, 22 Sep 2011 16:29:58 +0000 (10:29 -0600)]
draw/llvm: add additional null pointer checkin draw_pt_fetch_pipeline_or_emit_llvm()

13 years agointel: fix the wrong code to detect null texture.
Yuanhan Liu [Fri, 23 Sep 2011 05:34:26 +0000 (13:34 +0800)]
intel: fix the wrong code to detect null texture.

There is already comments show how to detect a null texture. Fix the
code to match the comments.

This would fix the oglc divzero(basic.texQOrWEqualsZero) and
divzero(basic.texTrivialPrim) test case fail.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: fix the constant interp bitmask for flat mode
Yuanhan Liu [Tue, 6 Sep 2011 01:29:37 +0000 (09:29 +0800)]
i965: fix the constant interp bitmask for flat mode

Fix the constant interpolation enable bit mask for flat light mode.
FRAG_BIT_COL0 attribute bit might be 0, in which case we need to
shift one more bit right.

This would fix the oglc specularColor test fail on both Sandybridge and
Ivybridge.

v2: move the constant interp bitmask setup code into for(; attr <
FRAG_ATTRIB_MAX; attr++) loop suggested by Eric.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
13 years agoi915g: Don't generate useless swizzles before texture accesses.
Stéphane Marchesin [Fri, 23 Sep 2011 02:24:07 +0000 (19:24 -0700)]
i915g: Don't generate useless swizzles before texture accesses.

That helps reduce the number of texture indirections, which are very limited on i915.

13 years agoi915g: Fix whitespace.
Stéphane Marchesin [Thu, 22 Sep 2011 22:56:58 +0000 (15:56 -0700)]
i915g: Fix whitespace.

13 years agodocs: update relnotes-7.12 with r600g changes
Marek Olšák [Fri, 23 Sep 2011 01:01:00 +0000 (03:01 +0200)]
docs: update relnotes-7.12 with r600g changes

13 years agost/mesa: remove unnecessary st_texture_match_image() parameters
Brian Paul [Thu, 22 Sep 2011 22:32:49 +0000 (16:32 -0600)]
st/mesa: remove unnecessary st_texture_match_image() parameters

We didn't use the face parameter and the level parameter can be found
in the gl_texture_image.

13 years agoi915g: Fix peephole optimization for MOVs.
Stéphane Marchesin [Thu, 22 Sep 2011 19:43:24 +0000 (12:43 -0700)]
i915g: Fix peephole optimization for MOVs.

13 years agoi915g: Add unsupported PIPE_CAP_MIN_TEXEL_OFFSET/PIPE_CAP_MAX_TEXEL_OFFSET.
Stéphane Marchesin [Thu, 22 Sep 2011 19:00:24 +0000 (12:00 -0700)]
i915g: Add unsupported PIPE_CAP_MIN_TEXEL_OFFSET/PIPE_CAP_MAX_TEXEL_OFFSET.

13 years agointel: Unindent the blit call in PBO blit uploads.
Eric Anholt [Wed, 21 Sep 2011 16:51:58 +0000 (09:51 -0700)]
intel: Unindent the blit call in PBO blit uploads.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agointel: Drop gratuitous flush in PBO blit upload.
Eric Anholt [Wed, 21 Sep 2011 16:50:06 +0000 (09:50 -0700)]
intel: Drop gratuitous flush in PBO blit upload.

Since the blit gets sequenced after other batchbuffer rendering like
normal, there's no need to push things out early.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Clean up check_pbo_format to ignore internalFormat.
Eric Anholt [Wed, 21 Sep 2011 16:37:51 +0000 (09:37 -0700)]
intel: Clean up check_pbo_format to ignore internalFormat.

All that matters here is the format of the texture, not the
internalformat (which might mean various different pixel formats).  In
one case, the pbo upload for MESA_FORMAT_YCBCR would have swapped the
channels for MESA_FORMAT_YCBCR_REV.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Move more of the PBO blit upload logic into that function.
Eric Anholt [Wed, 21 Sep 2011 16:32:57 +0000 (09:32 -0700)]
intel: Move more of the PBO blit upload logic into that function.

This also improves the debugging output in the failure paths so you
get more than just "failed", and don't get spammed with "failed" when
you didn't even have a PBO to try.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Remove stale comment about non-intel gl_buffer_objects.
Eric Anholt [Wed, 21 Sep 2011 16:27:51 +0000 (09:27 -0700)]
intel: Remove stale comment about non-intel gl_buffer_objects.

This hasn't been true since dd26899ca39111e0866afed9df94bfb1618dd363
in 2009.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Remove the pbo zero-copy code.
Eric Anholt [Wed, 21 Sep 2011 16:10:19 +0000 (09:10 -0700)]
intel: Remove the pbo zero-copy code.

There were notes about the possibility of slowdowns due to zcopy from
a PBO due to thrashing around of the region.  Slowdowns are even more
likely now that textures are generally tiled, which a zcopy wouldn't
get.  Additionally, there were no checks on the buffer size to ensure
that the hardware-required rounding was present, which could result in
GPU hangs on large zcopy PBOs.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Remove extra FreeTextureImageBuffer() from glTexImage*.
Eric Anholt [Wed, 21 Sep 2011 16:02:40 +0000 (09:02 -0700)]
intel: Remove extra FreeTextureImageBuffer() from glTexImage*.

The core code does this before calling in to us.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Add support for GL_EXT_packed_float.
Eric Anholt [Tue, 20 Sep 2011 22:27:07 +0000 (15:27 -0700)]
i965: Add support for GL_EXT_packed_float.

This doesn't cover support for this format as a renderbuffer yet.  The
spec allows implementations to not support it, though it is something
we do want to support.

Only one failure in piglit on gen6, which is texwrap with bordercolor
(as usual).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965: Add support for GL_EXT_texture_shared_exponent.
Eric Anholt [Tue, 20 Sep 2011 22:14:53 +0000 (15:14 -0700)]
i965: Add support for GL_EXT_texture_shared_exponent.

Only one failure in piglit on gen6, which is texwrap with bordercolor
(as usual).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: remove support for GL_APPLE_client_storage extension
Brian Paul [Thu, 22 Sep 2011 00:54:53 +0000 (18:54 -0600)]
mesa: remove support for GL_APPLE_client_storage extension

AFAIK, there are few users of this extension and I can see a couple
reasons why this is probably broken in Mesa anyway.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agomesa: move gl_texture_image::Width/Height/DepthScale fields to swrast
Brian Paul [Thu, 22 Sep 2011 00:54:53 +0000 (18:54 -0600)]
mesa: move gl_texture_image::Width/Height/DepthScale fields to swrast

These fields were only used for swrast so move them into
swrast_texture_image.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agomesa: move gl_texture_image::_IsPowerOfTwo into swrast
Brian Paul [Thu, 22 Sep 2011 00:54:53 +0000 (18:54 -0600)]
mesa: move gl_texture_image::_IsPowerOfTwo into swrast

It's only used by swrast.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agost/mesa: Finalize texture on render-to-texture.
Michel Dänzer [Thu, 22 Sep 2011 15:01:18 +0000 (17:01 +0200)]
st/mesa: Finalize texture on render-to-texture.

This makes sure that stObj->pt exists and is up to date.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39193 and piglit
fbo-incomplete-texture-03.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 7.11 branch.

13 years agost/mesa: Convert size assertions to conditionals in st_texture_image_copy.
Brian Paul [Thu, 22 Sep 2011 15:01:18 +0000 (17:01 +0200)]
st/mesa: Convert size assertions to conditionals in st_texture_image_copy.

Prevents potential assertion failures in piglit fbo-incomplete-texture-03 test.

NOTE: This is a candidate for the 7.11 branch.

13 years agod3d1x: setup draw info primitive restart parameters
Christoph Bumiller [Thu, 22 Sep 2011 14:43:19 +0000 (16:43 +0200)]
d3d1x: setup draw info primitive restart parameters

13 years agodraw: add support for guard-band clipping
Brian Paul [Wed, 21 Sep 2011 18:06:17 +0000 (12:06 -0600)]
draw: add support for guard-band clipping

13 years agodraw: Reduce the number of vertex shader variants per context to 128.
José Fonseca [Wed, 14 Jul 2010 14:12:33 +0000 (15:12 +0100)]
draw: Reduce the number of vertex shader variants per context to 128.

13 years agodraw: Respect max_indices from the renderer.
Kurt Daverman [Mon, 7 Mar 2011 13:11:03 +0000 (13:11 +0000)]
draw: Respect max_indices from the renderer.

13 years agotranslate: check for PIPE_SUBSYSTEM_EMBEDDED
Brian Paul [Wed, 21 Sep 2011 17:37:49 +0000 (11:37 -0600)]
translate: check for PIPE_SUBSYSTEM_EMBEDDED

13 years agotgsi: Check in scan for fs position and depth reads
Jakob Bornecrantz [Thu, 7 Apr 2011 12:20:33 +0000 (13:20 +0100)]
tgsi: Check in scan for fs position and depth reads

13 years agosvga: skip assertion when index_bias < 0
Brian Paul [Mon, 20 Jun 2011 16:45:17 +0000 (10:45 -0600)]
svga: skip assertion when index_bias < 0

See bug 688383

13 years agosvga: fix the test for sRGB texture formats
Brian Paul [Wed, 27 Jul 2011 22:08:58 +0000 (16:08 -0600)]
svga: fix the test for sRGB texture formats

The pipe_sampler_view::format field should be prefered over the resource/
texture format.  The former is used to override the texture format for
sRGB decode enable/disable, etc.

Also, use new util_format_is_srgb() helper to catch all sRGB formats.

This fixes the piglit tex-srgb test for GL_EXT_texture_sRGB_decode.

13 years agogallium/util: add util_format_is_srgb() helper
Brian Paul [Wed, 27 Jul 2011 22:08:13 +0000 (16:08 -0600)]
gallium/util: add util_format_is_srgb() helper

13 years agoutil: add u_bit_scan helper
Keith Whitwell [Wed, 21 Sep 2011 17:22:43 +0000 (11:22 -0600)]
util: add u_bit_scan helper

13 years agoutil: Allow to make the depth/stencil format queries without repeatedly looking up...
José Fonseca [Wed, 21 Sep 2011 17:15:10 +0000 (11:15 -0600)]
util: Allow to make the depth/stencil format queries without repeatedly looking up the format description.

All functions here should take struct util_format_description * IMO, to
incentive efficient code.

13 years agoutil: single call to util_format_description in fill_rect
Keith Whitwell [Wed, 21 Sep 2011 17:14:04 +0000 (11:14 -0600)]
util: single call to util_format_description in fill_rect

13 years agoutil: Handle conversion between depth stencil formats.
José Fonseca [Mon, 16 Aug 2010 10:26:13 +0000 (11:26 +0100)]
util: Handle conversion between depth stencil formats.

13 years agoi915g: Add an optimization to get rid of useless movs, in particular at the end of...
Stéphane Marchesin [Thu, 22 Sep 2011 00:54:24 +0000 (17:54 -0700)]
i915g: Add an optimization to get rid of useless movs, in particular at the end of some shaders.

13 years agoi915g: Fix some whitespace problems.
Stéphane Marchesin [Thu, 22 Sep 2011 00:59:26 +0000 (17:59 -0700)]
i915g: Fix some whitespace problems.

13 years agoi915g: Blend equation separate seems to work.
Stéphane Marchesin [Thu, 22 Sep 2011 00:58:59 +0000 (17:58 -0700)]
i915g: Blend equation separate seems to work.

13 years agoi915g: Add ifdef'd out code to dump compiled shaders.
Stéphane Marchesin [Thu, 22 Sep 2011 00:55:26 +0000 (17:55 -0700)]
i915g: Add ifdef'd out code to dump compiled shaders.

13 years agoi915g: Fix bug in shader optimizer.
Stéphane Marchesin [Thu, 22 Sep 2011 00:53:22 +0000 (17:53 -0700)]
i915g: Fix bug in shader optimizer.

13 years agoi915g: Remove stale function prototype.
Stéphane Marchesin [Thu, 22 Sep 2011 00:30:39 +0000 (17:30 -0700)]
i915g: Remove stale function prototype.

13 years agosvga: call u_default_redefine_user_buffer() to fix failed assertion
Brian Paul [Wed, 21 Sep 2011 22:32:00 +0000 (16:32 -0600)]
svga: call u_default_redefine_user_buffer() to fix failed assertion

This fixes a regression from a8cf4b6acf9ee996090cc0bb95fa3558b481108c

The problem occured when two successive glDrawArrays calls accessed
subsequent elements in user-space arrays.  The user-space array
from the first call wasn't being grown to accomodate the second
draw call's elements.

Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
13 years agometa: Don't hang on to program refcounts after metaops are done.
Eric Anholt [Tue, 20 Sep 2011 23:23:57 +0000 (16:23 -0700)]
meta: Don't hang on to program refcounts after metaops are done.

Fixes piglit ARB_shader_objects/clear-with-deleted.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39577
Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoi965/vs: Return a dummy value when visiting ir_texture.
Eric Anholt [Thu, 8 Sep 2011 23:09:31 +0000 (16:09 -0700)]
i965/vs: Return a dummy value when visiting ir_texture.

While the program won't successfully link in the end, this avoids
possible assertion failure in the driver during linking if
this->result isn't initialized with something already.

13 years agoi965/gen6+: When only BFC is written, use BFC as the color.
Eric Anholt [Thu, 8 Sep 2011 22:31:22 +0000 (15:31 -0700)]
i965/gen6+: When only BFC is written, use BFC as the color.

Fixes piglit vertex-program-two-side enabled back back2

13 years agoi965/gen6+: Respect the VERTEX_PROGRAM_TWO_SIDE flag for shaders.
Eric Anholt [Thu, 8 Sep 2011 22:29:02 +0000 (15:29 -0700)]
i965/gen6+: Respect the VERTEX_PROGRAM_TWO_SIDE flag for shaders.

Fixes piglit:
vertex-program-two-side enabled front back front2 back2
vertex-program-two-side enabled front back
vertex-program-two-side enabled front2 back2

13 years agomesa: Add a context flag indicating whether two-sided lighting should happen.
Eric Anholt [Thu, 8 Sep 2011 22:14:33 +0000 (15:14 -0700)]
mesa: Add a context flag indicating whether two-sided lighting should happen.

The 965 driver was ignoring the VERTEX_PROGRAM_TWO_SIDE flag and only
looking at fixed-function state.

13 years agoutil: remove stray debug code
Brian Paul [Wed, 21 Sep 2011 14:26:29 +0000 (08:26 -0600)]
util: remove stray debug code

13 years agomesa: check glBegin()/glDrawArrays()/etc mode with _mesa_valid_prim_mode()
Brian Paul [Wed, 21 Sep 2011 14:22:07 +0000 (08:22 -0600)]
mesa: check glBegin()/glDrawArrays()/etc mode with _mesa_valid_prim_mode()

We now raise an GL_INVALID_ENUM in glBegin() if mode is illegal, as was
done in Yuanhan Liu's original patch.

Take geometry shaders support into account too.

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
13 years agogallivm: fix build with llvm 3.0svn
Brian Paul [Wed, 21 Sep 2011 13:24:00 +0000 (07:24 -0600)]
gallivm: fix build with llvm 3.0svn

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