mesa.git
14 years agoi915g: don't pot-align stride for tiled buffers
Daniel Vetter [Sat, 20 Nov 2010 09:23:03 +0000 (10:23 +0100)]
i915g: don't pot-align stride for tiled buffers

libdrm will do this for us, if it's required (i.e. if tiling is
possible).

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: postpone mipmap/face offset calculation
Daniel Vetter [Sat, 20 Nov 2010 09:00:38 +0000 (10:00 +0100)]
i915g: postpone mipmap/face offset calculation

libdrm-intel can refuse to tile buffers for various reasons. For
potentially tiled buffers the stride is therefore only known after
the iws->buffer_create_tiled call. Unconditionally rounding up to whatever
tiling requires wastes space, so rework the code to not use tex->stride
in the layout code.

Luckily only the mimap/face offset calculation uses it which can easily
be solved by storing an (x, y) coordinate pair. Furthermore this will
be usefull later for properly supporting rendering into the different
levels of tiled mipmap textures.

v2: switch to nblocks(x|y): More in line with gallium and better
suited for rendering into mipmap textures.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: implement unfenced relocs for textures using tiling bits
Daniel Vetter [Wed, 1 Dec 2010 20:03:13 +0000 (21:03 +0100)]
i915g: implement unfenced relocs for textures using tiling bits

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: implement unfenced color&depth buffer using tiling bits
Daniel Vetter [Wed, 1 Dec 2010 19:59:45 +0000 (20:59 +0100)]
i915g: implement unfenced color&depth buffer using tiling bits

v2: Clarify tiling bit calculation as suggested by Chris Wilson.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: return tiling in iws->buffer_from_handle
Daniel Vetter [Sun, 21 Nov 2010 19:25:33 +0000 (20:25 +0100)]
i915g: return tiling in iws->buffer_from_handle

This is needed to properly implement tiling flags. And the gem
implemention fo buffer_from_handle already calls get_tiling, so
it's for free.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: prepare winsys/batchbuffer for execbuf2
Daniel Vetter [Sun, 21 Nov 2010 19:21:00 +0000 (20:21 +0100)]
i915g: prepare winsys/batchbuffer for execbuf2

Wire up a fenced parameter, switch all relocations to _FENCED

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: switch to tiled allocations, kill set_fence
Daniel Vetter [Sun, 21 Nov 2010 19:36:01 +0000 (20:36 +0100)]
i915g: switch to tiled allocations, kill set_fence

This way relaxed fencing is handled by libdrm. And buffers _can't_
ever change their tiling.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: add winsys function to create tiled buffers
Daniel Vetter [Sun, 21 Nov 2010 19:34:44 +0000 (20:34 +0100)]
i915g: add winsys function to create tiled buffers

Different kernels have different restrictions for tiled buffers.
Hence use the libdrm abstraction to calculate the necessary
stride and height alignment requirements.

Not yet used.

v2: Incorporate review comments from Jakob Bornecrantz

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoi915g: drop alignment parameter from iws->buffer_create
Daniel Vetter [Sun, 21 Nov 2010 18:06:48 +0000 (19:06 +0100)]
i915g: drop alignment parameter from iws->buffer_create

It's unnecessary. The kernel gem ignores it totally and we can't
run on the old userspace fake bo manager due to lack of dri2.

Also drop the redundant name string from the sw winsys as suggested
by Jakob Bornecrantz

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
14 years agoglsl: Mark the array access for whole-array comparisons.
Eric Anholt [Wed, 1 Dec 2010 23:55:53 +0000 (15:55 -0800)]
glsl: Mark the array access for whole-array comparisons.

By not doing so, the uniform contents of
glsl-uniform-non-uniform-array-compare.shader_test was getting thrown
out since nobody was recorded as dereferencing the array.

14 years agoi965: Add support for loops in the VS.
Eric Anholt [Wed, 1 Dec 2010 23:37:10 +0000 (15:37 -0800)]
i965: Add support for loops in the VS.

This follows the changes done for the FS alongside the EU emit code.

