| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
This fixes swizzled conditional expressions such "(b ? p : q).x"
|
|
|
|
|
|
|
| |
This fixes the case of "infinitely" nested swizzles such as EXPR.wzyx.yxwz.xxyz
This doesn't appear in typical shaders but with function inlining and the
compiler's internal use of swizzles it can happen.
New glean glsl1 test case added for this.
|
|
|
|
| |
New gl_texgen struct allows quite a bit of code reduction.
|
|
|
|
|
|
| |
Such TEX instructions will have the TexShadow flag set.
The gl_program::ShadowSamplers field is now set in the linker. We missed
that before.
|
|
|
|
|
| |
If the instruction is TEX/TXP/TXL/etc the TexShadow field will be true if
the instruction is a texture fetch with shadow compare.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move the is_boolean/integer_type() calls out of the loops.
Move the is_sampler_type() function near the bool/int functions.
Add a bunch of comments.
|
|
|
|
| |
We were off by one when checking for too many uniform values.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the vertex shader writes to a varying array with a variable index,
mark all the elements of that array as being written.
For example, if the vertex shader does:
for (i = 0; i < 4; i++)
gl_TexCoord[i] = expr;
Mark all texcoord outputs as being written, not just the first.
Linking will fail if a fragment shader tries to read an input that's not
written by the vertex shader. Before this fix, this linker test could fail.
|
| |
|
|
|
|
|
|
|
|
| |
Old limit was 256. Note that no arrays are declared to this size.
The only place we have to be careful about raising this limit is the
prog_src/dst_register Index bitfields. These have been bumped up too.
Added assertions to check we don't exceed the bitfield in the future too.
|
|
|
|
| |
This new issue was exposed by commit 6eabfc27f19a10dfc2663e99f9560966ba1ff697
|
| |
|
|
|
|
|
| |
This fixes a bug found with swizzled array indexes such as in "array[index.z]"
where "index" is an ivec4.
|
|
|
|
| |
Not all cases were handled before.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: the default value for EmitCondCodes is FALSE. This means the GLSL
compiler will emit code like this:
SEQ TEMP[0].x, A, B;
IF TEMP[0].x;
...
ENDIF
But if EmitCondCodes is TRUE, condition codes will be used instead:
SEQ.C TEMP[0].x, A, B;
IF (NE.xxxx);
...
ENDIF
|
| |
|
|
|
|
|
|
|
| |
Arrays of sampler vars haven't been tested much and might actually be broken.
Will need to be revisited someday.
Another fix for bug 20056.
|
|
|
|
|
|
|
| |
location = -1 is silently ignored, but other negative values should raise
an error.
Another fix for bug 20056.
|
|
|
|
| |
intermediate array
|
|
|
|
|
|
|
| |
If too many array elements are specified, they're to be silently ignored (don't
raise a GL error).
Fixes another issue in bug 20056.
|
|
|
|
| |
Fixes one of the issues in bug 20056.
|
|
|
|
| |
snprint symbol does not exist in Windows.
|
|
|
|
|
|
|
|
|
| |
(cherry picked from commit f7d80aa00611917bc8ce637136d982b151b8f44f)
This also involved adding the new MSAA fields to driCreateConfigs().
Also, re-add prog_instructions->Sampler field for i965 driver. Will
have to revisit that.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Merge commit 'origin/gallium-0.2' into gallium-master-merge
Conflicts:
Makefile
docs/relnotes-7.4.html
docs/relnotes.html
src/mesa/drivers/dri/i965/brw_wm.h
src/mesa/main/imports.c
src/mesa/main/mtypes.h
src/mesa/main/texcompress.c
src/mesa/main/texenvprogram.c
src/mesa/main/version.h
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_save_draw.c
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
windows/VC8/mesa/osmesa/osmesa.vcproj
windows/VC8/progs/demos/gears.vcproj
windows/VC8/progs/progs.sln
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/mesa/shader/slang/slang_compile.c
|
| | | | |
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
docs/install.html
docs/relnotes-7.3.html
src/mesa/shader/slang/slang_codegen.c
src/mesa/shader/slang/slang_compile.c
src/mesa/shader/slang/slang_emit.c
src/mesa/shader/slang/slang_preprocess.c
src/mesa/shader/slang/slang_preprocess.h
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These functions need to return the final computed value.
Now expressions such as a = (b += c) work properly.
Also, no need to use __asm intrinsics in these functions. The resulting
code is the same when using ordinary arithmetic operators and is more legible.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Now the #extension directives can be handled properly.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
gl_FragData[]
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add a "max complexity" heuristic to allow unrolling long loops with small
bodies and short loops with large bodies.
The loop unroll limits may need further tweaking...
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Loops such as this will be unrolled:
for (i = 0; i < 4; ++i) {
body;
}
where 'body' isn't too large.
This also helps to fix the issue reported in bug #19190. The problem there
is indexing vector types with a variable index. For example:
vec4 v;
v[2] = 1.0; // equivalent to v.z = 1.0
v[i] = 2.0; // variable index into vector!!
Since the for-i loop can be unrolled, we can avoid the problems associated
with variable indexing into a vector (at least in this case).
|
| | | | |
| | | | |
| | | | |
| | | | | |
(cherry picked from commit 3740a06e28f4cd09e2a3dce2da60320aa9304df1)
|
| | | | |
| | | | |
| | | | |
| | | | | |
On Windows snprintf is renamed as _snprintf.
|
| | | | | |
|