mesa.git
15 years agodemos/glsl: Add missing break statement to noise test.
Vinson Lee [Thu, 12 Nov 2009 01:39:58 +0000 (17:39 -0800)]
demos/glsl: Add missing break statement to noise test.

15 years agost/xorg: implement repeatnone and make some code smell less like ass
Zack Rusin [Thu, 12 Nov 2009 00:52:08 +0000 (19:52 -0500)]
st/xorg: implement repeatnone and make some code smell less like ass

15 years agost/xorg: fallback until daddy can implement you properly
Zack Rusin [Wed, 11 Nov 2009 23:06:26 +0000 (18:06 -0500)]
st/xorg: fallback until daddy can implement you properly

15 years agoprogs/tests: add alpha/blend testing to packedpixels.c
Brian Paul [Wed, 11 Nov 2009 19:19:20 +0000 (12:19 -0700)]
progs/tests: add alpha/blend testing to packedpixels.c

15 years agor300, r300g: Add missing registers.
Corbin Simpson [Wed, 11 Nov 2009 11:05:16 +0000 (03:05 -0800)]
r300, r300g: Add missing registers.

15 years agodri-st: Add some required GL 2.0 extensions.
Corbin Simpson [Wed, 11 Nov 2009 11:04:27 +0000 (03:04 -0800)]
dri-st: Add some required GL 2.0 extensions.

Two-sided stencil and NPOT textures.

15 years agost/xorg: Fallback if picture format doesn't match texture format
Jakob Bornecrantz [Tue, 10 Nov 2009 09:05:40 +0000 (10:05 +0100)]
st/xorg: Fallback if picture format doesn't match texture format

15 years agost/xorg: Don't segfault when debug printing
Jakob Bornecrantz [Tue, 10 Nov 2009 07:55:26 +0000 (08:55 +0100)]
st/xorg: Don't segfault when debug printing

15 years agost/xorg: wrap to border color
Zack Rusin [Wed, 11 Nov 2009 01:28:54 +0000 (20:28 -0500)]
st/xorg: wrap to border color

15 years agoswrast: update renderbuffer format assertions
brian [Wed, 11 Nov 2009 01:23:59 +0000 (18:23 -0700)]
swrast: update renderbuffer format assertions

15 years agomesa: fix some begin/end render-to-texture logic
brian [Wed, 11 Nov 2009 01:02:03 +0000 (18:02 -0700)]
mesa: fix some begin/end render-to-texture logic

Before, we weren't aggressive enough in checking for the start or end
of render-to-texture.  In particular, if only the ctx->ReadBuffer had
texture attachments, we were treating that as a render-to-texture case.

This fixes a regression from commit 75bdbdd90b15c8704d87ca195a364ff6a42edbb1
"intel: Don't validate in a texture image used as a render target."

15 years agomesa: move check_begin/end_texture_render() calls
brian [Tue, 10 Nov 2009 23:00:35 +0000 (16:00 -0700)]
mesa: move check_begin/end_texture_render() calls

15 years agomesa: new vars: oldDrawFb, oldReadFb in _mesa_BindFramebufferEXT()
brian [Tue, 10 Nov 2009 22:50:22 +0000 (15:50 -0700)]
mesa: new vars: oldDrawFb, oldReadFb in _mesa_BindFramebufferEXT()

15 years agomesa: rename vars in _mesa_BindFramebufferEXT()
brian [Tue, 10 Nov 2009 22:47:34 +0000 (15:47 -0700)]
mesa: rename vars in _mesa_BindFramebufferEXT()

15 years agomesa: added comment for check_begin_texture_render()
brian [Tue, 10 Nov 2009 22:33:31 +0000 (15:33 -0700)]
mesa: added comment for check_begin_texture_render()

15 years agost/egl: Probe hardware for depth stencil format
Jakob Bornecrantz [Tue, 10 Nov 2009 06:00:21 +0000 (07:00 +0100)]
st/egl: Probe hardware for depth stencil format