14 years agoi965: Enable IF statements in the VS.
Eric Anholt [Wed, 1 Dec 2010 23:36:26 +0000 (15:36 -0800)]
i965: Enable IF statements in the VS.

While the actual IF instructions were fixed by Zhenyu, we were still
flattening them to conditional moves.

14 years agoi965: Add support for gen6 CONTINUE instruction emit.
Eric Anholt [Wed, 1 Dec 2010 22:02:14 +0000 (14:02 -0800)]
i965: Add support for gen6 CONTINUE instruction emit.

At this point, piglit tests for fragment shader loops are working.

14 years agoi965: Add support for gen6 BREAK ISA emit.
Eric Anholt [Wed, 1 Dec 2010 19:46:46 +0000 (11:46 -0800)]
i965: Add support for gen6 BREAK ISA emit.

There are now two targets: the hop-to-end-of-block target, and the
target for where to resume execution for active channels.

14 years agoi965: Add support for gen6 DO/WHILE ISA emit.
Eric Anholt [Wed, 1 Dec 2010 18:45:52 +0000 (10:45 -0800)]
i965: Add support for gen6 DO/WHILE ISA emit.

There's no more DO since there's no more mask stack, and WHILE has
been shuffled like IF was.

14 years agoi965: Dump the WHILE jump distance on gen6.
Eric Anholt [Wed, 1 Dec 2010 23:00:08 +0000 (15:00 -0800)]
i965: Dump the WHILE jump distance on gen6.

14 years agor300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-only
Marek Olšák [Wed, 1 Dec 2010 21:49:02 +0000 (22:49 +0100)]
r300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-only

r3xx cannot swizzle compressed textures. r4xx+ is unaffected.

NOTE: This is a candidate for the 7.9 branch.

14 years agor300g: fix texture swizzling with compressed textures on r400-r500
Marek Olšák [Tue, 30 Nov 2010 22:28:43 +0000 (23:28 +0100)]
r300g: fix texture swizzling with compressed textures on r400-r500

This fixes all S3TC piglit/texwrap tests.

NOTE: This is a candidate for the 7.9 branch.

14 years agoi915: Correctly generate unconditional KIL instructions
Ian Romanick [Wed, 1 Dec 2010 19:57:33 +0000 (11:57 -0800)]
i915: Correctly generate unconditional KIL instructions

Fixes piglit test glsl-fs-discard-03.

NOTE: This is a candidate for the 7.9 branch.

14 years agoi915: Request that POW instructions be lowered
Ian Romanick [Thu, 25 Nov 2010 06:21:34 +0000 (22:21 -0800)]
i915: Request that POW instructions be lowered

14 years agoglsl: Lower ir_binop_pow to a sequence of EXP2 and LOG2
Ian Romanick [Thu, 25 Nov 2010 06:21:10 +0000 (22:21 -0800)]
glsl: Lower ir_binop_pow to a sequence of EXP2 and LOG2

14 years agoglsl: Use M_LOG2E constant instead of calling log2
Ian Romanick [Wed, 24 Nov 2010 22:03:57 +0000 (14:03 -0800)]
glsl: Use M_LOG2E constant instead of calling log2

14 years agoglsl: Add comments to lower_jumps (from the commit message).
Kenneth Graunke [Mon, 29 Nov 2010 19:00:10 +0000 (11:00 -0800)]
glsl: Add comments to lower_jumps (from the commit message).

This is essentially Luca's commit message, but placed at the top of the
file.

14 years agoglsl: Remove "discard" support from lower_jumps.
Kenneth Graunke [Mon, 29 Nov 2010 18:59:16 +0000 (10:59 -0800)]
glsl: Remove "discard" support from lower_jumps.

The new lower_discard and opt_discard_simplification passes should
handle all the necessary transformations, so lower_jumps doesn't need to
support it.

Also, lower_jumps incorrectly handled conditional discards - it would
unconditionally truncate all code after the discard.  Rather than fixing
the bug, simply remove the code.

NOTE: This is a candidate for the 7.9 branch.

