Commit graph

35332 commits

Author SHA1 Message Date
Ian Romanick
5a7758efbe glsl2: Add ir_assignment::write_mask and associated methods
Replace swizzles on the LHS with additional swizzles on the RHS and a
write mask in the assignment instruction.  As part of this add
ir_assignment::set_lhs.  Ideally we'd make ir_assignment::lhs private
to prevent erroneous writes, but that would require a lot of code
butchery at this point.

Add ir_assignment constructor that takes an explicit write mask.  This
is required for ir_assignment::clone, but it can also be used in other
places.  Without this, ir_assignment clones lose their write masks,
and incorrect IR is generated in optimization passes.

Add ir_assignment::whole_variable_written method.  This method gets
the variable on the LHS if the whole variable is written or NULL
otherwise.  This is different from
ir->lhs->whole_variable_referenced() because the latter has no
knowledge of the write mask stored in the ir_assignment.

Gut all code from ir_to_mesa that handled swizzles on the LHS of
assignments.  There is probably some other refactoring that could be
done here, but that can be left for another day.
2010-08-04 16:47:27 -07:00
Ian Romanick
8e9ce2eb56 glsl2: Don't try to construct an ir_assignment with an invalid LHS 2010-08-04 16:47:27 -07:00
Vinson Lee
060a95c3a9 st/mesa: Add forward declaration in st_cb_strings.h. 2010-08-04 16:46:42 -07:00
Vinson Lee
e9d6f2fc8a st/mesa: Add missing header in st_cb_readpixels.h.
Include mtypes.h for GLcontext symbol.
2010-08-04 16:40:04 -07:00
Vinson Lee
a25ac9b526 st/mesa: Clean up header file inclusion in st_cb_rasterpos.h. 2010-08-04 16:33:10 -07:00
Eric Anholt
8dbdcb0b43 glsl2: Constant fold the children of many more ir_instruction types. 2010-08-04 16:25:56 -07:00
Eric Anholt
6ecf62f673 glsl2: Return a real progress value from constant folding. 2010-08-04 16:25:56 -07:00
Eric Anholt
3d23f0a90c glsl2: Refactor constant folding of rvalues to a function. 2010-08-04 16:25:56 -07:00
Vinson Lee
2bb3bfa943 st/mesa: Add missing header in st_cb_program.h.
Include mtypes.h for GLcontext symbol.
2010-08-04 16:13:15 -07:00
Kenneth Graunke
0ef79a5f11 glcpp: Refresh autogenerated lexer and parser. 2010-08-04 15:57:20 -07:00
Kenneth Graunke
1ffc1cd861 glcpp: Remove xtalloc wrappers in favor of plain talloc.
Calling exit() on a memory failure probably made sense for the
standalone preprocessor, but doesn't seem too appealing as part of
the GL library.  Also, we don't use it in the main compiler.
2010-08-04 15:57:20 -07:00
Kenneth Graunke
ad98aa9d93 glsl2: Remove uses of deprecated TALLOC_CTX type. 2010-08-04 15:57:19 -07:00
Christoph Bumiller
aaa8802a22 nv50: build proper phi functions in the first place 2010-08-05 00:50:00 +02:00
Christoph Bumiller
720e0c430d nv50: fix constbuf validation
We only uploaded up to the highest offset a program would use,
and if the constant buffer isn't changed when a new program is
used, the new program is missing the rest of them.