15 years agost/xorg: cleanup the naming
Zack Rusin [Tue, 10 Nov 2009 18:51:49 +0000 (13:51 -0500)]
st/xorg: cleanup the naming

15 years agost/xorg: print ouf the picture formats when compositing
Zack Rusin [Tue, 10 Nov 2009 18:46:16 +0000 (13:46 -0500)]
st/xorg: print ouf the picture formats when compositing

15 years agoMerge remote branch 'origin/mesa_7_6_branch'
Eric Anholt [Wed, 11 Nov 2009 00:01:28 +0000 (16:01 -0800)]
Merge remote branch 'origin/mesa_7_6_branch'

15 years agoi965: avoid memsetting all the BRW_WM_MAX_INSN arrays for every compile.
Eric Anholt [Tue, 10 Nov 2009 23:51:29 +0000 (15:51 -0800)]
i965: avoid memsetting all the BRW_WM_MAX_INSN arrays for every compile.

For an app that's blowing out the state cache, like sauerbraten, the
memset of the giant arrays ended up taking 11% of the CPU even when only a
"few" of the entries got used.  With this, the WM program compile drops back
down to 1% of CPU time.

Bug #24981 (bisected to BRW_WM_MAX_INSN increase).

15 years agoi965: Add a note explaining the data cache domain.
Eric Anholt [Tue, 10 Nov 2009 21:57:29 +0000 (13:57 -0800)]
i965: Add a note explaining the data cache domain.

15 years agoi965: Fix VS constant buffer value loading.
Eric Anholt [Tue, 10 Nov 2009 22:11:46 +0000 (14:11 -0800)]
i965: Fix VS constant buffer value loading.

Previously, we'd load linearly from ParameterValues[0] for the constants,
though ParameterValues[1] may not equal ParameterValues[0] + 4.  Additionally,
the STATE_VAL type paramters didn't get updated.

Fixes piglit vp-constant-array-huge.vpfp and ET:QW object locations.

Bug #23226.

15 years agoi965: Unalias src/dst registers for SGE and friends.
Eric Anholt [Tue, 10 Nov 2009 18:54:15 +0000 (10:54 -0800)]
i965: Unalias src/dst registers for SGE and friends.

Fixes piglit vp-sge-alias test, and the googleearth ground shader.  \o/

Bug #22228
(cherry picked from commit 56ab92bad8f1d05bc22b8a8471d5aeb663f220de)

15 years agoi965: Allow use of PROGRAM_LOCAL constants in ARB_vp.
Eric Anholt [Tue, 10 Nov 2009 18:43:19 +0000 (10:43 -0800)]
i965: Allow use of PROGRAM_LOCAL constants in ARB_vp.

Fixes piglit arl.vp.
(cherry picked from commit d52d78b4bcd6d4c0578f972c0b8ebac09e632196)

15 years agoi915g: Fix memory leak when pci id is unknown.
Vinson Lee [Fri, 6 Nov 2009 20:00:14 +0000 (12:00 -0800)]
i915g: Fix memory leak when pci id is unknown.

15 years agoi965: Unalias src/dst registers for SGE and friends.
Eric Anholt [Tue, 10 Nov 2009 18:54:15 +0000 (10:54 -0800)]
i965: Unalias src/dst registers for SGE and friends.

Fixes piglit vp-sge-alias test, and the googleearth ground shader.  \o/

Bug #22228

15 years agoi965: Allow use of PROGRAM_LOCAL constants in ARB_vp.
Eric Anholt [Tue, 10 Nov 2009 18:43:19 +0000 (10:43 -0800)]
i965: Allow use of PROGRAM_LOCAL constants in ARB_vp.

Fixes piglit arl.vp.

15 years agoslang: Fix return value check.
Michal Krol [Tue, 10 Nov 2009 18:25:17 +0000 (19:25 +0100)]
slang: Fix return value check.