14 years agoglsl: Add a lowering pass to move discards out of if-statements.
Kenneth Graunke [Thu, 25 Nov 2010 09:09:26 +0000 (01:09 -0800)]
glsl: Add a lowering pass to move discards out of if-statements.

This should allow lower_if_to_cond_assign to work in the presence of
discards, fixing bug #31690 and likely #31983.

NOTE: This is a candidate for the 7.9 branch.

14 years agoglsl: Add an optimization pass to simplify discards.
Kenneth Graunke [Thu, 25 Nov 2010 06:02:26 +0000 (22:02 -0800)]
glsl: Add an optimization pass to simplify discards.

NOTE: This is a candidate for the 7.9 branch.

14 years agoir_to_mesa: Add support for conditional discards.
Marek Olšák [Thu, 25 Nov 2010 11:13:36 +0000 (03:13 -0800)]
ir_to_mesa: Add support for conditional discards.

NOTE: This is a candidate for the 7.9 branch.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
14 years agor600c: fix some opcodes on evergreen
Alex Deucher [Wed, 1 Dec 2010 18:22:00 +0000 (13:22 -0500)]
r600c: fix some opcodes on evergreen

There were a few places where we were using the wrong opcodes
on evergreen.  arl still needs to be fixed on evergreen; see
r600g for reference.

NOTE: This is a candidate for the 7.9 branch.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
14 years agor300/compiler: implement and lower OPCODE_CLAMP
Marek Olšák [Wed, 1 Dec 2010 15:44:22 +0000 (16:44 +0100)]
r300/compiler: implement and lower OPCODE_CLAMP

Needed for st/vega.

14 years agovega: Remove extraneous ;
José Fonseca [Wed, 1 Dec 2010 12:31:21 +0000 (12:31 +0000)]
vega: Remove extraneous ;

14 years agoscons: Move MSVS_VERSION option to common module.
José Fonseca [Wed, 1 Dec 2010 12:20:58 +0000 (12:20 +0000)]
scons: Move MSVS_VERSION option to common module.

14 years agosvga: Silence debug printf.
José Fonseca [Tue, 30 Nov 2010 14:06:34 +0000 (14:06 +0000)]
svga: Silence debug printf.

14 years agost/vega: Avoid unnecessary constant bufer upload.
Chia-I Wu [Wed, 1 Dec 2010 10:23:53 +0000 (18:23 +0800)]
st/vega: Avoid unnecessary constant bufer upload.

Remember the last uploaded data and avoid re-uploading.

14 years agost/vega: Initialize pipe states with renderer.
Chia-I Wu [Wed, 1 Dec 2010 09:13:09 +0000 (17:13 +0800)]
st/vega: Initialize pipe states with renderer.

Initialize vertex elements, rasterizer, stencil ref, and vertex shader
with renderer_create.  Remove RASTERIZER_DIRTY and VS_DIRTY flags.

14 years agost/vega: Create drawing surface mask as needed.
Chia-I Wu [Wed, 1 Dec 2010 09:51:41 +0000 (17:51 +0800)]
st/vega: Create drawing surface mask as needed.

As the blend texture, a drawing surface mask is used when masking is
enabled.  It should be created as needed.

s/alpha_mask/surface_mask/ to follow OpenVG 1.1 naming.

14 years agost/vega: Delay blend texture creation until needed.
Chia-I Wu [Wed, 1 Dec 2010 09:38:57 +0000 (17:38 +0800)]
st/vega: Delay blend texture creation until needed.

It is used for more advanced blending or mask update.  It might not be
ever needed for some applications.

14 years agost/vega: Remove st_inlines.h.
Chia-I Wu [Wed, 1 Dec 2010 08:59:43 +0000 (16:59 +0800)]
st/vega: Remove st_inlines.h.

Per b0427bedde80e3189524651a327235bdfddbc613.

14 years agost/vega: Simplify radial gradient.
Chia-I Wu [Wed, 1 Dec 2010 05:39:59 +0000 (13:39 +0800)]
st/vega: Simplify radial gradient.

Eight less instructions with comments.

