Commit graph

39204 commits

Author SHA1 Message Date
Brian Paul
0ab166d556 mesa: Bump the number of bits in the register index.
More than 1023 temporaries were being used for a Cinebench shader before
doing temporary optimization, causing the index value to wrap around to
-1024.
(cherry picked from commit a9fa0f3a2f)
2011-01-04 11:10:19 -07:00
Kenneth Graunke
b50658c804 i965: Internally enable GL_NV_blend_square on ES2.
Hopefully should fix bug #32520.
(cherry picked from commit 6bb1e4541e)
2011-01-04 09:50:14 -08:00
Kenneth Graunke
3c8dd6a8de Fix build on systems where "python" is python 3.
First, it changes autoconf to use a "python2" binary when available,
rather than plain "python" (which is ambiguous).  Secondly, it changes
the Makefiles to use $(PYTHON) $(PYTHON_FLAGS) rather than calling
python directly.

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Matthew William Cox <matt@mattcox.ca>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 3acc826520)
2011-01-04 09:50:14 -08:00
Marek Olšák
801e26a02a mesa: fix texel store functions for some float formats
These are copy-paste errors obviously.
(cherry picked from commit bf7b6f60ae)
2011-01-04 09:50:14 -08:00
Ian Romanick
247774085c Refresh autogenerated file builtin_function.cpp.
See also a954dbeb.
2011-01-04 09:50:14 -08:00
Kenneth Graunke
d5d573b592 glsl/builtins: Compute the correct value for smoothstep(vec, vec, vec).
These mistakenly computed 't' instead of t * t * (3.0 - 2.0 * t).

Also, properly vectorize the smoothstep(float, float, vec) variants.

NOTE: This is a candidate for the 7.9 and 7.10 branches.
(cherry picked from commit d7423a6531)
2011-01-04 09:50:14 -08:00
Brian Paul
54c2846f23 st/mesa: fix renderbuffer pointer check in st_Clear()
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=30694

NOTE: This is a candidate for the 7.9 and 7.10 branches.
(cherry picked from commit efbd33aff9)
2011-01-04 08:00:25 -07:00
Brian Paul
8941450010 tdfx: s/Format/_BaseFormat/
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31560
(cherry picked from commit d18df9e336)
2011-01-04 07:53:44 -07:00
Brian Paul
0ff45dd5d7 mesa: no-op glBufferSubData() on size==0
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31439

NOTE: this is a candidate for the 7.9 branch
(cherry picked from commit 6e2e136428)
2011-01-03 17:05:24 -08:00
Kenneth Graunke
4e7cdca57a Remove OES_compressed_paletted_texture from the ES2 extension list.
We don't support it.
(cherry picked from commit d0f8eea9a0)
2011-01-03 17:05:24 -08:00
Brian Paul
69cc356832 glsl: new glsl_strtod() wrapper to fix decimal point interpretation
We always want to use '.' as the decimal point.

See http://bugs.freedesktop.org/show_bug.cgi?id=24531

NOTE: this is a candidate for the 7.10 branch.

(cherry picked from commit bb10e081c8)
2011-01-03 17:05:24 -08:00
Ian Romanick
0d98ceb4bf ir_to_mesa: Don't generate swizzles for record derefs of non-scalar/vectors
This is the same as what the array dereference handler does.

