| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/mesa/shader/lex.yy.c
src/mesa/shader/program_lexer.l
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Anything that matched IDENTIFIER was strdup'ed and returned to the
parser. However, almost every case of IDENTIFIER in the parser just
dropped the returned string on the floor. Every swizzle string, every
option string, every use of a variable, etc. leaked memory.
Create a temporary buffer in the parser state (string_dumpster and
dumpster_size). Return strings from the lexer to the parser in the
buffer. Grow the buffer as needed. When the parser needs to keep a
string (i.e., delcaring a new variable), let it make a copy then.
The only leak that valgrind now detects is /occasionally/ the copy of
the program string in gl_program::String is leaked. I'm not seeing
how. :(
|
| |
| |
| |
| |
| | |
The program string is kept in the program object. On the second call
into glProgramStringARB the previous kept string would be leaked.
|
| | |
|
| |
| |
| |
| | |
A slightly modified version of a patch from Vinson Lee.
|
| | |
|
| |
| |
| |
| | |
A slightly modified version of a patch from Vinson Lee.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/mesa/drivers/dri/intel/intel_fbo.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.h
src/mesa/drivers/dri/intel/intel_tex_copy.c
src/mesa/drivers/dri/intel/intel_tex_image.c
|
| |
| |
| |
| |
| |
| |
| |
| | |
Array indexes are invalid when >= the maximum, but array sizes are
only in valid when > the maximum. This prevented programs from
declaring a single maximum size array.
See the piglit vp-max-array test.
|
|\|
| |
| |
| |
| |
| | |
git+ssh://[email protected]/git/mesa/mesa
regenerated lex.yy.c
|
| | |
|
| |
| |
| |
| | |
See bug 24531.
|
| |
| |
| |
| | |
This logs glUseProgram() calls to stderr.
|
| | |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| | |
Signed-off-by: Nicolai Hähnle <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
src/gallium/auxiliary/util/u_cpu_detect.c
|
| | |
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|\| |
|
| |
| |
| |
| |
| | |
lim x->0 log(x) = -inf so -FLT_MAX is a better approximation than 0
for LG2(0).
|
| | |
|
| |
| |
| |
| |
| |
| | |
Since sqrt() is basically implemented in terms of RSQ/RCP we'll do a
divide by zero if x=0 and wind up with unpredictable results.
Now use CMP instruction to test for x<=0 and return zero in that case.
|
| | |
|
| |
| |
| |
| |
| | |
These options can be used to force vertex/fragment shaders to be no-op
shaders (actually, simple pass-through shaders). For debug/test purposes.
|
| |
| |
| |
| | |
For debug/test purposes.
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
src/mesa/shader/program_parse.tab.c
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/mesa/shader/lex.yy.c
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.tab.h
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conditional write masks and the condition-code based KIL instruction
are all supported. The specific behavior of KIL in the following
shader may or may not match the behavior of other implementations:
!!ARBfp1.0
TEMP GT;
MOVC GT, fragment.texcoord[0];
KIL GT.x;
END
Should be it interpreted as 'KIL srcReg' or as 'KIL ccTest'? The
current parser will interpret it as 'KIL srcReg'.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The lexer will return IDENTIFIER only when the name does not have an
associated symbol. Otherwise USED_IDENTIFIER is returned.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adds support for declaring TEMP and OUTPUT variables as 'LONG' or
'SHORT' precision. The precision specifiers are parsed, but they are
currently ignored. Some support for this may be added in the future,
but neither Intel hardware nor, as far as I'm aware, Radeon hardware
support multiple precisions.
Also adds support for instruction precision ('X', 'H', and 'R')
suffixes and instruction condition code output ('C') suffix. This
results in a fairly major change to the lexer. Instructions are
matched with all the possible suffix strings. The suffix string are
then carved off by a context (i.e., which program mode and options are
set) aware parser that converts the suffixes to bits in
prog_instruction.
This could have been handled in the same way _SAT was originally
handled in the lexer, but it would have resulted in a very large lexer
with lots of opportunity for cut-and-paste errors.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The new constructor copies fields from the prog_instruction that the
parser expects the lexer to set.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ARBfp requires scalar constants have a '.x' suffix, but NVfp_option
does not. This shows up with instructions that require a scalar
parameter (e.g., COS).
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | | |
Conflicts:
src/mesa/drivers/dri/intel/intel_clear.c
|
| | | | |
|
| | | | |
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/mesa/vbo/vbo_exec_array.c
|