14 years agost/vega: Fix degenerate paints.
Chia-I Wu [Wed, 1 Dec 2010 03:54:58 +0000 (11:54 +0800)]
st/vega: Fix degenerate paints.

Fix the case that the two points of a linear gradient coincide, or the
case that the radius of a radial gradient is equal to or less than 0.

14 years agoi965: also using align1 mode for math2 on sandybridge
Zhenyu Wang [Wed, 1 Dec 2010 07:02:46 +0000 (15:02 +0800)]
i965: also using align1 mode for math2 on sandybridge

Like Eric's workaround patch of commit 490c23ee6be2e8531b5a14d42f808de83d401130.
This forces to align1 mode for math2 too.

14 years agost/vega: Fix negated logic in image_draw.
Chia-I Wu [Wed, 1 Dec 2010 03:39:02 +0000 (11:39 +0800)]
st/vega: Fix negated logic in image_draw.

A typo from last commit.

14 years agost/vega: Fix paint coordinates transformations.
Chia-I Wu [Tue, 30 Nov 2010 18:30:59 +0000 (02:30 +0800)]
st/vega: Fix paint coordinates transformations.

Depending on whether vgDrawPath(mode), vgDrawImage, or vgDrawGlyph[s] is
called, different paint-to-user and user-to-surface matrices should be
used to derive the sample points for the paint.

This fixes "paint" demo.

14 years agost/vega: Bump version to 1.1.
Chia-I Wu [Mon, 29 Nov 2010 07:11:16 +0000 (15:11 +0800)]
st/vega: Bump version to 1.1.

14 years agost/vega: Add color transformation support.
Chia-I Wu [Mon, 29 Nov 2010 03:49:18 +0000 (11:49 +0800)]
st/vega: Add color transformation support.

Per OpenVG 1.1.  A new shader stage is added.  It uses the first two
constants of the fragment shader for color transformation parameters.

14 years agost/vega: More flexible shader selection.
Chia-I Wu [Mon, 29 Nov 2010 11:15:03 +0000 (19:15 +0800)]
st/vega: More flexible shader selection.

Divide bits of VegaShaderType into 6 groups: paint, image, mask, fill,
premultiply, and bw.  Each group represents a stage.  At most one shader
from each group will be selected when constructing the final fragment
shader.

14 years agost/vega: Revive mask layer support.
Chia-I Wu [Sun, 28 Nov 2010 16:15:51 +0000 (00:15 +0800)]
st/vega: Revive mask layer support.

14 years agost/vega: Add primitive text support.
Chia-I Wu [Tue, 23 Nov 2010 17:24:38 +0000 (01:24 +0800)]
st/vega: Add primitive text support.

Optional features such as auth-hinting are not implemented.  There is no
anti-aliasing, and no effort is done to keep the glyph origin integral.
So the text quality is poor.

14 years agost/vega: Make image_draw take a matrix.
Chia-I Wu [Wed, 24 Nov 2010 07:51:46 +0000 (15:51 +0800)]
st/vega: Make image_draw take a matrix.

14 years agost/vega: Make path_render and path_stroke take a matrix.
Chia-I Wu [Wed, 24 Nov 2010 07:42:48 +0000 (15:42 +0800)]
st/vega: Make path_render and path_stroke take a matrix.

14 years agost/vega: Fix image sampler views for alpha-only formats.
Chia-I Wu [Tue, 23 Nov 2010 14:39:31 +0000 (22:39 +0800)]
st/vega: Fix image sampler views for alpha-only formats.

For alpha-only VG formats, R = G = B = 1.0.

14 years agost/vega: Update to latest headers.
Chia-I Wu [Mon, 19 Apr 2010 12:16:07 +0000 (20:16 +0800)]
st/vega: Update to latest headers.

14 years agost/vega: Get rid of renderer_copy_texture.
Chia-I Wu [Sun, 28 Nov 2010 11:45:17 +0000 (19:45 +0800)]
st/vega: Get rid of renderer_copy_texture.