15 years agost/xorg: Fix SCons build.
Michel Dänzer [Tue, 10 Nov 2009 18:09:56 +0000 (10:09 -0800)]
st/xorg: Fix SCons build.

Check for new DPMS header and add xorg_renderer.c source file.

15 years agoslang: Check OOM conditions for alloc_node_storage().
Michal Krol [Tue, 10 Nov 2009 17:27:20 +0000 (18:27 +0100)]
slang: Check OOM conditions for alloc_node_storage().

15 years agollvmpipe: Fix derived blend color state.
José Fonseca [Tue, 10 Nov 2009 13:22:15 +0000 (05:22 -0800)]
llvmpipe: Fix derived blend color state.

15 years agoslang: Check return value from new_instruction().
Michal Krol [Tue, 10 Nov 2009 03:03:55 +0000 (04:03 +0100)]
slang: Check return value from new_instruction().

15 years agoslang: Fix signed/unsigned int handling in _slang_free_temp().
Michal Krol [Tue, 10 Nov 2009 02:25:06 +0000 (03:25 +0100)]
slang: Fix signed/unsigned int handling in _slang_free_temp().

15 years agotgsi/exec: Exit early on error.
Michal Krol [Tue, 10 Nov 2009 02:12:02 +0000 (03:12 +0100)]
tgsi/exec: Exit early on error.

15 years agotgsi/ureg: Simplify logic in tokens_expand().
Michal Krol [Tue, 10 Nov 2009 02:08:21 +0000 (03:08 +0100)]
tgsi/ureg: Simplify logic in tokens_expand().

15 years agoslang: Handle OOM condition in new_instruction().
Michal Krol [Tue, 10 Nov 2009 01:46:24 +0000 (02:46 +0100)]
slang: Handle OOM condition in new_instruction().

15 years agost/xorg: remove deprecated rendering code
Zack Rusin [Mon, 9 Nov 2009 23:03:18 +0000 (18:03 -0500)]
st/xorg: remove deprecated rendering code

15 years agost/xorg: fix composite batching
Zack Rusin [Mon, 9 Nov 2009 23:01:55 +0000 (18:01 -0500)]
st/xorg: fix composite batching

quite a large performance optimization (text demo from 1.6fps to 9fps)

15 years agor600/r700: typo, fix mask of DB_ALPHA_TO_MASK
Jerome Glisse [Mon, 9 Nov 2009 21:37:41 +0000 (22:37 +0100)]
r600/r700: typo, fix mask of DB_ALPHA_TO_MASK

15 years agor600: don't emit htile regs
Alex Deucher [Mon, 9 Nov 2009 16:36:10 +0000 (11:36 -0500)]
r600: don't emit htile regs

These are needed for HiZ which is not currently used and
the _BASE reg requires a reloc which is not currently supported
in the drm.

15 years agor600: rework DB render setup
Alex Deucher [Mon, 9 Nov 2009 17:20:47 +0000 (12:20 -0500)]
r600: rework DB render setup

- consolidate DB render setup
- only enable perfect ZPASS counts and cull disable
when OQ is active
- enable early Z

15 years agor600: don't emit htile regs
Alex Deucher [Mon, 9 Nov 2009 16:36:10 +0000 (11:36 -0500)]
r600: don't emit htile regs

These are needed for HiZ which is not currently used and
the _BASE reg requires a reloc which is not currently supported
in the drm.

15 years agor600: add missing ZPASS setup bits for r7xx+
Alex Deucher [Mon, 9 Nov 2009 16:34:13 +0000 (11:34 -0500)]
r600: add missing ZPASS setup bits for r7xx+

15 years agollvmpipe: Ensure stack variables in unit tests are properly aligned.
José Fonseca [Mon, 9 Nov 2009 14:59:03 +0000 (06:59 -0800)]
llvmpipe: Ensure stack variables in unit tests are properly aligned.

