Commit graph

37857 commits

Author SHA1 Message Date
Eric Anholt
4532feba14 glsl: Fix leak-causing typo in destructor that made it another constructor. 2010-08-18 16:18:38 -07:00
Vinson Lee
352e62c3c2 glsl: Fix uninitialized member in ir_hierarchical_vistor constructor.
Class member base_ir was not initialized by the default constructor.
2010-08-18 16:10:15 -07:00
Vinson Lee
e1c7f3af0c mesa: fpclassify is available on OpenSolaris.
There is no explicit predefined macro to distinguish between OpenSolaris
and Solaris. This patch assumes that the difference is in the compilers.
OpenSolaris uses GCC and not the Sun Studio compiler. Assume that the
availability of fpclassify is due to GCC.

This patch was not tested on Solaris. It would break the build on
Solaris with GCC if GCC on Solaris does not have fpclassify.
2010-08-18 14:36:08 -07:00
Eric Anholt
3ef83d270b ir_to_mesa: Fix leak of set_branchtargets temp data. 2010-08-18 14:16:07 -07:00
Eric Anholt
e271384219 glsl: Garbage collect old prototype for ir_to_mesa. 2010-08-18 14:16:07 -07:00
Eric Anholt
850c659044 ir_to_mesa: Stop leaking the ir_instruction * annotation of our compile. 2010-08-18 14:16:07 -07:00
Eric Anholt
56a0690a81 mesa: Free linked shaders when deleting the shader program. 2010-08-18 14:16:07 -07:00
Eric Anholt
5d0f430e8e mesa: Free old linked shaders when relinking new shaders. 2010-08-18 14:16:07 -07:00
Eric Anholt
0b09e6410f glsl2: Fix copy'n'paste hilarity leading to leaking in the refcount visitor. 2010-08-18 14:16:07 -07:00
Eric Anholt
abc6d7e0b4 ir_to_mesa: Free the ir_to_mesa temporary storage when we're done. 2010-08-18 14:16:07 -07:00
Eric Anholt
4a6a431684 mesa: Hang the compiled shader off the shader->ir, not the shader.
Otherwise, with repeated program recompile, we never free the results
of the previous compile.
2010-08-18 14:16:07 -07:00
Eric Anholt
0df61bdb66 mesa: Make MESA_GLSL=dump include when compile/link fails, and the info log. 2010-08-18 14:16:06 -07:00
Kenneth Graunke
665d75cc5a glsl: Fix scoping bug in if statements.
Fixes glslparsertest/glsl2/scoping-01.frag (successfully compiled but
should've failed) and scoping-02.frag (assertion triggered).
2010-08-18 14:03:25 -07:00
Kenneth Graunke
cf37ba3430 glsl: Refresh autogenerated file builtin_function.cpp. 2010-08-18 13:20:58 -07:00
Kenneth Graunke
011be6b594 generate_builtins.py: Clean up generated output a bit.
This should make it easier to diff the output, clean up some of the
insane whitespace, and make the strings a bit smaller.

We'll probably need to split up the prototype strings eventually, but
for now, this gets it under the 65K mark.
2010-08-18 13:20:41 -07:00
Kenneth Graunke
08a84c6a4a glsl/builtins: Add forgotten hyperbolic trig builtins in 1.30 profiles. 2010-08-18 13:16:50 -07:00
Kenneth Graunke
d12cb77d85 ir_constant_expression: Implement equal/notEqual for booleans.
Calls to equal(bvec, bvec) or notEqual(bvec, bvec) previously caused an
assertion.  Fixes piglit tests glsl-const-builtin-equal-bool and
glsl-const-builtin-notEqual-bool.
2010-08-18 12:08:19 -07:00
Andre Maasikas
d442a01ac1 r600: implement SSG instruction 2010-08-18 14:27:43 +03:00
michal
8690c6a6b4 gallivm: Use proper index to lookup predicate register array.
Doesn't fix anything, as those indices were both always 0.
2010-08-18 13:16:42 +02:00
Andre Maasikas
c17d5de593 r600: implement DP2 opcode 2010-08-18 11:57:28 +03:00
Kenneth Graunke
a57b1e579d glsl2: Regenerate builtin_function.cpp. 2010-08-17 23:50:40 -07:00
Kenneth Graunke
f70ce12529 glsl2: Fix cut and paste error in EXT_texture_array builtins.
Fixes fd.o bug #29629.
2010-08-17 23:50:15 -07:00
Carl Worth
9751b4ec60 glcpp: Refresh generated files.
After a recent change to glcpp-parse.y (adding "redefined macro" error).
2010-08-17 23:41:53 -07:00
Carl Worth
3882cf2169 glcpp: Add support for "redefined macro" error.
Carefully avoiding printing any error when the new definition matches
the existing definition.

This fixes the recently-added 088-redefine-macro-legitimate.c and
089-redefine-macro-error.c tests as well as glsparsertest/preprocess1
in piglit.
2010-08-17 23:41:53 -07:00
Carl Worth
105e2137d6 glcpp: Add two new tests for testing redefined macros.
The specification says that redefining a macro is an error, unless the
new definitions is identical to the old one, (identical replacement
lists but ignoring differing amounts of whitespace).
2010-08-17 23:41:53 -07:00
Carl Worth
97638aa77c glcpp: Allow standalone glcpp to accept a filename as first argument.
This is useful for debugging the preprocessor.
2010-08-17 23:41:53 -07:00
Dave Airlie
3af87162cd r600g: add FRC, FLR, DDX and DDY
the first two are straight op2's and the DDX/DDY are taken from r600c.
2010-08-18 16:10:16 +10:00
Dave Airlie
be288c3505 r600g: add SGE and SLE opcodes
fixes fp-set-01 and glsl-fs-step
2010-08-18 16:03:49 +10:00
Dave Airlie
d01c0025e8 r600g: add TXB support
fixes biased texturing tests
2010-08-18 15:42:03 +10:00
Dave Airlie
b777db3254 r600g: fix TXP vs TEX in shader.
Don't do perspective for TEX, and also copy input to a temporary for TEX

also add tex opcode names
2010-08-18 15:42:02 +10:00
Carl Worth
ce5d0a296c glcpp: Fix 064-version.c expected result to track recent change.
In commit 6be3a8b70a, the #version directive
was fixed to stop generating a spurious newline. Here we simply update
the expected result for the single test which includes a #version directive.
2010-08-17 22:23:43 -07:00
Carl Worth
b9892f22d1 glcpp: Regenerated glcpp-lex.c from previous commit.
The previous commit changed glcpp-lex.l so we commit the resulting
generated file here.
2010-08-17 22:22:13 -07:00
Carl Worth
eb26f0d5b6 glcpp: Don't include the newline when discarding single-line comments
Matching the newline here meant having to do some redundant work here,
(incrementing line number, resetting column number, and returning a
NEWLINE token), that could otherwise simply be left to the existing rule
which matches a newline.

Worse, when the comment rule matches the newline as well, the parser
can lookahead and see a token for something that should actually be skipped.

For example, in a case like this:

	#if 0 // comment here
	fail
	#else
	win
	#endif

Both fail and win appear in the output, (not that the condition is being
evaluated incorrectly---merely that one token after the comment's newline
was being lexed/parse regardless of the condition).

This commit fixes the above test case, (which is also remarkably similar
to 087-if-comments which now passes).
2010-08-17 22:17:09 -07:00
Dave Airlie
4558b63455 r600g: add two simple tgsi opcodes.
makes glsl-fs-log2 and glsl1-integer division with uniform var pass
2010-08-18 13:48:04 +10:00
Dave Airlie
1147814365 r600g: fix point size
fixes piglit pointAtten and point-sprite tests
2010-08-18 13:30:34 +10:00
Eric Anholt
35220fc598 ir_to_mesa: Allow ir_return in main().
I didn't expect that this would really work, but it turns out there
are shaders in the wild that do it.

Fixes: (with swrast)
glsl-fs-main-return
glsl-vs-main-return
2010-08-17 19:55:14 -07:00
Eric Anholt
1cdef8e90a i965: Throw a link error when we see a "return" in main().
We'll need to use the HALT instruction to do this right, like returns
from other functions.
2010-08-17 19:55:14 -07:00
Dave Airlie
03c59e4ab1 r600g: fixup pitch alignment like r600c.
This still needs work, passes tex3d, fbo-scissor-bitmap, scissor-bitmap
2010-08-18 12:49:59 +10:00
Luca Barbieri
547e88e70d translate_sse: don't overwrite source buffer pointer
We were putting the source pointer in a register used as a temporary,
breaking all paths that don't read the data in a single instruction.
2010-08-18 04:21:46 +02:00
Eric Anholt
ede67e3071 glcpp: Add testcase for #if handling bug that breaks Savage2. 2010-08-17 17:51:10 -07:00
Dave Airlie
edb465e9bb r600g: fix height calcs for miptree
h needs to be rounded up, this probably needs revisiting when we get
to tiling etc.

fixes fbo-generatemipmap-npot
2010-08-18 10:50:19 +10:00
Dave Airlie
1d18739290 r600g: emit texture level offset in CB/DB setup.
8 more piglit tests pass,
fbo-clearmipmap, fbo-copyteximage, fbo-generatemipmap,
fbo-generatemipmap-nonsquare, fbo-generatemipmap-scissor,
fbo-generatemipmap-viewport, gen-teximage, gen-texsubimage
2010-08-18 10:35:09 +10:00
Eric Anholt
6992c3c373 ir_to_mesa: Fix implementation of ir_binop_equal, ir_binop_notequal.
These binops are the vector-to-bool comparisons, not vec-to-bvec.  We
likely want both operations avilable as expression, since 915 and 965
FS naturally does the vector version, while 965 VS can also naturally
do the scalar version.  However, we can save that until later.

Fixes:
glsl-fs-vec4-operator-equal.shader_test
glsl-fs-vec4-operator-notequal.shader_test
glsl-vs-vec4-operator-equal.shader_test
glsl-vs-vec4-operator-notequal.shader_test
2010-08-17 17:27:44 -07:00
Eric Anholt
02e1639829 i915: Add support for SSG opcode.
Fixes glsl-fs-sign and many of the tests of trig builtins.
2010-08-17 16:39:18 -07:00
Eric Anholt
e43b250fc0 i915: Add support for reading output regs in the FS.
Fixes glsl-unused-varying and many others, since we produce an output
reg read any time gl_FragColor is written inside an if statement.
2010-08-17 16:39:18 -07:00
Eric Anholt
66690864ef i915: Add support for OPCODE_DP2.
Fixes glsl-fs-dot-vec2.
2010-08-17 16:39:17 -07:00
Eric Anholt
a58514cc9c i915: Enable ARB_fragment_shader by default.
Now that we have glsl2 with if flattening in place, most shaders will
just work.  Remaining failing shaders will mostly be due to loop
unrolling (in progress), some possible if flattening failures in
inlining functions (planning on fixing), and the register/instruction
count limits.

While the GLSL and GLSL-ES specs say that shaders shouldn't fail to
compile/link due to register/instruction limits, in practice we're not
the first vendor to expose GLSL on hardware with these limitations.
The benefit to application developers of providing a better language
for GPU programming is greater than the pain of having to handle
instruction limits (which they had to for ARB_fp on this hardware
anyway)
2010-08-17 16:39:17 -07:00
Ian Romanick
bdc0e5285a glsl2: Fix transpose of rows and cols
This error led to an assertion failure for some constructors of
non-square matrices.  It only occured in matrices where the number of
columns was greater than the number of rows.  It didn't even always
occur on those.

Fixes piglit glslparsertest case constructor-16.vert.
2010-08-17 16:06:30 -07:00
Henri Verbeet
8f5f44c9c8 r600c: Handle reads from PROGRAM_OUTPUT
with glsl2, reads from outputs are legal
2010-08-17 18:25:32 -04:00
Ian Romanick
40e114b5dc linker: Demote user-defined varyings in the VS-only case
Fixes piglit test case glsl-vs-ff-frag and bugzilla #29623.
2010-08-17 14:57:18 -07:00