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.
José Fonseca [Fri, 6 Nov 2009 15:08:05 +0000 (15:08 +0000)]
llvmpipe: Fix build with llvm 2.6.
Fixes bug 24949.
Brian Paul [Fri, 6 Nov 2009 14:59:18 +0000 (07:59 -0700)]
intel: call intel_check_front_buffer_rendering() in intelClear()
fixes bug 24953.
José Fonseca [Fri, 6 Nov 2009 12:05:43 +0000 (12:05 +0000)]
mesa: Export S3_s3tc as well.
Used in Quake3.
José Fonseca [Fri, 6 Nov 2009 12:04:49 +0000 (12:04 +0000)]
mesa: Translate MAP_UNSYNCHRONIZED_BIT.
José Fonseca [Fri, 6 Nov 2009 12:04:20 +0000 (12:04 +0000)]
gallium: Add UNSYNCHRONIZED cpu access flag. Document others.
Zack Rusin [Fri, 6 Nov 2009 05:17:43 +0000 (00:17 -0500)]
st/xorg: unify vertex buffer handling
first step on our way to batching
Brian Paul [Thu, 5 Nov 2009 23:48:50 +0000 (16:48 -0700)]
xmesa: pass pixmap to clip_for_xgetimage()
The code was assuming ctx->DrawBuffer == ctx->ReadBuffer.
Passing the pixmap is simpler and better.
Fixes a potential segfault.
Brian Paul [Thu, 5 Nov 2009 20:16:19 +0000 (13:16 -0700)]
mesa: fix infinite loop bug in _mesa_drawbuffers()
Fixes bug 24946.
This regression came from
8df699b3bb1aa05b633f05b121d09d812c86a22d.
José Fonseca [Thu, 5 Nov 2009 17:05:20 +0000 (17:05 +0000)]
softpipe: Implement PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE for destination.
It is a valid and tested combination on D3D9.
Cooper Yuan [Thu, 5 Nov 2009 08:06:01 +0000 (16:06 +0800)]
g3dvl: remove a debug line
Cooper Yuan [Thu, 5 Nov 2009 07:59:27 +0000 (15:59 +0800)]
g3dvl: add scissor setting
Marek Olšák [Wed, 4 Nov 2009 09:56:44 +0000 (10:56 +0100)]
r300g: add polygon mode
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Marek Olšák [Tue, 3 Nov 2009 15:58:39 +0000 (16:58 +0100)]
r300g: fix the size of CS when emitting the fragprog constant buffer
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Marek Olšák [Tue, 3 Nov 2009 15:50:09 +0000 (16:50 +0100)]
r300g: set the correct offset in a colorbuffer surface
Suggested by Joakim Sindholt.
Also, put flushing of colorbuffers _before_ the framebuffer state setup,
suggested by docs.
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Marek Olšák [Tue, 3 Nov 2009 15:48:48 +0000 (16:48 +0100)]
r300g: add color channel masking
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Brian Paul [Thu, 5 Nov 2009 00:58:43 +0000 (17:58 -0700)]
mesa: added cast to silence warning
Brian Paul [Thu, 5 Nov 2009 00:57:20 +0000 (17:57 -0700)]
Merge branch 'mesa_7_6_branch'
Conflicts:
src/mesa/drivers/windows/gdi/mesa.def
Brian Paul [Thu, 5 Nov 2009 00:51:21 +0000 (17:51 -0700)]
vbo: fix out-of-bounds array access
The exec->vtx.inputs[] array was being written past its end. This was
clobbering the following vbo_exec_context::eval state. Probably not noticed
since evaluators and immediate mode rendering don't happen at the same time.
Fixed the loop in vbo_exec_vtx_init().
Changed the size of the vbo_exec_context::vtx.arrays[] array.
Added a bunch of debug-build assertions.
Issue found by Vinson Lee.
Brian Paul [Thu, 5 Nov 2009 00:42:30 +0000 (17:42 -0700)]
mesa: fix broken pack_histogram() case for GLhalf
Brian Paul [Thu, 5 Nov 2009 00:42:01 +0000 (17:42 -0700)]
mesa: silence warning from gcc 4.4.1
Brian Paul [Thu, 5 Nov 2009 00:26:48 +0000 (17:26 -0700)]
ARB prog parser: include variable name in error text
Zack Rusin [Wed, 4 Nov 2009 23:08:44 +0000 (18:08 -0500)]
st/xorg: these flushes shouldn't be necessary
performance optimization
Vinson Lee [Wed, 4 Nov 2009 22:55:39 +0000 (15:55 -0700)]
progs/tests: Fix MSVC build.
Signed-off-by: Brian Paul <brianp@vmware.com>
Alex Deucher [Wed, 4 Nov 2009 21:59:13 +0000 (16:59 -0500)]
r600: rework draw functions
Seems INDX_OFFSET doesn't work properly on some cards,
so change back to immediate mode indices. Seems to only
affect DRI1. Needs more investigation.
Rework and clean up the draw functions.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Alex Deucher [Wed, 4 Nov 2009 19:43:24 +0000 (14:43 -0500)]
r600: fix count prediction for IB case
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Alan Hourihane [Wed, 4 Nov 2009 14:48:25 +0000 (14:48 +0000)]
Fix YTILE spantmp functions
Alan Hourihane [Wed, 4 Nov 2009 14:48:25 +0000 (14:48 +0000)]
Fix YTILE spantmp functions
Vinson Lee [Wed, 4 Nov 2009 14:14:55 +0000 (07:14 -0700)]
glslcompiler: Fix Mac OS build.
Signed-off-by: Brian Paul <brianp@vmware.com>
José Fonseca [Tue, 3 Nov 2009 19:47:51 +0000 (19:47 +0000)]
util: Remove homegrown Windows KM profiler.
It's not sampling based so its results are biased towards functions called
many times.
Michal Krol [Wed, 4 Nov 2009 11:47:10 +0000 (11:47 +0000)]
tgsi/ureg: Allow for multiple extended instruction tokens.
For example, we would like to have a predicate and texture token
in one instruction to do predicated texture sampling.
Christoph Bumiller [Tue, 3 Nov 2009 22:30:18 +0000 (23:30 +0100)]
nv50: fix shader emit_tex for cube textures
Christoph Bumiller [Tue, 3 Nov 2009 21:09:32 +0000 (22:09 +0100)]
nv50: add abs-modifier for emit_minmax
Christoph Bumiller [Tue, 3 Nov 2009 22:19:56 +0000 (23:19 +0100)]
nv50: add 3d texture tiling and mip-mapping
Mip-mapped 3D textures are not arrays of 2D layers
with a mip-map layout like 2D textures, therefore we
cannot use image_nr == depth for them.
Making use of "volume tiling" modes now, the allowed
modes are 0xZY where Z <= 5 and y <= 5.
Brian Paul [Tue, 3 Nov 2009 23:13:22 +0000 (16:13 -0700)]
mesa: (GLint64) casts in get.c to silence Visual Studio warnings
Revised version of a patch from Karl Schultz.
Brian Paul [Tue, 3 Nov 2009 23:12:02 +0000 (16:12 -0700)]
docs: fix 7.6 build with Visual Studio
Karl Schultz [Tue, 3 Nov 2009 23:09:26 +0000 (16:09 -0700)]
windows: updated VC8 project file
Signed-off-by: Brian Paul <brianp@vmware.com>
Karl Schultz [Tue, 3 Nov 2009 23:07:01 +0000 (16:07 -0700)]
windows: remove old entrypoints from mesa.def file
Signed-off-by: Brian Paul <brianp@vmware.com>
Karl Schultz [Tue, 3 Nov 2009 23:05:12 +0000 (16:05 -0700)]
mesa: added GLAPIENTRY keywords for sync object functions
Signed-off-by: Brian Paul <brianp@vmware.com>
Vinson Lee [Tue, 3 Nov 2009 21:41:08 +0000 (14:41 -0700)]
progs/util: Fix memory leak if fail to load/compile shader
Signed-off-by: Brian Paul <brianp@vmware.com>
Michal Krol [Fri, 30 Oct 2009 08:27:17 +0000 (08:27 +0000)]
llvmpipe: Sanitise shader semantic and interpolator handling.
Handle the remaining semantic names and indices.
Respect color interpolator when not flatshading.
Based on Michal's softpipe commit
eb699d64ec7057032139baccedcb0694ca41d706.
Keith Whitwell [Sun, 23 Aug 2009 10:22:41 +0000 (11:22 +0100)]
llvmpipe: remove old prim_setup draw stage
Everything now goes through the draw_vbuf handler, the same as
regular drivers.
Based on Keith's commit
4fe0fc3eba1f79beda890a5016359d549bab6ad4.
José Fonseca [Tue, 3 Nov 2009 13:10:58 +0000 (13:10 +0000)]
llvmpipe: Respect gl_rasterization_rules in primitive setup.
Based on Michal's identical commit for softpipe
(
ca9c413647bf9efb5ed770e3a655bc758075aec7).
José Fonseca [Mon, 2 Nov 2009 09:47:47 +0000 (09:47 +0000)]
python/retrace: Cope with null constant buffers.
José Fonseca [Mon, 2 Nov 2009 09:47:24 +0000 (09:47 +0000)]
python/retrace: Add missing colon.
Brian Paul [Tue, 3 Nov 2009 17:01:10 +0000 (10:01 -0700)]
progs/tests: debug code for getting texture component sizes
Michal Krol [Tue, 3 Nov 2009 09:55:28 +0000 (09:55 +0000)]
tgsi: Up tgsi_exec's control flow nesting to 32.
Brian Paul [Tue, 3 Nov 2009 16:54:09 +0000 (09:54 -0700)]
Merge branch 'mesa_7_6_branch'
Brian Paul [Mon, 2 Nov 2009 22:39:39 +0000 (15:39 -0700)]
mesa: clean-up, remove some flushing in FBO functions
Remove some unneeded flushes.
Replace FLUSH_CURRENT w/ FLUSH_VERTICES in other places.
Brian Paul [Mon, 2 Nov 2009 22:30:51 +0000 (15:30 -0700)]
mesa: fix indentation
Brian Paul [Mon, 2 Nov 2009 22:29:54 +0000 (15:29 -0700)]
mesa: clean-up formatting
Brian Paul [Mon, 2 Nov 2009 22:29:03 +0000 (15:29 -0700)]
mesa: avoid extraneous _NEW_BUFFER changes in _mesa_BindFramebufferEXT()
Brian Paul [Mon, 2 Nov 2009 22:27:57 +0000 (15:27 -0700)]
mesa: use FLUSH_VERTICES() in _mesa_drawbuffers()
Brian Paul [Mon, 2 Nov 2009 21:41:17 +0000 (14:41 -0700)]
mesa: avoid extraneous _NEW_BUFFER state in _mesa_drawbuffers()
Brian Paul [Mon, 2 Nov 2009 20:20:19 +0000 (13:20 -0700)]
mesa: use ffs() to shorten loop in _mesa_drawbuffers()
Brian Paul [Mon, 2 Nov 2009 19:58:51 +0000 (12:58 -0700)]
mesa: added assertion, another comment
Brian Paul [Mon, 2 Nov 2009 19:40:04 +0000 (12:40 -0700)]
intel: avoid unnecessary front buffer flushing/updating
Before, if we just called glXMakeCurrent() and didn't render anything we'd
still trigger a flushFrontBuffer() call.
Now only set the intel->front_buffer_dirty field at state validation time
just before we draw something.
NOTE: additional calls to intel_check_front_buffer_rendering() might be
needed if I missed some rendering paths.
Marek Olšák [Tue, 3 Nov 2009 15:16:05 +0000 (16:16 +0100)]
st/mesa: clip pixels in draw_stencil_pixels to avoid crash
Signed-off-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 3 Nov 2009 16:30:20 +0000 (09:30 -0700)]
st/mesa: don't use util_blit_pixels_writemask() for depth or depth/stencil
util_blit_pixels_writemask() only works for color formats at this time.
Also, it might never work for depth/stencil surfaces since we can't get
handle stencil values in a fragment shader.
Fixes glCopyTexSubImage(GL_DEPTH_COMPONENT).
Brian Paul [Tue, 3 Nov 2009 16:26:32 +0000 (09:26 -0700)]
st/mesa: fix tests for depth and depth/stencil texture formats
Brian Paul [Sat, 31 Oct 2009 14:08:19 +0000 (08:08 -0600)]
mesa: added comment
Brian Paul [Sat, 31 Oct 2009 14:08:05 +0000 (08:08 -0600)]
mesa: use _mesa_get_current_tex_object()
Brian Paul [Sat, 31 Oct 2009 14:07:46 +0000 (08:07 -0600)]
mesa: use _mesa_get_current_tex_object()
Brian Paul [Sat, 31 Oct 2009 14:07:23 +0000 (08:07 -0600)]
mesa: make _mesa_get_current_tex_objec() public
Ian Romanick [Mon, 2 Nov 2009 20:44:14 +0000 (12:44 -0800)]
ARB prog parser: Fix a couple issues with previous merge from mesa_7_6_branch
Since the addition of support for Nvidia condition codes, the lexer internally
uses handle_ident to select between returning IDENTIFIER and USED_IDENTIFIER.
Also, use return_string instead of strdup.
Fixes bug #24809.
Vinson Lee [Mon, 2 Nov 2009 19:35:47 +0000 (12:35 -0700)]
glx: Fix memory leak if XF86DRICreateDrawable() fails
Signed-off-by: Brian Paul <brianp@vmware.com>
Pierre Ossman [Sun, 1 Nov 2009 21:28:02 +0000 (22:28 +0100)]
r600: implement LOG op in compiler
Pierre Ossman [Sun, 1 Nov 2009 20:38:48 +0000 (21:38 +0100)]
r600: implement EXP op in compiler
Michal Krol [Mon, 2 Nov 2009 14:59:52 +0000 (14:59 +0000)]
tgsi/ureg: Add negate and swizzle for predicates.
Brian Paul [Mon, 2 Nov 2009 13:52:05 +0000 (06:52 -0700)]
mesa: fix incorrect approx bits/channel for fxt1 formats
See bug 24806.
Brian Paul [Mon, 2 Nov 2009 13:51:47 +0000 (06:51 -0700)]
gallium/util: add casts to silence warnings
Michal Krol [Mon, 2 Nov 2009 09:42:28 +0000 (09:42 +0000)]
tgsi/ureg: Update for gallium interface changes.
Michal Krol [Mon, 2 Nov 2009 09:41:40 +0000 (09:41 +0000)]
tgsi: Update for gallium interface changes.
Michal Krol [Sat, 31 Oct 2009 09:09:26 +0000 (09:09 +0000)]
gallium: Cleanup predicate and condition code TGSI tokens.
There is little point in having a special TGSI token just to handle
predicate register updates. Remove tgsi_dst_register_ext_predicate token
and instead use a new PREDICATE register file to update predicates.
Actually, the contents of the obsolete token are being moved
to tgsi_instruction_ext_predicate, where they should be
from the very beginning.
Remove the NVIDIA-specific condition code tokens -- nobody uses them
and they can be emulated with predicates if needed.
Introduce PIPE_CAP_SM3 that indicates whether a driver supports
SM3-level instructions, and in particular predicates.
Add PIPE_CAP_MAX_PREDICATE_REGISTERS that can be used to query the driver
how many predicate registers it supports (currently it would be 1).
Michal Krol [Fri, 30 Oct 2009 08:27:17 +0000 (08:27 +0000)]
softpipe: Sanitise shader semantic and interpolator handling.
Handle the remaining semantic names and indices.
Respect color interpolator when not flatshading.
Younes Manton [Sun, 1 Nov 2009 23:25:59 +0000 (18:25 -0500)]
nouveau: Assume all texture blankets are linear for now.
Corbin Simpson [Sun, 1 Nov 2009 19:54:52 +0000 (11:54 -0800)]
r300g: Miscellania. Avoid draw segfaults, s/true/TRUE/, etc.
Cleared out my git stash.
Maciej Cencora [Sun, 1 Nov 2009 17:50:52 +0000 (18:50 +0100)]
r300g: fix geometry corruptions
PVS flush is needed before changing the vertex shader or vertex shader constants.
Maciej Cencora [Wed, 21 Oct 2009 19:17:43 +0000 (21:17 +0200)]
r300g: split constant buffer and shader emittion
Corbin Simpson [Sun, 1 Nov 2009 17:24:02 +0000 (09:24 -0800)]
r300g: Adopt osiris' PSC data and swizzle.
A fair amount more flexible and easier to maintain.
Christoph Bumiller [Sun, 1 Nov 2009 13:15:30 +0000 (14:15 +0100)]
nv50: handle TGSI_SEMANTIC_FACE