Fixes piglit test glsl-link-struct-array (bugzilla #31648).

NOTE: This is a candidate for the 7.9 and 7.10 branches.
(cherry picked from commit 2d577ee730)
2011-01-03 17:05:24 -08:00
Ian Romanick
40390b80e9 linker: Allow built-in arrays to have different sizes between shader stages
Fixes pitlit test glsl-link-varying-TexCoord (bugzilla #31650).
(cherry picked from commit cb2b547a47)
2011-01-03 17:05:24 -08:00
Henri Verbeet
7ffeced927 st/mesa: Handle wrapped depth buffers in st_copy_texsubimage().
(cherry picked from commit 59051ad443)
2010-12-31 07:51:53 +01:00
Henri Verbeet
b8c16ee7b1 r600: Evergreen has two extra frac_bits for the sampler LOD state.
Note: this is a candidate for the 7.9 branch.
(cherry picked from commit 228d0d1153)
2010-12-31 07:51:49 +01:00
Brian Paul
f5435ec3a9 st/mesa: fix mipmap generation bug
In st_finalize_texture() we were looking at the st_texture_object::
lastLevel field instead of the pipe_resource::last_level field to
determine which resource to store the mipmap in.

Then, in st_generate_mipmap() we need to call st_finalize_texture() to
make sure the destination resource is properly allocated.

These changes fix the broken piglit fbo-generatemipmap-formats test.
(cherry picked from commit cae2bb76c1)
2010-12-30 17:40:07 +01:00
richard
a3740ba31e r600c : inline vertex format is not updated in an app, switch to use vfetch constants. For the 7.9 and 7.10 branches as well. 2010-12-29 10:54:44 -05:00
Alex Deucher
166da97889 r600c: fix some opcodes on evergreen
There were a few places where we were using the wrong opcodes
on evergreen.  arl still needs to be fixed on evergreen; see
r600g for reference.

NOTE: This is a candidate for the 7.9 branch.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-12-29 10:54:14 -05:00
Luca Barbieri
2fb170c90f glsl: Unroll loops with conditional breaks anywhere (not just the end)
Currently we only unroll loops with conditional breaks at the end, which is
the form that lower_jumps generates.

However, if breaks are not lowered, they tend to appear at the beginning, so
add support for a conditional break anywhere.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 0e50c21e24)
2010-12-27 13:12:20 -08:00
Kenneth Graunke
4f2f3440d0 glsl: Consider the "else" branch when looking for loop breaks.
Found this bug by code inspection.  Based off the comments just before
this code, the intent is to find whether the break exists in the "then"
branch or the "else" branch.  However, the code actually looked at the
last instruction in the "then" branch twice.
(cherry picked from commit 13c45c590b)
2010-12-27 13:12:12 -08:00
Kenneth Graunke
760288bec1 glsl: Clean up code by adding a new is_break() function.
(cherry picked from commit 528fa8ce32)
2010-12-27 13:12:04 -08:00
Eric Anholt
84e7dd0114 glsl: Correct the marking of InputsRead/OutputsWritten on in/out matrices.
If you used a constant array index to access the matrix, we'd flag a
bunch of wrong inputs/outputs as being used because the index was
multiplied by matrix columns and the actual used index was left out.

Fixes glsl-mat-attribute.
(cherry picked from commit b13a2e640f)
2010-12-27 13:11:54 -08:00
Fabian Bieler
9d1c6dd79b glsl: fix lowering conditional returns in subroutines
this fix applies to the lower_sub_return 'branch' of the lower_jumps pass

Fixes piglit tests glsl-functions-5 and glsl-functions-6.
(cherry picked from commit ef534f3838)
2010-12-27 13:11:26 -08:00
Chia-I Wu
47552b2c66 mesa: Do not advertise GL_OES_texture_3D.
GL_OES_texture_3D has a GLSL counterpart.  Since it is not implemented,
GL_OES_texture_3D should not be advertised.
(cherry picked from commit d2028ba339)
2010-12-27 13:11:26 -08:00
Ian Romanick
edfe057f94 linker: Fix regressions caused by previous commit
That's what I get for not running piglit before pushing.

Don't try to patch types of unsized arrays when linking fails.

Don't try to patch types of unsized arrays that are shared between
shader stages.
(cherry picked from commit 002cd2c8d4)
2010-12-27 13:11:26 -08:00
Ian Romanick
a4cda571f0 linker: Ensure that unsized arrays have a size after linking
Fixes piglit test case glsl-vec-array (bugzilla #31908).

NOTE: This bug does not affect 7.9, but I think this patch is a
candiate for the 7.9 branch anyway.
(cherry picked from commit 6f53921c4b)
2010-12-27 13:09:26 -08:00
Eric Anholt
ecb68d51aa i965: Correct the dp_read message descriptor setup on g4x.
It's mostly like gen4 message descriptor setup, except that the sizes
of type/control changed to be like gen5.  Fixes 21 piglit cases on
gm45, including the regressions in bug #32311 from increased VS
constant buffer usage.
(cherry picked from commit 5dc53444c8)
2010-12-23 14:27:11 -08:00
Marek Olšák
be1f4cfd96 r300g: finally fix the texture corruption on r3xx-r4xx
Even though a bound texture stays bound when calling set_fragment_sampler_views,
it must be assigned a new cache region depending on the occupancy of other
texture units.

This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=28800

Thanks to Álmos <aaalmosss@gmail.com> for finding the bug in the code.

NOTE: This is a candidate for both the 7.9 and 7.10 branches.
(cherry picked from commit daffaca53e)

Conflicts:

	src/gallium/drivers/r300/r300_state.c
2010-12-18 10:17:52 +01:00
Ian Romanick
7b6b66d617 glsl: Inherrit type of declared variable from initializer after processing assignment
do_assignment may apply implicit conversions to coerce the base type
of initializer to the base type of the variable being declared.  Fixes
piglit test glsl-implicit-conversion-02 (bugzilla #32287).  This
probably also fixes bugzilla #32273.

NOTE: This is a candidate for the 7.9 branch and the 7.10 branch.
(cherry picked from commit d7f27e2e76)

Conflicts:

	src/glsl/ast_to_hir.cpp
2010-12-17 13:51:46 -08:00
Ian Romanick
2b4277dcf3 glsl: Inherrit type of declared variable from initializer
Types of declared variables and their initializer must match excatly
except for unsized arrays.  Previously the type inherritance for
unsized arrays happened implicitly in the emitted assignment.
However, this assignment is never emitted for uniforms.  Now that type
is explicitly copied unconditionally.

Fixes piglit test array-compare-04.vert (bugzilla #32035) and
glsl-array-uniform-length (bugzilla #31985).

NOTE: This is a candidate for the 7.9 branch.
(cherry picked from commit b0fc5103cb)
2010-12-17 13:51:46 -08:00
Ian Romanick
585fa612c9 glcpp: Commit changes in generated files cause by previous commit 2010-12-17 13:51:45 -08:00
Kenneth Graunke
b8e73354d9 glcpp: Don't emit SPACE tokens in conditional_tokens production.
Fixes glslparsertest defined-01.vert.

Reported-by: José Fonseca <jfonseca@vmware.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Carl Worth <cworth@cworth.org>
(cherry picked from commit 800eed6765)
2010-12-17 13:14:25 -08:00
Eric Anholt
154d0a3e7e mesa: Add getters for ARB_copy_buffer's attachment points.
Fixes more complaints by oglconform.
(cherry picked from commit 43491adc44)
2010-12-17 12:58:15 -08:00
Eric Anholt
7c0ff4a5df mesa: Add getters for the rest of the supported draw buffers.
MAX_DRAW_BUFFERS is 8, so allow all 8 GL_DRAW_BUFFER# to be retrieved.
Fixes complaints by oglconform.
(cherry picked from commit 7cba339375)
2010-12-17 12:57:57 -08:00
Eric Anholt
d192179605 glsl: Fix flipped return of has_value() for array constants.
Fixes glsl-array-uniform.
(cherry picked from commit b381eff141)
2010-12-17 12:57:35 -08:00
Chad Versace
b2cd388b79 glsl: Fix linker bug in cross_validate_globals()
Cause linking to fail if a global has mismatching invariant qualifiers.

See https://bugs.freedesktop.org/show_bug.cgi?id=30261
(cherry picked from commit 7528f143df)
2010-12-17 12:56:40 -08:00
Aras Pranckevicius
bb2cd98e51 glsl: fix matrix type check in ir_algebraic
Fixes glsl-mat-mul-1.
(cherry picked from commit 4ce084c707)
2010-12-16 17:11:50 -08:00
Ian Romanick
d9d4f22e65 glsl: Ensure that equality comparisons don't return a NULL IR tree
This fixes bugzilla #32035 and piglit test case array-compare-01 and
array-compare-02.

NOTE: This is a candidate for the 7.9 branch.
(cherry picked from commit 6d36be508f)
2010-12-16 17:11:50 -08:00
Eric Anholt
d347b90b94 glsl: Mark the array access for whole-array comparisons.
By not doing so, the uniform contents of
glsl-uniform-non-uniform-array-compare.shader_test was getting thrown
out since nobody was recorded as dereferencing the array.
(cherry picked from commit b4f585665c)
2010-12-16 17:11:50 -08:00
Eric Anholt
23a868930c glsl: Quiet unreachable no-return-from-function warning.
(cherry picked from commit d56c97413e)
2010-12-16 16:56:51 -08:00
Eric Anholt
1e88b3461a glsl: Fix structure and array comparisions.
We were trying to emit a single ir_expression to compare the whole
thing.  The backends (ir_to_mesa.cpp and brw_fs.cpp so far) expected
ir_binop_any_nequal or ir_binop_all_equal to apply to at most a vector
(with matrices broken down by the lowering pass).  Break them down to
a bunch of ORed or ANDed any_nequals/all_equals.

Fixes:
glsl-array-compare
glsl-array-compare-02
glsl-fs-struct-equal
glsl-fs-struct-notequal
Bug #31909
(cherry picked from commit ff79633d9f)
2010-12-16 16:56:51 -08:00
Eric Anholt
573c78803d glsl: Add a helper constructor for expressions that works out result type.
This doesn't cover all expressions or all operand types, but it will
complain if you overreach and it allows for much greater slack on the
programmer's part.
(cherry picked from commit 6b937465d4)

The new constructors required some changes because the
ir_quadop_vector changes were not cherry picked over from master.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-12-16 16:56:51 -08:00
Ian Romanick
5650cc462d glsl: Add unary ir_expression constructor
(cherry picked from commit 13f57d42b6)
2010-12-16 16:56:51 -08:00
Vinson Lee
54a596e34a glsl: Fix 'control reaches end of non-void function' warning.
Fix this GCC warning.
ir.cpp: In static member function
'static unsigned int ir_expression::get_num_operands(ir_expression_operation)':
ir.cpp:199: warning: control reaches end of non-void function
(cherry picked from commit 855c66bde7)
2010-12-16 16:56:51 -08:00
Kenneth Graunke
2127692542 glsl: Refactor get_num_operands.
This adds sentinel values to the ir_expression_operation enum type:
ir_last_unop, ir_last_binop, and ir_last_opcode.  They are set to the
previous one so they don't trigger "unhandled case in switch statement"
warnings, but should never be handled directly.

This allows us to remove the huge array of 1s and 2s in
ir_expression::get_num_operands().
(cherry picked from commit 007f488150)
2010-12-16 16:56:40 -08:00
Ian Romanick
0795cb71fc i915: Correctly generate unconditional KIL instructions
Fixes piglit test glsl-fs-discard-03.

NOTE: This is a candidate for the 7.9 branch.
(cherry picked from commit c92550be64)
2010-12-16 10:34:59 -08:00
Kenneth Graunke
cefccebd89 glsl: Remove "discard" support from lower_jumps.
The new lower_discard and opt_discard_simplification passes should
handle all the necessary transformations, so lower_jumps doesn't need to
support it.

Also, lower_jumps incorrectly handled conditional discards - it would
unconditionally truncate all code after the discard.  Rather than fixing
the bug, simply remove the code.

NOTE: This is a candidate for the 7.9 branch.
2010-12-16 10:34:59 -08:00
Ian Romanick
927c752dd6 glsl: Add a lowering pass to move discards out of if-statements.
This should allow lower_if_to_cond_assign to work in the presence of
discards, fixing bug #31690 and likely #31983.

NOTE: This is a candidate for the 7.9 branch.
(cherry picked from commit 940df10100)
2010-12-16 10:34:59 -08:00
Marek Olšák
0b4287a687 ir_to_mesa: Add support for conditional discards.
NOTE: This is a candidate for the 7.9 branch.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit ead2ea89f4)
2010-12-16 10:34:59 -08:00
Ian Romanick
69d19cb84b glsl: Add an optimization pass to simplify discards.
NOTE: This is a candidate for the 7.9 branch.
(cherry picked from commit 9a1d063c6d)
2010-12-16 10:34:59 -08:00