14 years agost/vega: vg_copy_texture and vg_copy_surface should share code.
Chia-I Wu [Sun, 28 Nov 2010 12:20:45 +0000 (20:20 +0800)]
st/vega: vg_copy_texture and vg_copy_surface should share code.

14 years agost/vega: Clean up renderer fields and functions.
Chia-I Wu [Sat, 27 Nov 2010 19:48:23 +0000 (03:48 +0800)]
st/vega: Clean up renderer fields and functions.

14 years agost/vega: Clean up vg_context fields and functions.
Chia-I Wu [Sat, 27 Nov 2010 19:39:18 +0000 (03:39 +0800)]
st/vega: Clean up vg_context fields and functions.

14 years agost/vega: vg_manager should care about only the color buffer.
Chia-I Wu [Sat, 27 Nov 2010 19:29:55 +0000 (03:29 +0800)]
st/vega: vg_manager should care about only the color buffer.

Move depth/stencil buffer, blend texture view, and alpha mask view
creation to vg_context.c.

14 years agost/vega: Make shader_bind call into the renderer.
Chia-I Wu [Sun, 28 Nov 2010 09:30:29 +0000 (17:30 +0800)]
st/vega: Make shader_bind call into the renderer.

With this commit, the pipe states are entirely managed by the renderer.
The rest of the code interfaces with the renderer instead of
manipulating the states directly.

14 years agost/vega: Move g3d states to renderer.
Chia-I Wu [Sat, 27 Nov 2010 17:58:05 +0000 (01:58 +0800)]
st/vega: Move g3d states to renderer.

Let vg_context focus on OpenVG states and renderer focus on gallium
states.

14 years agost/vega: Use st_framebuffer for fb width/height.
Chia-I Wu [Sat, 27 Nov 2010 17:37:35 +0000 (01:37 +0800)]
st/vega: Use st_framebuffer for fb width/height.

This allows us to eventually make g3d states opaque.

14 years agost/vega: Delay fb state update to vg_validate_state.
Chia-I Wu [Sat, 27 Nov 2010 14:05:37 +0000 (22:05 +0800)]
st/vega: Delay fb state update to vg_validate_state.

vg_manager_validate_framebuffer should mark the fb dirty and have
vg_validate_state call cso_set_framebuffer.  Rename VIEWPORT_DIRTY to
FRAMEBUFFER_DIRTY.

14 years agost/vega: Add POLYGON_STENCIL and POLYGON_FILL renderer state.
Chia-I Wu [Sat, 27 Nov 2010 07:04:30 +0000 (15:04 +0800)]
st/vega: Add POLYGON_STENCIL and POLYGON_FILL renderer state.

The states are designated for polygon filling.  Polygon filling is a
two-pass process utilizing the stencil buffer.  polygon_fill and
polygon_array_fill functions are updated to make use of the state.

14 years agost/vega: Use the renderer for vgMask.
Chia-I Wu [Sun, 28 Nov 2010 08:06:23 +0000 (16:06 +0800)]
st/vega: Use the renderer for vgMask.

vgMask renders to the alpha mask with special fragment shaders.  The
operation can be supported by switching the renderer to FILTER state.

14 years agost/vega: Add FILTER renderer state for image filtering.
Chia-I Wu [Fri, 26 Nov 2010 15:25:18 +0000 (23:25 +0800)]
st/vega: Add FILTER renderer state for image filtering.

The state is designated to perform image filtering.  execute_filter is
updated to make use of the state.

14 years agost/vega: Add CLEAR renderer state for vgClear.
Chia-I Wu [Fri, 26 Nov 2010 15:21:17 +0000 (23:21 +0800)]
st/vega: Add CLEAR renderer state for vgClear.

This state provides the ability to clear rectangles of the framebuffer
to the specified color, honoring scissoring.  vegaClear is updated to
make use of the state.

14 years agost/vega: Add SCISSOR renderer state.
Chia-I Wu [Fri, 26 Nov 2010 14:49:20 +0000 (22:49 +0800)]
st/vega: Add SCISSOR renderer state.