15 years agonv50: clarify data for method 0x121c
Christoph Bumiller [Mon, 9 Nov 2009 13:29:00 +0000 (14:29 +0100)]
nv50: clarify data for method 0x121c

15 years agor300g: Fix up SW TCL rendering functions.
Corbin Simpson [Sun, 8 Nov 2009 22:51:52 +0000 (14:51 -0800)]
r300g: Fix up SW TCL rendering functions.

They don't work, but at least they're clean now.

15 years agor300g: Protect against possibly missing Draw pointer.
Corbin Simpson [Sun, 8 Nov 2009 22:07:01 +0000 (14:07 -0800)]
r300g: Protect against possibly missing Draw pointer.

Part of the SW TCL revival.

15 years agor300g: Unify context names for counts.
Corbin Simpson [Sun, 8 Nov 2009 19:45:57 +0000 (11:45 -0800)]
r300g: Unify context names for counts.

From the SW TCL fixups.

15 years agor300g: Enable PSC/RS dump with new debugging flags.
Corbin Simpson [Sun, 8 Nov 2009 19:32:32 +0000 (11:32 -0800)]
r300g: Enable PSC/RS dump with new debugging flags.

15 years agor300g: Fix is_buffer_referenced.
Corbin Simpson [Sun, 8 Nov 2009 17:56:02 +0000 (09:56 -0800)]
r300g: Fix is_buffer_referenced.

15 years agor300g: Fix build error on old compilers.
Corbin Simpson [Sun, 8 Nov 2009 17:35:07 +0000 (09:35 -0800)]
r300g: Fix build error on old compilers.

This dead code was still getting compiled, causing a bad ref in the lib.

15 years agoprog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNV
Ian Romanick [Mon, 2 Nov 2009 22:10:38 +0000 (14:10 -0800)]
prog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNV

15 years agoprog parse: Handle GL_VERTEX_PROGRAM_NV in glProgramStringARB
Ian Romanick [Mon, 2 Nov 2009 22:08:51 +0000 (14:08 -0800)]
prog parse: Handle GL_VERTEX_PROGRAM_NV in glProgramStringARB

Handle both NV vertex programs and NV vertex state programs passed to
glProgramStringARB.

15 years agoprog parse: Handle GL_FRAGMENT_PROGRAM_ARB in glLoadProgramNV
Ian Romanick [Mon, 2 Nov 2009 21:38:15 +0000 (13:38 -0800)]
prog parse: Handle GL_FRAGMENT_PROGRAM_ARB in glLoadProgramNV

15 years agoprog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARB
Ian Romanick [Mon, 2 Nov 2009 21:37:47 +0000 (13:37 -0800)]
prog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARB

15 years agor300g: Organize inlined state.
Corbin Simpson [Sat, 7 Nov 2009 22:32:31 +0000 (14:32 -0800)]
r300g: Organize inlined state.

15 years agor300g: DCE.
Corbin Simpson [Sat, 7 Nov 2009 22:14:19 +0000 (14:14 -0800)]
r300g: DCE.

This must never have been called before; it's completely wrong.

15 years agor300g: Minor code cleanup to avoid confusion.
Corbin Simpson [Sat, 7 Nov 2009 21:37:07 +0000 (13:37 -0800)]
r300g: Minor code cleanup to avoid confusion.

15 years agor300g: Remove do-nothing functions.
Corbin Simpson [Sat, 7 Nov 2009 21:12:15 +0000 (13:12 -0800)]
r300g: Remove do-nothing functions.

15 years agor300g: Remove faulty assert.
Corbin Simpson [Sat, 7 Nov 2009 21:07:52 +0000 (13:07 -0800)]
r300g: Remove faulty assert.

15 years agoMerge branch 'r300g-vbo'
Corbin Simpson [Sat, 7 Nov 2009 20:01:48 +0000 (12:01 -0800)]
Merge branch 'r300g-vbo'

