Ian Romanick
efc15f862b
glsl_type: Add _mesa_glsl_release_types to release all type related storage
15 years ago
Ian Romanick
e1374d48de
glsl_type: All glsl_type objects live in their own talloc context
15 years ago
Ian Romanick
72e627d02a
glsl_type: Record type constructors are private
15 years ago
Ian Romanick
49e3577b91
glsl_type: Add get_record_instance method
15 years ago
Ian Romanick
31bcce04b1
glsl_type: Vector, matrix, and sampler type constructors are private
15 years ago
Ian Romanick
e94642eb0d
glsl_type: Make all static objects be class private
15 years ago
Ian Romanick
4b6feb0398
glsl2: Use talloc_strdup when generating constructor temporary names
15 years ago
Ian Romanick
12681610f5
glsl_type: Remove vector and matrix constructor generators
All scalar, vector, and matrix constructors are generated in-line
during AST-to-HIR translation. There is no longer any need to
generate function versions of the constructors.
15 years ago
Ian Romanick
699b247661
glsl2: Don't flatten constructor parameters to scalars
Now that all scalar, vector, and matrix constructors are emitted
in-line, the parameters to these constructors should not be flattened
to a pile of scalars. Instead, the functions that emit the in-line
constructor bodies can directly write the parameters to the correct
locations in the objects being constructed.
15 years ago
Ian Romanick
81c7e94466
glsl2: Always emit matrix constructors inline
15 years ago
Ian Romanick
c31dcdf57e
glsl2: Always emit vector constructors inline
15 years ago
Ian Romanick
6315b68f5f
ir_swizzle: Add new constructor, refactor constructors
Adds a new constructor that takes an array of component values. Refactors
the meat of the two constructors to an init_mask method.
15 years ago
Kenneth Graunke
50577b96ac
glsl2: Update TODO.
15 years ago
Kenneth Graunke
6de8256505
glsl2: Check for non-void functions that don't have a return statement.
This doesn't do any control flow analysis to ensure that the return
statements are actually reached.
Fixes piglit tests function5.frag and function-07.vert.
15 years ago
Kenneth Graunke
ac04c257e3
glsl2: Reject return types with qualifiers.
Fixes piglit test return-qualifier.frag.
15 years ago
Kenneth Graunke
28527ed557
glsl2: Add a method for querying if an AST type has any qualifiers.
15 years ago
Kenneth Graunke
18707eba1c
glsl2: Check that returned expressions match the function return type.
From my reading of the specification, implicit conversions are not
allowed. ATI seems to agree, though nVidia allows it without warning.
15 years ago
Ian Romanick
153eca9806
glsl2: Invoke preprocessor before calling the compiler proper
15 years ago
Eric Anholt
59a23d7fb9
ir_to_mesa: Actually initialize the undef register for scalar_op1.
Fixes glsl-sin, glsl-cos on 965, where we rely on unused src arguments
in the VS having a file of PROGRAM_UNDEFINED.
15 years ago
Eric Anholt
f9ffccb06b
ir_to_mesa: Support user-defined varyings using the linker's locations.
Fixes glsl-reload-source.
15 years ago
Eric Anholt
ad8ad338f4
ir_to_mesa: Actually add the header file for the interface.
15 years ago
Eric Anholt
8f62ad6d0f
ir_to_mesa: Fix binop_sqrt for multi-channel and negative source channels.
Fixes glsl-fs-sqrt-branch.
15 years ago
Eric Anholt
d5a5df45a4
ir_to_mesa: Fix indexes of temps used in expressions.
It looks like I managed to horribly mangle this in some rebase of the
branch. Fixes:
glsl-fs-fragcoord
glsl-fs-mix
15 years ago
Eric Anholt
7dc1e0b326
ir_to_mesa: Notify the driver when we generate new Mesa programs for GLSL.
Fixes glsl-fs-if-*.
15 years ago
Eric Anholt
904b5bfe99
ir_to_mesa: Add support for the pow expression.
Fixes glsl-algebraic-pow-two.
15 years ago
Eric Anholt
cbe52c8012
ir_to_mesa: Fix EmitCondCodes for boolean vars as condition.
Fixes glsl-vs-if-bool.
15 years ago
Eric Anholt
854fd66cbb
ir_to_mesa: Respect EmitCondCodes for IF statements.
Fixes glsl-vs-if-* for the 965 driver.
15 years ago
Eric Anholt
0a52e8b691
ir_to_mesa: Traverse the "else" instrs after "else", instead of "then" again.
15 years ago
Eric Anholt
3f3f41357d
ir_to_mesa: Fix matrix * scalar multiplication.
We're accessing in terms of columns, so we need to do MUL/MAD/MAD/MAD
instead of DP4s.
Fixes:
glsl-fs-exp2
glsl-fs-log2
glsl-fs-mix-constant
glsl-fs-sqrt-zero
glsl-vs-sqrt-zero
15 years ago
Eric Anholt
ad2dc740b9
ir_to_mesa: Check the right element for matrix * scalar multiplication.
15 years ago
Eric Anholt
bd3b835e7c
glsl2: Add support for some builtin matrices.
15 years ago
Eric Anholt
81b7b79c47
ir_to_mesa: Fix copy and wasted InputsRead/OutputsWritten setup.
15 years ago
Kenneth Graunke
5f3fe44595
Use a more sensible context in copy propagation.
15 years ago
Kenneth Graunke
a815f7fb83
Use more sensible contexts in ir_dead_code_local.
15 years ago
Ian Romanick
22c23dedad
glsl2: Add option to stand-alone GLSL compiler to dump IR before optimizations
15 years ago
Ian Romanick
26b5d33dce
glsl2: Use i2b and f2b IR opcodes for casting int or float to bool
15 years ago
Eric Anholt
0bef5b97a9
glsl2: Add support for non-float constants in Mesa IR.
Fixes glsl-vs-vec4-indexing-4.
15 years ago
Eric Anholt
6152fa16a1
glsl2: Take out the spamming of debug flags I'd added.
15 years ago
Eric Anholt
b2d7ed2aba
glsl2: Don't clear swizzles for Mesa IR constants after fetching them.
Missed this while hacking in constants support. Fixes:
glsl-algebraic-mul-*
glsl-algebraic-rcp-*
glsl-vs-swizzle-swizzle-lhs
glsl-vs-vec4-indexing-6
15 years ago
Kenneth Graunke
78062273de
ir_reader: Free memory for S-Expressions earlier.
There's no point in keeping it around once we've read the IR.
Also, remove an unnecessary talloc_parent call.
15 years ago
Eric Anholt
85c978f38c
glsl2: Start trying to hook up uniforms.
This should be resolved with linker.cpp's location assignment, as
currently we drop that location assignment on the ground. However,
this gets basic programs using uniforms working for now.
15 years ago
Eric Anholt
0fd97db8b0
glsl2: Associate the GLenum for the type with builtin GLSL types.
15 years ago
Eric Anholt
bda27424cf
glsl2: Use the parser state as the talloc context for dead code elimination.
This cuts runtime by around 20% from talloc_parent() lookups.
15 years ago
Eric Anholt
abc4e52992
glsl2: Emit OPCODE_END at the end of the Mesa program.
The 965 driver can now run a glsl2-generated shader!
15 years ago
Eric Anholt
582b73fe69
glsl2: Hook up constant parameters in ir_to_mesa.
15 years ago
Eric Anholt
ffc845a50a
glsl2: Set InputsRead and OutputsWritten on the generated programs.
15 years ago
Eric Anholt
364fcd8ee1
glsl2: Start integrating ir_to_mesa.cpp into shader_api.h
The compiler is now called by the driver, and generates program
instructions. Parameter lists are still not set up, so the driver
chokes on it shortly thereafter.
15 years ago
Eric Anholt
7f2bf62d25
glsl2: Use Mesa types instead of duping them into our program.h.
15 years ago
Eric Anholt
2a3d46dd46
glsl2: Fix dependencies. (at least partially)
15 years ago
Eric Anholt
0a1b54df7a
glsl2: Replace the GLSL compiler with the glsl2 project.
15 years ago