The state can be used to set rectangles of the depth buffer to 0.0f.
update_clip_state is changed to use the state for scissor update.

14 years agost/vega: Add DRAWTEX renderer state.
Chia-I Wu [Fri, 26 Nov 2010 14:56:05 +0000 (22:56 +0800)]
st/vega: Add DRAWTEX renderer state.

This state provides glDrawTex-like function.  It can be used for
vgSetPixels.

Rather than modifying every user of the renderer, this commit instead
modifies renderer_copy_surface to use DRAWTEX or COPY state internally
depending on whether the destination is the framebuffer.

14 years agost/vega: Overhaul renderer with renderer states.
Chia-I Wu [Fri, 26 Nov 2010 14:48:10 +0000 (22:48 +0800)]
st/vega: Overhaul renderer with renderer states.

Renderer states are high-level states to perform specific tasks.  The
renderer is initially in INIT state.  In that state, the renderer is
used for OpenVG pipeline.

This commit adds a new COPY state to the renderer.  The state is used
for copying between two pipe resources using textured drawing.  It can
be used for vgCopyImage, for example.

Rather than modifying every user of the renderer, this commit instead
modifies renderer_copy_texture to use the COPY state internally.

14 years agollvmpipe: Fix build errors on x86.
Chia-I Wu [Wed, 1 Dec 2010 03:21:17 +0000 (11:21 +0800)]
llvmpipe: Fix build errors on x86.

The errors were introduced by
efc82aef35a2aac5d2ed9774f6d28f2626796416.

14 years agodocs: Fix MESA_drm_image typo
Kristian Høgsberg [Tue, 30 Nov 2010 02:04:43 +0000 (21:04 -0500)]
docs: Fix MESA_drm_image typo

14 years agogallivm/llvmpipe: squash merge of the llvm-context branch
Brian Paul [Tue, 30 Nov 2010 23:07:52 +0000 (16:07 -0700)]
gallivm/llvmpipe: squash merge of the llvm-context branch

This branch defines a gallivm_state structure which contains the
LLVMBuilderRef, LLVMContextRef, etc.  All data structures built with
this object can be periodically freed during a "garbage collection"
operation.

The gallivm_state object has to be passed to most of the builder
functions where LLVMBuilderRef used to be used.

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
src/gallium/drivers/llvmpipe/lp_state_setup.c

14 years agor300g: fix texture border color once again
Marek Olšák [Mon, 29 Nov 2010 02:40:04 +0000 (03:40 +0100)]
r300g: fix texture border color once again

I made the texwrap test be more thorough and realized that this driver code
had not been quite right. This commit fixes the border color for depth
textures, compressed textures, and 16-bits-per-channel textures
with up to 2 channels (R16, RG16).

NOTE: This is a candidate for the 7.9 branch.

14 years agoglsl/linker: Free any IR discarded by optimization passes.
Kenneth Graunke [Wed, 17 Nov 2010 19:03:57 +0000 (11:03 -0800)]
glsl/linker: Free any IR discarded by optimization passes.

Previously, IR for a linked shader was allocated directly out of the
gl_shader object - meaning all of it lived as long as the shader.

Now, IR is allocated out of a temporary context, and any -live- IR is
reparented/stolen to (effectively) the gl_shader.  Any remaining IR can
be freed.

NOTE: This is a candidate for the 7.9 branch.

14 years agoglsl: Remove anti-built-in hacks from the print visitor.
Kenneth Graunke [Thu, 11 Nov 2010 20:14:02 +0000 (12:14 -0800)]
glsl: Remove anti-built-in hacks from the print visitor.

Now that we only import built-in signatures that are actually used,
printing them is reasonable.

14 years agoglsl: Lazily import built-in function prototypes.
Kenneth Graunke [Thu, 11 Nov 2010 20:11:27 +0000 (12:11 -0800)]
glsl: Lazily import built-in function prototypes.

This makes a very simple 1.30 shader go from 196k of memory to 9k.

NOTE: This -may- be a candidate for the 7.9 branch, as the benefit is
substantial.  However, it's not a simple change, so it may be wiser to
wait for 7.10.