This is an experimental HW TCL fastpath for r300g. It should run alright.

Thanks to osiris for making this possible.

15 years agor300g: Be more verbose in what's killing us WRT vert formats.
Corbin Simpson [Sat, 7 Nov 2009 19:49:39 +0000 (11:49 -0800)]
r300g: Be more verbose in what's killing us WRT vert formats.

15 years agor300g: Comments.
Corbin Simpson [Sat, 7 Nov 2009 18:52:06 +0000 (10:52 -0800)]
r300g: Comments.

15 years agor300g: Don't assert on oversized VBOs, just return FALSE.
Corbin Simpson [Sat, 7 Nov 2009 18:39:42 +0000 (10:39 -0800)]
r300g: Don't assert on oversized VBOs, just return FALSE.

15 years agor300g: Moar vbo cleanup.
Corbin Simpson [Sat, 7 Nov 2009 18:34:00 +0000 (10:34 -0800)]
r300g: Moar vbo cleanup.

15 years agor300g: s/false/FALSE/
Corbin Simpson [Sat, 7 Nov 2009 18:26:57 +0000 (10:26 -0800)]
r300g: s/false/FALSE/

Also s/true/TRUE/

15 years agor300g: Clean up indexbuf render, switch to RELOC macro.
Corbin Simpson [Sat, 7 Nov 2009 18:14:07 +0000 (10:14 -0800)]
r300g: Clean up indexbuf render, switch to RELOC macro.

15 years agor300g: Clean up r300_setup_vertex_buffers.
Corbin Simpson [Sat, 7 Nov 2009 18:05:31 +0000 (10:05 -0800)]
r300g: Clean up r300_setup_vertex_buffers.

15 years agor300g: Don't pass hw_prim around in the context.
Corbin Simpson [Sat, 7 Nov 2009 17:47:01 +0000 (09:47 -0800)]
r300g: Don't pass hw_prim around in the context.

And some other fixes.

15 years agor300g: Use common state funcs for translating vert formats.
Corbin Simpson [Sat, 7 Nov 2009 04:21:38 +0000 (20:21 -0800)]
r300g: Use common state funcs for translating vert formats.

15 years agor300g: don't hang GPU on misbehaving apps
Maciej Cencora [Sun, 25 Oct 2009 12:51:45 +0000 (13:51 +0100)]
r300g: don't hang GPU on misbehaving apps

15 years agor300g: VBOs WIP
Maciej Cencora [Sun, 25 Oct 2009 12:53:25 +0000 (13:53 +0100)]
r300g: VBOs WIP

15 years agor300g: add missing flush
Maciej Cencora [Sun, 1 Nov 2009 16:04:32 +0000 (17:04 +0100)]
r300g: add missing flush

15 years agor300g: enable CS dumping
Maciej Cencora [Sun, 25 Oct 2009 11:08:02 +0000 (12:08 +0100)]
r300g: enable CS dumping

15 years agor300g: move vborender context function to seperate file
Maciej Cencora [Sun, 25 Oct 2009 12:22:22 +0000 (13:22 +0100)]
r300g: move vborender context function to seperate file

r300g: Un-migrate r300_draw_render.

It'll make maintaining the SW TCL path easier.

15 years agoi915g: Fix comment in is buffer referenced
Jakob Bornecrantz [Sat, 7 Nov 2009 19:31:18 +0000 (19:31 +0000)]
i915g: Fix comment in is buffer referenced

15 years agomesa: move code after decl
brian [Sat, 7 Nov 2009 15:18:03 +0000 (08:18 -0700)]
mesa: move code after decl

Fixes bug 24967.

15 years agonv50: enable all 32 threads of a warp
Christoph Bumiller [Sat, 7 Nov 2009 09:46:47 +0000 (10:46 +0100)]
nv50: enable all 32 threads of a warp

This should be the default setting.
See also 7d967b9b7c08aea2a471c5bf6aced8bfafdae874.

