Zack Rusin [Tue, 10 Nov 2009 18:46:16 +0000 (13:46 -0500)]
st/xorg: print ouf the picture formats when compositing
Eric Anholt [Wed, 11 Nov 2009 00:01:28 +0000 (16:01 -0800)]
Merge remote branch 'origin/mesa_7_6_branch'
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).
Eric Anholt [Tue, 10 Nov 2009 21:57:29 +0000 (13:57 -0800)]
i965: Add a note explaining the data cache domain.
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.
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)
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)
Vinson Lee [Fri, 6 Nov 2009 20:00:14 +0000 (12:00 -0800)]
i915g: Fix memory leak when pci id is unknown.
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
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.
Michal Krol [Tue, 10 Nov 2009 18:25:17 +0000 (19:25 +0100)]
slang: Fix return value check.
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.
Michal Krol [Tue, 10 Nov 2009 17:27:20 +0000 (18:27 +0100)]
slang: Check OOM conditions for alloc_node_storage().
José Fonseca [Tue, 10 Nov 2009 13:22:15 +0000 (05:22 -0800)]
llvmpipe: Fix derived blend color state.
Michal Krol [Tue, 10 Nov 2009 03:03:55 +0000 (04:03 +0100)]
slang: Check return value from new_instruction().
Michal Krol [Tue, 10 Nov 2009 02:25:06 +0000 (03:25 +0100)]
slang: Fix signed/unsigned int handling in _slang_free_temp().
Michal Krol [Tue, 10 Nov 2009 02:12:02 +0000 (03:12 +0100)]
tgsi/exec: Exit early on error.
Michal Krol [Tue, 10 Nov 2009 02:08:21 +0000 (03:08 +0100)]
tgsi/ureg: Simplify logic in tokens_expand().
Michal Krol [Tue, 10 Nov 2009 01:46:24 +0000 (02:46 +0100)]
slang: Handle OOM condition in new_instruction().
Zack Rusin [Mon, 9 Nov 2009 23:03:18 +0000 (18:03 -0500)]
st/xorg: remove deprecated rendering code
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)
Jerome Glisse [Mon, 9 Nov 2009 21:37:41 +0000 (22:37 +0100)]
r600/r700: typo, fix mask of DB_ALPHA_TO_MASK
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.
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
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.
Alex Deucher [Mon, 9 Nov 2009 16:34:13 +0000 (11:34 -0500)]
r600: add missing ZPASS setup bits for r7xx+
José Fonseca [Mon, 9 Nov 2009 14:59:03 +0000 (06:59 -0800)]
llvmpipe: Ensure stack variables in unit tests are properly aligned.
Christoph Bumiller [Mon, 9 Nov 2009 13:29:00 +0000 (14:29 +0100)]
nv50: clarify data for method 0x121c
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.
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.
Corbin Simpson [Sun, 8 Nov 2009 19:45:57 +0000 (11:45 -0800)]
r300g: Unify context names for counts.
From the SW TCL fixups.
Corbin Simpson [Sun, 8 Nov 2009 19:32:32 +0000 (11:32 -0800)]
r300g: Enable PSC/RS dump with new debugging flags.
Corbin Simpson [Sun, 8 Nov 2009 17:56:02 +0000 (09:56 -0800)]
r300g: Fix is_buffer_referenced.
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.
Ian Romanick [Mon, 2 Nov 2009 22:10:38 +0000 (14:10 -0800)]
prog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNV
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.
Ian Romanick [Mon, 2 Nov 2009 21:38:15 +0000 (13:38 -0800)]
prog parse: Handle GL_FRAGMENT_PROGRAM_ARB in glLoadProgramNV
Ian Romanick [Mon, 2 Nov 2009 21:37:47 +0000 (13:37 -0800)]
prog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARB
Corbin Simpson [Sat, 7 Nov 2009 22:32:31 +0000 (14:32 -0800)]
r300g: Organize inlined state.
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.
Corbin Simpson [Sat, 7 Nov 2009 21:37:07 +0000 (13:37 -0800)]
r300g: Minor code cleanup to avoid confusion.
Corbin Simpson [Sat, 7 Nov 2009 21:12:15 +0000 (13:12 -0800)]
r300g: Remove do-nothing functions.
Corbin Simpson [Sat, 7 Nov 2009 21:07:52 +0000 (13:07 -0800)]
r300g: Remove faulty assert.
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.
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.
Corbin Simpson [Sat, 7 Nov 2009 18:52:06 +0000 (10:52 -0800)]
r300g: Comments.
Corbin Simpson [Sat, 7 Nov 2009 18:39:42 +0000 (10:39 -0800)]
r300g: Don't assert on oversized VBOs, just return FALSE.
Corbin Simpson [Sat, 7 Nov 2009 18:34:00 +0000 (10:34 -0800)]
r300g: Moar vbo cleanup.
Corbin Simpson [Sat, 7 Nov 2009 18:26:57 +0000 (10:26 -0800)]
r300g: s/false/FALSE/
Also s/true/TRUE/
Corbin Simpson [Sat, 7 Nov 2009 18:14:07 +0000 (10:14 -0800)]
r300g: Clean up indexbuf render, switch to RELOC macro.
Corbin Simpson [Sat, 7 Nov 2009 18:05:31 +0000 (10:05 -0800)]
r300g: Clean up r300_setup_vertex_buffers.
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.
Corbin Simpson [Sat, 7 Nov 2009 04:21:38 +0000 (20:21 -0800)]
r300g: Use common state funcs for translating vert formats.
Maciej Cencora [Sun, 25 Oct 2009 12:51:45 +0000 (13:51 +0100)]
r300g: don't hang GPU on misbehaving apps
Maciej Cencora [Sun, 25 Oct 2009 12:53:25 +0000 (13:53 +0100)]
r300g: VBOs WIP
Maciej Cencora [Sun, 1 Nov 2009 16:04:32 +0000 (17:04 +0100)]
r300g: add missing flush
Maciej Cencora [Sun, 25 Oct 2009 11:08:02 +0000 (12:08 +0100)]
r300g: enable CS dumping
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.
Jakob Bornecrantz [Sat, 7 Nov 2009 19:31:18 +0000 (19:31 +0000)]
i915g: Fix comment in is buffer referenced
brian [Sat, 7 Nov 2009 15:18:03 +0000 (08:18 -0700)]
mesa: move code after decl
Fixes bug 24967.
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.
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.
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
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.
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.
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.
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.
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
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
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.
Eric Anholt [Tue, 11 Aug 2009 23:47:15 +0000 (16:47 -0700)]
i965: Use a normal alu1 emit for OPCODE_TRUNC.
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.
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.
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
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
Zack Rusin [Fri, 6 Nov 2009 10:30:53 +0000 (05:30 -0500)]
st/xorg: start accumulating vertices in a common buffer
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
Zack Rusin [Fri, 6 Nov 2009 05:37:37 +0000 (00:37 -0500)]
st/xorg: make the buffer size global
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.
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.
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.
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.
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.
Brian Paul [Fri, 6 Nov 2009 20:52:48 +0000 (13:52 -0700)]
intel: better front color buffer test in intelClear()
Eric Anholt [Thu, 5 Nov 2009 18:25:34 +0000 (10:25 -0800)]
i965: Always pass the size argument to brw_cache_data.
This keeps the individual state files from having to export their
structures for brw_state_cache initialization.
Eric Anholt [Thu, 5 Nov 2009 01:31:01 +0000 (17:31 -0800)]
intel: Finish removing the fallback code for bug #16697.
I fixed it properly as of
7216679c1998b49ff5b08e6b43f8d5779415bf54.
Eric Anholt [Wed, 4 Nov 2009 22:54:09 +0000 (14:54 -0800)]
intel: Don't validate in a texture image used as a render target.
Otherwise, we could lose track of rendering to that image, which could
easily happen during mipmap generation.
Eric Anholt [Wed, 4 Nov 2009 22:31:30 +0000 (14:31 -0800)]
mesa: Attempt to pair up Driver.RenderTexture and FinishRenderTexture()
This is probably not 100% complete (bind vs unbind may still not pair up
exactly), but it should help out drivers which are relying on
FinishRenderTexture to be called when we're done rendering to a particular
texture level, not just when we're done rendering to the object at all.
This is the case for the one consumer of FinishRenderTexture() so far: the
gallium state tracker. Noticed when trying to make use of FRT() in the intel
driver.
Eric Anholt [Wed, 4 Nov 2009 23:11:02 +0000 (15:11 -0800)]
intel: Clean up some extra struct indirection in finalize.
Eric Anholt [Thu, 5 Nov 2009 00:49:05 +0000 (16:49 -0800)]
intel: Use _mesa_get_current_tex_object() to clean up TFP path.
Eric Anholt [Wed, 4 Nov 2009 21:41:48 +0000 (13:41 -0800)]
intel: Remove duplicated arguments from intel_miptree_match_image().
Eric Anholt [Wed, 4 Nov 2009 01:40:13 +0000 (17:40 -0800)]
i965: Remove an XXX comment for testing some code that seems to work.
Eric Anholt [Wed, 4 Nov 2009 01:30:46 +0000 (17:30 -0800)]
intel: Remove obsolete comment about GEM in the spans code.
Eric Anholt [Wed, 4 Nov 2009 01:18:36 +0000 (17:18 -0800)]
intel: Use PIPE_CONTROL on gen4 hardware for doing pipeline flushing.
This should do all the things that MI_FLUSH did, but it can be pipelined
so that further rendering isn't blocked on the flush completion unless
necessary.
Eric Anholt [Mon, 26 Oct 2009 16:28:32 +0000 (09:28 -0700)]
Make a convenient int for what chipset generation we're on.
gen2/3/4 are easier to say than "8xx, 915-945/g33/pineview, 965/g45/misc",
and compares on generation are often easier than stringing together a bunch
of chipset checks.
Ian Romanick [Fri, 6 Nov 2009 19:17:00 +0000 (11:17 -0800)]
Merge branch 'mesa_7_6_branch'
This should fix the memory leaks in the assembly parser without the
regressions.
The conflicts in program_lexer.l were related to changes in returning
strings between the branches (always return IDENTIFIER vs. returing
either IDENTIFIER or USED_IDENTIFIER).
The conflicts in program_parse.y were related to two changes in master
One change prints a variable name in an error message. The other
change adds outputVarSize to the OUTPUT_statement rule. The cause the
position of the IDENTIFIER to change from $2 to $3.
Conflicts:
src/mesa/shader/lex.yy.c
src/mesa/shader/program_lexer.l
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.y
Ian Romanick [Thu, 5 Nov 2009 22:20:16 +0000 (14:20 -0800)]
ARB prog parser: Regenerate parser from previous commits.
Ian Romanick [Thu, 5 Nov 2009 22:17:07 +0000 (14:17 -0800)]
ARB prog parser: Release old program string in _mesa_parse_arb_{fragment,vertex}_program
The program structure passed to _mesa_parse_arb_program is just a
place holder. The stings that actually need to be released are only
known to the functions calling _mesa_parse_arb_program, so they should
be freed there.
Ian Romanick [Thu, 5 Nov 2009 22:15:56 +0000 (14:15 -0800)]
ARB prog parser: Release strings returned from the lexer that don't need to be kept
Ian Romanick [Wed, 4 Nov 2009 20:03:44 +0000 (12:03 -0800)]
Revert "ARB prog parser: Fix epic memory leak in lexer / parser interface"
This reverts commit
93dae6761bc90bbd43b450d2673620ec189b2c7a.
This change was completely broken when the parser uses multiple
strings in a single production. It would be nice if bug fixes could
initially land somewhere other than the stable branch.