Age | Commit message (Collapse) | Author |
|
Make sure LIT fills all slot for instruction (can't do W instruction
without having the Z slot filled with at least a NOP).
ALU instruction can't access more than 4 constant, move constant to
temporary reg if we reach the limit.
Fix ALU block splitting, only split ALU after ALU with last instruction
bit sets.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29372
|
|
|
|
Include glheader.h for GLenum symbol.
|
|
Include compiler.h for CONST symbol.
Remove config.h as m_xform.h uses no additional symbols from config.h.
|
|
m_translate.h does not use any additional symbols added by config.h.
|
|
|
|
texgen.h doesn't use any symbols additionally added by mtypes.h.
|
|
texcompress_fxt1.h doesn't use any additional symbols added by mtypes.h.
|
|
syncobj.h doesn't use any additional symbols that is added by context.h.
|
|
I take back the bad things I've said about the signed/unsigned
comparison warning now.
|
|
Fixes:
glsl-uniform-initializer-1
glsl-uniform-initializer-2
glsl-uniform-initializer-3
glsl-uniform-initializer-4
glsl1-GLSL 1.20 uniform array constructor
|
|
We were happily optimizing away the body of
glsl-uniform-initializer-* to never use the uniforms.
|
|
|
|
Fixes glsl-uniform-struct.
|
|
This helps makes sure we don't miss any new fields, and makes totally
uninitialized src_regs be PROGRAM_UNDEFINED.
|
|
This is a zero-ing function, (like calloc), to avoid bugs due to
accessing uninitialized values. Thanks to valgrind for noticing the
use of uninitialized values.
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
|
|
The symbol_header structure that tracks symbols with a particular name
may have a different (longer) life time than the symbols it tracks.
Not keeping a local copy of the name can lead to use-after-free
errors. For example, the following sequence would trigger such an
error:
char *copy = strdup(name);
_mesa_symbol_table_push_scope(st);
_mesa_symbol_table_add_symbol(st, 0, name, NULL);
_mesa_symbol_table_pop_scope(st);
free(name);
_mesa_symbol_table_find_symbol(st, 0, copy);
With this change, the symbol table keeps a local copy of the name that
has the same life time as the symbol_header for that name. This
resolves some use-after-free errors with built-in functions in the
GLSL compiler.
|
|
|
|
|
|
Fixes glsl-fs-tan-1.
|
|
|
|
We use vector ir_unop_not to implement builtin not(), and that seems fine.
|
|
Fixes glsl-floating-constant-120.
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Fixes intermittent failure in glsl-arb-fragment-coord-conventions.
|
|
The non-named parameter grammar understandably doesn't set the
identifier field. Fixes intermittent failures about void main(void)
{} having a named void parameter.
|
|
|
|
|
|
|
|
The non-array path of glsl_parser.ypp wasn't setting is_array to false.
|
|
When a DRI2 swap buffer is pending we need to make sure we
have the flush extension so radeon doesn't resume rendering to
or reading from the not yet blitted front buffer.
This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=28341
https://bugs.freedesktop.org/show_bug.cgi?id=28410
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
|
|
This reverts commit 8446f257b3e3ca4a3eb2c79bc357e46343e04e87.
|
|
If texture coordinates come from the vertex shader, there are always
4 components in the rasterizer input packet, but if the coordinates
are stuffed (like for point sprites), there are only 2 or 3 components
(based on GB_ENABLE) and if we rasterize more, it locks up.
|
|
When DRI2 swap buffer is pending (copy buffer not pageflipping)
we need to make sure we have the flush extension so radeon doesn't
resume rendering on the not yet blitted front buffer.
Modified version of Jerome's patch to add flush extension
in the correct place.
This prepares a possible fix for:
https://bugs.freedesktop.org/show_bug.cgi?id=28341
https://bugs.freedesktop.org/show_bug.cgi?id=28410
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
|
|
|
|
r600 doesnt need the same normalization as r700 - instead it requires
range to be truncated to -pi..pi
I left the range trunc also effective on r700 althouch according the docs
it has sufficent range (-512*PI, +512*PI). The instructions seem
to be used not too often to cause perf loss because of this
Based on patches and testing by Conn Clark and Alain Perrot
|
|
Apparently, we must always use integers to perform calculations,
otherwise the results won't match D3D's CxV8U8 definition.
|
|
|
|
|
|
migrates cb_cntl to be regenerated
|
|
|
|
this isn't used anywhere else yet.
|
|
Fixes glsl-mat-110.
|
|
Not sure if this will actually fix the issue, but it fixes the warning.
|
|
Getting tiling right has always been tricky.
There are so many subtle details...
|
|
This is the option that dumps shader source to files in the current
directory.
|
|
gcc and mesa master agree that this is OK.
|