15 years agoi965: Use Compr4 instruction compression mode on G4X and newer.
Eric Anholt [Sat, 7 Nov 2009 01:45:13 +0000 (17:45 -0800)]
i965: Use Compr4 instruction compression mode on G4X and newer.

No statistically significant performance difference at n=3 with either
openarena or my GL demo, but cutting program size seems like a good
thing to be doing for the hypothetical app that has a working set near
icache size.

15 years agoi965: Share min/max between brw_wm_emit.c and brw_wm_glsl.c
Eric Anholt [Wed, 19 Aug 2009 18:57:32 +0000 (11:57 -0700)]
i965: Share min/max between brw_wm_emit.c and brw_wm_glsl.c

15 years agoi965: Share emit_fb_write() between brw_wm_emit.c and brw_wm_glsl.c
Eric Anholt [Wed, 19 Aug 2009 18:48:09 +0000 (11:48 -0700)]
i965: Share emit_fb_write() between brw_wm_emit.c and brw_wm_glsl.c

This should fix issues with antialiased lines in GLSL.

15 years agoi965: Share most of the WM functions between brw_wm_glsl.c and brw_wm_emit.c
Eric Anholt [Wed, 12 Aug 2009 17:19:31 +0000 (10:19 -0700)]
i965: Share most of the WM functions between brw_wm_glsl.c and brw_wm_emit.c

The PINTERP code should be faster for brw_wm_glsl.c now since brw_wm_emit.c's
had been improved, and pixel_w should no longer stomp on a neighbor to dst.

15 years agoi965: Share math functions between brw_wm_glsl.c and brw_wm_emit.c.
Eric Anholt [Wed, 12 Aug 2009 16:52:44 +0000 (09:52 -0700)]
i965: Share math functions between brw_wm_glsl.c and brw_wm_emit.c.

15 years agoi965: Share the sop opcodes between brw_wm_glsl.c and brw_wm_emit.c.
Eric Anholt [Wed, 12 Aug 2009 04:17:14 +0000 (21:17 -0700)]
i965: Share the sop opcodes between brw_wm_glsl.c and brw_wm_emit.c.

15 years agoi965: Share OPCODE_MAD between brw_wm_glsl.c and brw_wm_emit.c
Eric Anholt [Wed, 12 Aug 2009 02:17:31 +0000 (19:17 -0700)]
i965: Share OPCODE_MAD between brw_wm_glsl.c and brw_wm_emit.c

15 years agoi965: Share the DP3, DP4, and DPH between brw_wm_glsl.c and brw_wm_emit.c
Eric Anholt [Wed, 12 Aug 2009 02:13:52 +0000 (19:13 -0700)]
i965: Share the DP3, DP4, and DPH between brw_wm_glsl.c and brw_wm_emit.c

15 years agoi965: Add generic GLSL code for unaliasing a 3-arg opcode, and share LRP code.
Eric Anholt [Wed, 12 Aug 2009 00:52:44 +0000 (17:52 -0700)]
i965: Add generic GLSL code for unaliasing a 3-arg opcode, and share LRP code.

15 years agoi965: Use a normal alu1 emit for OPCODE_TRUNC.
Eric Anholt [Tue, 11 Aug 2009 23:47:15 +0000 (16:47 -0700)]
i965: Use a normal alu1 emit for OPCODE_TRUNC.

15 years agoi965: Share basic ALU ops between brw_wm_glsl and brw_wm_emit.c
Eric Anholt [Tue, 11 Aug 2009 23:31:19 +0000 (16:31 -0700)]
i965: Share basic ALU ops between brw_wm_glsl and brw_wm_emit.c

This drops support for get_src_reg_imm in these, but the prospect of getting
brw_wm_pass*.c onto our GLSL path is well worth some temporary pain.

15 years agoi965: Collect GLSL src/dst regs up in generic code.
Eric Anholt [Wed, 12 Aug 2009 19:56:35 +0000 (12:56 -0700)]
i965: Collect GLSL src/dst regs up in generic code.