Might want to introduce a "fill state" for user mem constbufs.
2010-08-05 00:50:00 +02:00
Christoph Bumiller
2c695d38e6 nv50: don't eliminate loads to dedicated values 2010-08-05 00:50:00 +02:00
Vinson Lee
7f7bbf0d5b r300/compiler: Remove unnecessary header. 2010-08-04 15:45:41 -07:00
Vinson Lee
81bc4f4cbf intel: Remove unnecessary header. 2010-08-04 15:38:24 -07:00
Vinson Lee
9f7e7ce757 st/mesa: Add missing headers in st_cb_flush.h.
Add forward declarations.
Include p_compiler.h for uint symbol.
2010-08-04 15:32:53 -07:00
Vinson Lee
85dbb2904b st/mesa: Clean up header inclusion in st_cb_feedback.h.
Replace mtypes.h with forward declaration.
Include compiler.h for INLINE symbol.
2010-08-04 15:26:37 -07:00
Aras Pranckevicius
ea3a9eb53a glsl2: add gl_LightModel built-in uniform. 2010-08-04 14:41:01 -07:00
Eric Anholt
b6ceddc371 glsl2: Don't try to assign locations for samplers during linking.
Mesa will do the mapping at _mesa_add_sampler() time.  Fixes assertion
failures in debug builds, which might have caught real problems with
multiple samplers linked in a row.
2010-08-04 14:28:57 -07:00
Eric Anholt
fe1918c71c ir_to_mesa: Clean up the mapping of samplers to Mesa's sampler uniforms.
Instead of using a linker-assigned location (since samplers don't
actually take up uniform space, being a link-time choice), use the
sampler's varaible pointer as a hash key.
2010-08-04 14:21:01 -07:00
Eric Anholt
8e181b629f mesa: Don't null deref looking for Mesa IR code at compile time.
The new compiler doesn't generate Mesa IR at compile time, and that
compile time code previously wouldn't have reflected the link time
code that actually got used.  But do dump the info log of the compile
regardless.
2010-08-04 14:13:08 -07:00
Jerome Glisse
12dac449fb r600g: force flush on map as temporary fix to readpixel
Should allow more piglit test to pass. Need to plugin
proper flushing.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04 16:29:56 -04:00
Vinson Lee
2e85117b5f st/mesa: Add missing headers to st_cb_fbo.h. 2010-08-04 13:18:55 -07:00
Jerome Glisse
9a78e790dc r600g: always perform texture perspective divide + fix blending
quake3 engine seems to run fine at this point (ioquake)

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04 16:11:39 -04:00
Vinson Lee
19bfb55fb5 st/mesa: Clean up header file inclusion in st_cb_eglimage.h.
Replace dd.h and mtypes.h with a forward declaration.
Include compiler.h for INLINE symbol.
2010-08-04 13:04:36 -07:00
Eric Anholt
952d0f88e1 glsl2: Skip talloc_parent in constant_expression of non-constant arrays. 2010-08-04 12:57:58 -07:00
Vinson Lee
988e86762f draw: Fix return type of draw_translate_vinfo_size.
Fixes typo from commit b609cfc7c9.
2010-08-04 12:55:21 -07:00
Vinson Lee
137c510097 st/mesa: Clean up header file inclusion in st_cb_drawtex.h.
Replace mtypes.h with forward declarations.
Include compiler.h for INLINE symbol.
2010-08-04 12:46:38 -07:00
Eric Anholt
8273bd4687 glsl2: Make the clone() method take a talloc context.
In most cases, we needed to be reparenting the cloned IR to a
different context (for example, to the linked shader instead of the
unlinked shader), or optimization before the reparent would cause
memory usage of the original object to grow and grow.
2010-08-04 12:42:47 -07:00
Vinson Lee
dce63cf431 st/mesa: Clean up header file inclusion in st_cb_drawpixels.h.
Replace mtypes.h with forward declarations.
Include compiler.h for INLINE symbol.
2010-08-04 12:29:26 -07:00
Vinson Lee
7fdf6d5c28 st/mesa: Add forward declaration in st_cb_condrender.h. 2010-08-04 12:24:51 -07:00
Vinson Lee
ed810ba724 st/mesa: Add forward declarations in st_cb_clear.h. 2010-08-04 12:22:31 -07:00
Vinson Lee
6bc17324da st/mesa: Include missing headers in st_cb_bufferobjects.h.
Include compiler.h for INLINE symbol.
Include mtypes.h for gl_buffer_object symbol.
2010-08-04 12:13:29 -07:00
Vinson Lee
eb4f2d4b02 st/mesa: Clean up header file inclusion in st_cb_blit.h.
Replaced mtypes.h and st_context.h with forward declarations.
Added compiler.h for INLINE symbol.
2010-08-04 12:08:17 -07:00
Vinson Lee
e6902afeee st/mesa: Clean up header file inclusion in st_cb_bitmap.h.
Removed mtypes.h.
Include compiler.h for INLINE symbol.
Added forward declarations.
2010-08-04 12:00:19 -07:00
Kristian Høgsberg
2542d8e0c2 glx: Move deref after NULL check 2010-08-04 12:51:26 -04:00
Aras Pranckevicius
84ee01f40a glsl2: Set ir_discard::ir_type when cloning it
Fixes unset ir_type after inlining.
2010-08-04 08:57:02 -07:00
Kristian Høgsberg
e3a0e468bc glx: Fix use after free in drisw error path 2010-08-04 08:57:02 -04:00
Kristian Høgsberg
e71c44cedd glx: We no longer need screen extensions for drisw
https://bugs.freedesktop.org/show_bug.cgi?id=29177
2010-08-04 08:52:26 -04:00
Kristian Høgsberg
9da1c9da13 glx: dri2InvalidateBuffers() needs the X drawable XID not the GLX one
This never ceases to entertain.
2010-08-04 08:47:36 -04:00
Andre Maasikas
8ad5b76d52 r600: relax stride/alignment requirements for vertices
seems hw can do unaligned accesses and unaligned strides
removes extra conversion when using vbo's

however I needed to switch 3 component byte format to 4 component formats
for tests to pass. Somewhat sililar to GL_SHORT fix done earlier

removes assert and gains +2 piglit especially draw-vertices
2010-08-04 12:49:39 +03:00
Chia-I Wu
5c2f01bbb0 draw: Fix the edge flags of flatshade_first polygons.
This bug can be triggered by rendering polygons with

   glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT);
   glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
2010-08-04 14:03:05 +08:00
Tom Stellard
09c8fa570e r300/compiler: Always unroll loops when doing loop emulation. 2010-08-03 20:17:00 -07:00
Tom Stellard
2824d5687a r300/compiler: r500 hw support for break and continue in loops.
The BGNLOOP and ENDLOOP instructions are now being used correctly, which
makes break and continue possible.  The deadcode pass has been modified to
handle breaks, and the compiler is more careful about which loops are
unrolled.
2010-08-03 19:11:08 -07:00
Tom Stellard
9dcc500666 r300/compiler: KILP may not always be inside an IF statement. 2010-08-03 19:11:08 -07:00
Tom Stellard
680f486ffd r300/compiler: Don't unroll loops with continue or break. 2010-08-03 19:11:08 -07:00
Vinson Lee
a3ff6c2697 st/mesa: Clean up header file inclusion in st_cache.h. 2010-08-03 17:55:53 -07:00
Vinson Lee
279926859e st/mesa: Add forward declarations in st_atom_shader.h. 2010-08-03 17:35:29 -07:00