14 years agoglsl: Refactor out cloning of function prototypes.
Kenneth Graunke [Thu, 11 Nov 2010 20:21:27 +0000 (12:21 -0800)]
glsl: Refactor out cloning of function prototypes.

This allows us to reuse some code and will be useful later.

14 years agoglsl: fix matrix type check in ir_algebraic
Aras Pranckevicius [Tue, 30 Nov 2010 21:24:44 +0000 (13:24 -0800)]
glsl: fix matrix type check in ir_algebraic

Fixes glsl-mat-mul-1.

14 years agoglsl: Quiet unreachable no-return-from-function warning.
Eric Anholt [Tue, 30 Nov 2010 21:28:47 +0000 (13:28 -0800)]
glsl: Quiet unreachable no-return-from-function warning.

14 years agoscons: add alias for identity
Zack Rusin [Tue, 30 Nov 2010 21:13:11 +0000 (16:13 -0500)]
scons: add alias for identity

14 years agoglsl: Fix structure and array comparisions.
Eric Anholt [Tue, 30 Nov 2010 19:23:28 +0000 (11:23 -0800)]
glsl: Fix structure and array comparisions.

We were trying to emit a single ir_expression to compare the whole
thing.  The backends (ir_to_mesa.cpp and brw_fs.cpp so far) expected
ir_binop_any_nequal or ir_binop_all_equal to apply to at most a vector
(with matrices broken down by the lowering pass).  Break them down to
a bunch of ORed or ANDed any_nequals/all_equals.

Fixes:
glsl-array-compare
glsl-array-compare-02
glsl-fs-struct-equal
glsl-fs-struct-notequal
Bug #31909

14 years agoglsl: Add a helper constructor for expressions that works out result type.
Eric Anholt [Wed, 3 Nov 2010 17:21:07 +0000 (10:21 -0700)]
glsl: Add a helper constructor for expressions that works out result type.

This doesn't cover all expressions or all operand types, but it will
complain if you overreach and it allows for much greater slack on the
programmer's part.

14 years agollvmpipe: shortcircuit some calls to set_scene_state
Keith Whitwell [Tue, 30 Nov 2010 12:00:25 +0000 (12:00 +0000)]
llvmpipe: shortcircuit some calls to set_scene_state

14 years agollvmpipe: remove misleading debug string
Keith Whitwell [Tue, 30 Nov 2010 11:22:46 +0000 (11:22 +0000)]
llvmpipe: remove misleading debug string

14 years agollvmpipe: raise dirty flag on transfers to bound constbuf
Keith Whitwell [Mon, 29 Nov 2010 19:18:54 +0000 (19:18 +0000)]
llvmpipe: raise dirty flag on transfers to bound constbuf

Need this to trigger the scene to update its shadow of the constant
state.

14 years agowgl: More complete WGL_ARB_pbuffer support.
José Fonseca [Mon, 29 Nov 2010 20:53:44 +0000 (20:53 +0000)]
wgl: More complete WGL_ARB_pbuffer support.

14 years agowgl: Stub WGL_ARB_pbuffer support.
José Fonseca [Wed, 5 May 2010 14:14:02 +0000 (15:14 +0100)]
wgl: Stub WGL_ARB_pbuffer support.

See http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt

14 years agoscons: Alias for svga
José Fonseca [Mon, 29 Nov 2010 21:13:38 +0000 (21:13 +0000)]
scons: Alias for svga

14 years agosvga: Use consistent hexadecimal representation on debug output.
José Fonseca [Fri, 26 Nov 2010 17:12:09 +0000 (17:12 +0000)]
svga: Use consistent hexadecimal representation on debug output.

14 years agoutil: rename u_mempool -> u_slab
Marek Olšák [Mon, 29 Nov 2010 22:37:25 +0000 (23:37 +0100)]
util: rename u_mempool -> u_slab

14 years agogallivm: fix storing of the addr register
Zack Rusin [Tue, 30 Nov 2010 07:01:43 +0000 (02:01 -0500)]
gallivm: fix storing of the addr register