This matches brw_wm_emit.c, which we'll be using shortly.  There's a
possible penalty here in that we'll allocate registers for unused channels,
since we aren't doing ref tracking like brw_wm_pass*.c does.  However, my
measurements on GM965 don't show any for either OA or UT2004 with the GLSL
path forced.

15 years agost/xorg: implement batching for the composite op
Zack Rusin [Fri, 6 Nov 2009 13:31:16 +0000 (08:31 -0500)]
st/xorg: implement batching for the composite op

something is broken so disabled for now

15 years agost/xorg: batch solid fill requests
Zack Rusin [Fri, 6 Nov 2009 12:36:47 +0000 (07:36 -0500)]
st/xorg: batch solid fill requests

instead of lots of very small transfers, one larger is a lot better
for performance

15 years agost/xorg: start accumulating vertices in a common buffer
Zack Rusin [Fri, 6 Nov 2009 10:30:53 +0000 (05:30 -0500)]
st/xorg: start accumulating vertices in a common buffer

15 years agost/xorg: use quads instead of triangle fans
Zack Rusin [Fri, 6 Nov 2009 09:23:33 +0000 (04:23 -0500)]
st/xorg: use quads instead of triangle fans

easier to split, accumulate and batch those

15 years agost/xorg: make the buffer size global
Zack Rusin [Fri, 6 Nov 2009 05:37:37 +0000 (00:37 -0500)]
st/xorg: make the buffer size global

15 years agoGLX: Change GLX client vendor string to "Mesa Project and SGI"
Ian Romanick [Fri, 6 Nov 2009 22:52:49 +0000 (14:52 -0800)]
GLX: Change GLX client vendor string to "Mesa Project and SGI"

This change allows a certain closed-source browser plug-in to work
with open-source drivers.

15 years agomesa: Reduce the source channels considered in optimization passes.
Eric Anholt [Fri, 6 Nov 2009 22:06:08 +0000 (14:06 -0800)]
mesa: Reduce the source channels considered in optimization passes.

Depending on the writemask or the opcode, we can often trim the source
channels considered used for dead code elimination.  This saves actual
instructions on 965 in the non-GLSL path for glean glsl1, and cleans up
the writemasks of programs even further.

15 years agomesa: Fix remove_instructions to successfully remove when removeFlags[0].
Eric Anholt [Fri, 6 Nov 2009 21:04:54 +0000 (13:04 -0800)]
mesa: Fix remove_instructions to successfully remove when removeFlags[0].

This fixes the dead code elimination to work on the particular code
mentioned in the previous commit.

15 years agomesa: Add an optimization path to remove use of pointless MOVs.
Eric Anholt [Sat, 16 May 2009 08:47:44 +0000 (01:47 -0700)]
mesa: Add an optimization path to remove use of pointless MOVs.

GLSL code such as:
vec4 result = {0, 1, 0, 0};
gl_FragColor = result;

emits code like:
  0: MOV TEMP[0], CONST[0];
  1: MOV OUTPUT[1], TEMP[0];

and this replaces it with:
  0: MOV TEMP[0], CONST[0];
  1: MOV OUTPUT[1], CONST[0];

Even when the dead code eliminator fails to clean up a now-useless MOV
instruction (since it doesn't do live/dead ranges), this should at reduce
dependencies.

15 years agomesa: Fix up the remove_dead_code pass to operate on a channel basis.
Eric Anholt [Fri, 12 Jun 2009 19:37:25 +0000 (12:37 -0700)]
mesa: Fix up the remove_dead_code pass to operate on a channel basis.

This cleans up a bunch of instructions in GLSL programs to have limited
writemasks, which would translate to wins in shaders that hit the i965
brw_wm_glsl.c path by depending less on in-driver optimizations.  It will
also help hit other optimization passes I'm looking at.