Kenneth Graunke
f2dfac6d74
glsl2: Update TODO.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
3f4a0b8bb0
ir_constant_expression: Add support for dot products.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
cf80a4d177
ir_constant_expression: Add support for matrix multiplication.
...
Also handles matrix/vector and vector/matrix multiplication.
Fixes piglit tests const-matrix-multiply-01.frag,
const-matrix-multiply-02.frag, and const-vec-mat.frag.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
37b3f9d0ed
ir_constant_expression: Support scalar * vector and scalar * matrix.
...
The test here is slightly different since we need to keep matrix
multiplication separate.
Fixes piglit tests const-vec-scalar-03.frag and const-mat-scalar-03.frag.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
dad35eb8b0
ir_constant_expression: Support scalar / vector and scalar / matrix.
...
Fixes piglit tests const-vec-scalar-04.frag and const-mat-scalar-04.frag.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
97b44f040a
ir_constant_expression: Support scalar - vector and scalar - matrix.
...
Fixes piglit tests const-vec-scalar-02.frag and const-mat-scalar-02.frag.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
e74dcd7924
ir_constant_expression: Support scalar + vector and scalar + matrix.
...
Fixes piglit tests const-vec-scalar-01.frag, const-vec-scalar-05.frag,
and const-mat-scalar-01.frag.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
6fc983b9bb
ir_constant_expression: Assert that both operands share a base type.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
6bc432e14e
ir_constant_expression: Initialize op[0] and op[1] to NULL.
...
This makes it easy to check if there is a second argument.
2010-07-06 16:03:33 -07:00
Kenneth Graunke
c63a1db81f
ir_constant_expression: Initialize all components of constant data to 0.
...
This is probably just a good idea, and will come in useful when
implementing things like matrix multiplication.
2010-07-06 16:03:32 -07:00
Ian Romanick
d1a1ee583e
Add hash table helper functions for using pointers as hash keys
2010-07-06 15:00:46 -07:00
Ian Romanick
e45a982313
Make hashtable.h be C++ friendly
2010-07-06 15:00:46 -07:00
Eric Anholt
a0b3b93029
ir_to_mesa: Use the compiler-assigned locations for builtin attrs/varyings.
...
The previous table didn't distinguish gl_Color for the VS and FS, so
we would use the FS's attribute index for the VS and read undefined.
This partially fixes glsl-routing to match its behavior on master.
2010-07-06 14:05:51 -07:00
Kenneth Graunke
83035574db
Refresh autogenerated file builtin_function.cpp.
2010-07-02 18:20:19 -07:00
Kenneth Graunke
7e908a6a27
glcpp: Add #error support.
2010-07-02 18:03:58 -07:00
Kenneth Graunke
2070f9f5be
glsl2: Fix for dead strings being stored in the symbol table.
2010-07-02 18:03:58 -07:00
Kenneth Graunke
e2a358348b
ir_to_mesa: Fix uninitalized value.
2010-07-02 18:03:58 -07:00
Kenneth Graunke
ddc3aa0783
glsl2/builtins: Use vector ops in the 130 version of "sign."
2010-07-02 18:03:58 -07:00
Kenneth Graunke
9a7ac272fb
glsl2/builtins: Use vector ops in "smoothstep."
2010-07-02 18:03:58 -07:00
Eric Anholt
b0ac07e3de
ir_to_mesa: Fix up implementation of ir_unop_exp.
...
OPCODE_EXP is not to ir_unop_exp what OPCODE_EX2 is to ir_unop_exp2.
It's the weird VP approximation helper opcode. Just implement it with
OPCODE_POW instead.
Fixes glsl-fs-exp.
2010-07-02 17:06:32 -07:00
Eric Anholt
4e7d5d0e74
i965: Add support for the DP2 opcode, which we use for dot(vec2, vec2).
...
The original glsl compiler would generate a.x * b.x + a.y * b.y, which
we would do mul+mul+add for instead of this mul+mac.
Fixes glsl-fs-dot-vec2.
2010-07-02 17:06:23 -07:00
Eric Anholt
8f25d198e5
ir_to_mesa: Add support for scalar * mat, vec * mat.
...
This is not tested by piglit currently.
2010-07-02 17:06:08 -07:00
Eric Anholt
b61f4241f3
ir_to_mesa: Add support for shadow comparison to texture instructions.
...
piglit lacks tests for this currently.
2010-07-02 17:06:06 -07:00
Eric Anholt
d3983ca032
ir_to_mesa: Move projection handling out of ir_tex so txb and txl get it.
...
Fixes:
glsl-fs-texture2dproj-bias
glsl-fs-texture2dproj-bias-2
2010-07-02 17:06:05 -07:00
Ian Romanick
4d962e66e3
glsl2: Print the linking info log in the stand-alone compiler
2010-07-02 14:57:07 -07:00
Eric Anholt
de75dfac4e
ir_to_mesa: Add support for projected non-shadow/bias/lod texturing.
...
Fixes:
glsl-fs-texture2dproj
glsl-fs-texture2dproj-2
2010-07-02 14:50:02 -07:00
Eric Anholt
cab95c228b
ir_to_mesa: Fix sparse swizzling of src regs when a writemask is present.
...
Fixes glsl-fs-texture2d-masked.
2010-07-02 14:08:20 -07:00
Eric Anholt
28faa12dc2
ir_to_mesa: Don't forget to run the Mesa IR optimization passes.
...
With how we generate assignments, the trivial copy propagation in it
is really important, and some drivers will really want the register
allocation, too.
2010-07-02 11:38:02 -07:00
Eric Anholt
9a0e421983
glsl2: Add a pass to break ir_binop_div to _mul and _rcp.
...
This results in constant folding of a constant divisor.
2010-07-02 11:27:06 -07:00
Ian Romanick
667f4e1940
glsl2: Conditionally allow optional extensions to be enabled
...
The only optional extension currently supported by the compiler is
GL_EXT_texture_array.
2010-07-01 20:40:08 -07:00
Ian Romanick
efb6b24223
glsl2: Append _TOK to some parser tokens
...
This prevents conflicts with defines elsewhere in Mesa and allows
including mtypes.h in the compiler.
2010-07-01 20:40:08 -07:00
Ian Romanick
06143ea094
glsl2: Conditionally define preprocessor tokens for optional extensions
...
The only optional extension currently supported by the compiler is
GL_EXT_texture_array.
2010-07-01 20:40:08 -07:00
Ian Romanick
2d12236117
glsl2: Define preprocessor tokens for extensions
...
Currently only GL_ARB_draw_buffers and GL_ARB_texture_rectangle are
defined because those extensions are always enabled. This make
tex_rect-03.frag pass.
2010-07-01 20:40:08 -07:00
Ian Romanick
6f0823da09
glsl2: Support AST-to-IR translation of invariant keyword
2010-07-01 20:39:08 -07:00
Ian Romanick
3832706f81
glsl2: Initialize ast_declarator_list::invariant in constructor
2010-07-01 17:10:11 -07:00
Ian Romanick
12873fa4e3
glsl2: Don't bounds check unsize array redeclarations
...
This along with several previous commits fix test CorrectUnsizedArray.frag.
2010-07-01 14:10:19 -07:00
Ian Romanick
127308b4be
glsl2: Add gl_MaxTextureCoords
2010-07-01 13:30:50 -07:00
Ian Romanick
cd00d5b88c
glsl2: Default delcaration of gl_TexCoord is unsized
2010-07-01 13:17:54 -07:00
Ian Romanick
5466b63968
glsl2: Change order of semaintic checks on variable declarations
...
This will make it easier to support more (valid) kinds of redeclarations.
2010-07-01 12:56:49 -07:00
Eric Anholt
411fb36b7c
ir_to_mesa: Fill in remaining ops, remove default case for expression types.
...
We should now have support for all the expression types we need for
GLSL 1.20.
2010-07-01 11:24:38 -07:00
Eric Anholt
8761fcc2bf
ir_to_mesa: Add support for ir_unop_rcp.
...
This isn't used at the moment, but will be soon.
2010-07-01 11:23:02 -07:00
Eric Anholt
d1b07167b9
glsl2: Update README for what I've been thinking about with expr types work.
2010-07-01 11:07:58 -07:00
Eric Anholt
8a1f186cc5
glsl2: Add a pass to convert mod(a, b) to b * fract(a/b).
...
This is used by the Mesa IR backend to implement mod, fixing glsl-fs-mod.
2010-07-01 11:07:23 -07:00
Eric Anholt
9acf618f24
glsl2: Remove dead member from dead code visitor.
2010-07-01 11:07:22 -07:00
Eric Anholt
d925c91730
glsl2: Add ir_unop_fract as an expression type.
...
Most backends will prefer seeing this to seeing (a - floor(a)), so
represent it explicitly.
2010-07-01 11:07:22 -07:00
Eric Anholt
5e4dd061d1
ir_to_mesa: Add support for discard instructions.
...
Fixes glsl-fs-discard-01.
2010-06-30 17:31:06 -07:00
Eric Anholt
f5b3b2a01a
glsl2: Don't break sign() down by vector components.
2010-06-30 17:29:12 -07:00
Eric Anholt
3acd92a91f
ir_to_mesa: Add support for ir_unop_sign.
...
Fixes glsl-fs-sign, glsl-vs-sign.
2010-06-30 17:29:12 -07:00
Eric Anholt
e558786a3e
i965: Add support for OPCODE_SSG.
...
The old compiler didn't use SSG, and instead emitted SGT/SGT/SUB. We
can do a little better for SSG than we do for the SGT series.
2010-06-30 17:29:09 -07:00
Eric Anholt
d6ebe9b16b
ir_to_mesa: Add missing no-op type conversions.
...
Fixes glsl-fs-step.
2010-06-30 16:23:32 -07:00