we store into the index specified by the register index, not an
indirect register.

14 years agoglsl: Make the symbol table's add_variable just use the variable's name.
Eric Anholt [Fri, 5 Nov 2010 13:11:24 +0000 (06:11 -0700)]
glsl: Make the symbol table's add_variable just use the variable's name.

14 years agoglsl: Make the symbol table's add_function just use the function's name.
Eric Anholt [Fri, 5 Nov 2010 13:08:45 +0000 (06:08 -0700)]
glsl: Make the symbol table's add_function just use the function's name.

14 years agoi965: Fix type of gl_FragData[] dereference for FB write.
Eric Anholt [Tue, 30 Nov 2010 00:16:38 +0000 (16:16 -0800)]
i965: Fix type of gl_FragData[] dereference for FB write.

Fixes glsl-fs-fragdata-1, and hopefully Eve Online where I noticed
this bug in the generated shader.  Bug #31952.

14 years agodrivers/x11: unifdef XFree86Server
Adam Jackson [Mon, 29 Nov 2010 22:37:54 +0000 (17:37 -0500)]
drivers/x11: unifdef XFree86Server

This code was for the old GLcore build of the software rasteriser.  The
X server switched to a DRI driver for software indirect GLX long ago.

Signed-off-by: Adam Jackson <ajax@redhat.com>
14 years agost/mesa: fix texture border color for RED and RG base formats
Marek Olšák [Mon, 29 Nov 2010 04:46:15 +0000 (05:46 +0100)]
st/mesa: fix texture border color for RED and RG base formats

The spec says the border color should be consistent with the internal
format.

Signed-off-by: Brian Paul <brianp@vmware.com>
14 years agomesa: check for posix_memalign() errors
pontus lidman [Mon, 29 Nov 2010 16:20:41 +0000 (09:20 -0700)]
mesa: check for posix_memalign() errors

Signed-off-by: Brian Paul <brianp@vmware.com>
14 years agor600g: it looks like r600 can handle dword offsets in the indices.
Dave Airlie [Mon, 29 Nov 2010 01:38:24 +0000 (11:38 +1000)]
r600g: it looks like r600 can handle dword offsets in the indices.

Tested with piglit + ut2004 still seems to render okay (and it
definitely does this)

14 years agou_blitter: interpolate clear color using a GENERIC varying instead of COLOR
Marek Olšák [Sun, 28 Nov 2010 15:59:03 +0000 (16:59 +0100)]
u_blitter: interpolate clear color using a GENERIC varying instead of COLOR

There are also some u_simple_shaders changes.

On r300, the TGSI_SEMANTIC_COLOR varying is a fixed-point number clamped
to the range [0,1] and limited to 12 bits of precision. Therefore we can't
use it for passing through a clear color in order to clear high precision
texture formats.

This also makes u_blitter use only one vertex shader instead of two.

14 years agor600g: Fix the PIPE_FORMAT_A8_UNORM color swap for Evergreen as well.
Henri Verbeet [Sat, 27 Nov 2010 16:29:56 +0000 (17:29 +0100)]
r600g: Fix the PIPE_FORMAT_A8_UNORM color swap for Evergreen as well.

14 years agor600g: Fix the PIPE_FORMAT_L8A8_UNORM color swaps.
Henri Verbeet [Sat, 27 Nov 2010 15:43:57 +0000 (16:43 +0100)]
r600g: Fix the PIPE_FORMAT_L8A8_UNORM color swaps.

14 years agost/mesa: Set PIPE_TRANSFER_DISCARD for GL_MAP_INVALIDATE_RANGE/BUFFFER_BIT
Mathias Fröhlich [Sat, 30 Oct 2010 13:38:39 +0000 (15:38 +0200)]
st/mesa: Set PIPE_TRANSFER_DISCARD for GL_MAP_INVALIDATE_RANGE/BUFFFER_BIT

Signed-off-by: Brian Paul <brianp@vmware.com>
Note: this is a candidate for the 7.9 branch.