Commit graph

26036 commits

Author SHA1 Message Date
Zack Rusin
4322346f3f st/xorg: batch solid fill requests
instead of lots of very small transfers, one larger is a lot better
for performance
2009-11-06 22:08:21 -05:00
Zack Rusin
e1730632aa st/xorg: start accumulating vertices in a common buffer 2009-11-06 22:08:21 -05:00
Zack Rusin
3f7df23ff5 st/xorg: use quads instead of triangle fans
easier to split, accumulate and batch those
2009-11-06 22:08:21 -05:00
Zack Rusin
6c44d399bd st/xorg: make the buffer size global 2009-11-06 22:08:21 -05:00
Ian Romanick
26d2ce0a09 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.
2009-11-06 14:52:49 -08:00
Eric Anholt
6b0bcfafab 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.
2009-11-06 14:27:35 -08:00
Chia-I Wu
1046f70a7d gallium: Allow state trackers to install files.
State trackers like es or vega need to install their libraries.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-11-06 14:19:24 -07:00
Chia-I Wu
7fb41df2cb mesa/main: linear_to_nonlinear is not always available.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-11-06 14:19:24 -07:00
Chia-I Wu
37dca7955a mesa/es: Improve support for parallel execution of make.
Running make with -j for the first time might fail because glapi headers
haven't been generated.  This commit should make it more reliable.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-11-06 14:19:23 -07:00
Chia-I Wu
f1c7874cd9 mesa/es: Fix symbol conflicts and warnings.
drawtex.c was listed in LOCAL_ES1_SOURCES twice.  My mistake when
merging the patches.

Also, run gl_apitemp.py with -c to silence warnings and add target
"install".

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-11-06 14:19:23 -07:00
Chia-I Wu
1af44e9e5a glapi: Add OpenGL ES compatibility mode to scripts.
When the mode is on, the scripts would generate headers that are
suitable for OpenGL ES.  There are two differences.  One is that they
will generate function prototypes for OpenGL ES specific functions.  The
other is that, when a function has multiple names, SET/GET/CALL macros
would be generated for each of names.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-11-06 14:19:23 -07:00
Eric Anholt
f3cacfe216 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.
2009-11-06 13:16:49 -08:00
Eric Anholt
e4e312d493 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.
2009-11-06 13:16:49 -08:00
Eric Anholt
ee0a9e6e10 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.
2009-11-06 13:16:49 -08:00
Brian Paul
3105f3aa88 intel: better front color buffer test in intelClear() 2009-11-06 13:52:48 -07:00
Jakob Bornecrantz
1f94c06d3f i965g: Fixup buffer creation function
First tri!
2009-11-06 20:45:40 +00:00
Jakob Bornecrantz
9708ce874e i965g: Add texture transfer functions
They don't seem to work. Maybe we are forgetting to flush the gpu or something.
2009-11-06 20:45:08 +00:00
Eric Anholt
8395da2e8a 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.
2009-11-06 11:37:32 -08:00
Eric Anholt
1166294d1d intel: Finish removing the fallback code for bug #16697.
I fixed it properly as of 7216679c19.
2009-11-06 11:37:32 -08:00
Eric Anholt
75bdbdd90b 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.
2009-11-06 11:37:32 -08:00
Eric Anholt
6b68482e68 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.
2009-11-06 11:37:32 -08:00
Eric Anholt
8df81bca17 intel: Clean up some extra struct indirection in finalize. 2009-11-06 11:37:32 -08:00
Eric Anholt
ee7dfbbd6c intel: Use _mesa_get_current_tex_object() to clean up TFP path. 2009-11-06 11:37:31 -08:00
Eric Anholt
8f30ceaaef intel: Remove duplicated arguments from intel_miptree_match_image(). 2009-11-06 11:37:31 -08:00
Eric Anholt
2bc8bcdcd3 i965: Remove an XXX comment for testing some code that seems to work. 2009-11-06 11:37:31 -08:00
Eric Anholt
bb2dd50be0 intel: Remove obsolete comment about GEM in the spans code. 2009-11-06 11:37:31 -08:00
Eric Anholt
8e0f40d287 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.
2009-11-06 11:37:31 -08:00
Eric Anholt
caf3038123 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.
2009-11-06 11:37:31 -08:00
Ian Romanick
4e4c2ee1fd 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
2009-11-06 11:17:00 -08:00
Jakob Bornecrantz
dc97a5d782 i965g: Match pitch modification on get buffer as well
This is a ugly hack in order to match what the intel
X driver gives us. However putting this in the winsys
where it fits better forces it reach more into the
driver then it already does.
2009-11-06 19:05:41 +00:00
Ian Romanick
9348ac03ce ARB prog parser: Regenerate parser from previous commits. 2009-11-06 10:46:23 -08:00
Ian Romanick
d8e256f923 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.
2009-11-06 10:46:22 -08:00
Ian Romanick
301a9b7e28 ARB prog parser: Release strings returned from the lexer that don't need to be kept 2009-11-06 10:46:22 -08:00
Ian Romanick
1c7337d46e Revert "ARB prog parser: Fix epic memory leak in lexer / parser interface"
This reverts commit 93dae6761b.

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.
2009-11-06 10:46:22 -08:00
Jakob Bornecrantz
833f5bbfaf i965g: First clear! 2009-11-06 18:34:23 +00:00
Keith Whitwell
4fbe6c4e4e i965g: get rid of cc key, simplify state upload
Keep a valid reloc table active between uploads, avoid
recalculating it every time.
2009-11-06 17:26:52 +00:00
Jakob Bornecrantz
0532cc0c86 i965g: trivial/clear can now send stuff to hardware
Added a flag if we should send commands to hardware
as what we send isn't all that correct.
2009-11-06 17:03:01 +00:00
Jakob Bornecrantz
2eb6b0defe i965g: Fix texture blanket function 2009-11-06 16:40:54 +00:00
Jakob Bornecrantz
215b49ae1e i965g: Add functions needed by the winsys 2009-11-06 15:55:06 +00:00
Jakob Bornecrantz
6949d5c777 i965g: Winsys whitespace 2009-11-06 15:55:06 +00:00
Jakob Bornecrantz
68b5a501c5 i965g: Build winsys again 2009-11-06 15:55:06 +00:00
Jakob Bornecrantz
12ea198fd2 i965g: Header whitespace 2009-11-06 15:55:06 +00:00
Keith Whitwell
86c32df3e0 i965g: get brw_state_debug.c building 2009-11-06 15:40:16 +00:00
José Fonseca
96e938f62c llvmpipe: Fix build with llvm 2.6.
Fixes bug 24949.
2009-11-06 15:08:05 +00:00
Brian Paul
38d3c156dc intel: call intel_check_front_buffer_rendering() in intelClear()
fixes bug 24953.
2009-11-06 08:00:38 -07:00
Keith Whitwell
4d1ae7a546 i965g: propogate index size state 2009-11-06 14:18:28 +00:00
Keith Whitwell
11805726d3 i965g: remove references to brw_surface_bo() 2009-11-06 13:41:52 +00:00
Keith Whitwell
eacd13bcc8 i965g: plumb through fb_write target and eot data 2009-11-06 13:28:04 +00:00
Keith Whitwell
3e14a482da i965g: propogate nr_cbufs into wm prog key 2009-11-06 12:51:26 +00:00
José Fonseca
577a598dc9 mesa: Export S3_s3tc as well.
Used in Quake3.
2009-11-06 12:06:45 +00:00