Commit graph

35332 commits

Author SHA1 Message Date
Dave Airlie
8bc5fe1ad6 r300g: disable multisample visuals until the state tracker bits catch up.
This stops us advertising lots of ms visuals we can't actually use.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-04 09:37:43 +10:00
Brian Paul
48268e0f2a draw: check for instance divisors in vcache_check_run()
When we have instance divisors we don't really know which vertex
elements we'll be fetching ahead of time.

This fixes a bug in instanced drawing which was exposed by the new
draw_vbo() code because of max_index not being ~0 as often as it used
to be.  The test for max_index >= DRAW_PIPE_MAX_VERTICES often hid
this problem before.
2010-08-03 16:37:58 -06:00
Brian Paul
e89e47e6d0 gallium/translate: make generic_run() and generic_run_elts() more alike
Plus more debug code and do clamping in generic_run().
2010-08-03 16:37:58 -06:00
Brian Paul
8c3cc83432 draw: added a comment 2010-08-03 16:37:58 -06:00
Brian Paul
0e7b53c75b draw: use instance divisor in draw_print_arrays() 2010-08-03 16:37:58 -06:00
Brian Paul
f94e7e25d1 draw: add assertion, rearrange debug code 2010-08-03 16:37:58 -06:00
Marek Olšák
afbf446de5 st/dri: fix crash when dri2_drawable_get_buffers fails
It's easily reproducible with Compiz with its Resize window mode
set to Normal (which is usually not the default mode).

https://bugs.freedesktop.org/show_bug.cgi?id=28658
https://bugs.freedesktop.org/show_bug.cgi?id=29303

This is actually a workaround to prevent Compiz crashes.
Instead, a completely white titlebar might show up during resizing
transparent windows (a rare case).

The underlying cause should be fixed by someone who has more knowledge
about the code. (dri2_drawable_get_buffers should not return NULL)

Acked-By: Jakob Bornecrantz <jakob@vmware.com>
2010-08-04 00:07:28 +02:00
Marek Olšák
0614006d09 mesa: increase the relative address offset limit to 4096 in ARB_vp/fp
Even though the spec says that the limits should be -64/+63, proprietary
drivers support much larger relative offsets and some applications do
depend on this non-standard behavior.

Also program_parse.tab.c has been regenerated.

This fixes the parser error:

  ARB_vp: error: relative address offset too large

See also: https://bugs.freedesktop.org/show_bug.cgi?id=28628

4096 * sizeof(vec4) is the maximum size of the constant buffer on NV50.
It is not supposed to be a definite hardware limit, it is for the parser
not to get in the way and let the underlying driver decide whether it can
run the shader or not.
2010-08-04 00:07:28 +02:00
Jerome Glisse
dd863bf5e7 r600g: add polygon offset support
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03 17:45:51 -04:00
Jerome Glisse
a0b3944c30 r600g: flush and resubmit if we reach limit
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03 17:02:48 -04:00
Jerome Glisse
3a8d4a8979 r600g: fix color target mask
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03 16:16:01 -04:00
Zack Rusin
6f9d3516a4 gallium/draw: forgot about PIPE_PRIM_LINE_STRIP_ADJACENCY 2010-08-03 16:02:09 -04:00
Zack Rusin
1fd84b10f2 gallium/util: add extra primitives to the trimmer 2010-08-03 15:56:49 -04:00
Jerome Glisse
8f6341d421 r600g: fix stencil
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03 15:49:21 -04:00
Eric Anholt
c22dee7216 glsl2: Fix ir_validate validating null variable names.
An unnamed variable in a prototype will have a NULL ->name, so don't
worry about storage then.

Fixes:
CorrectFunction1.vert
CorrectParse1.frag
2010-08-03 11:47:02 -07:00
Eric Anholt
900ab2f564 glsl2: No need to strdup the name passed in to ir_variable constructor.
ir_variable always strdups the incoming name so that it matches the
lifetime of the ir_variable.
2010-08-03 11:40:26 -07:00
Jerome Glisse
7e42b7e5d2 r600g: fix LIT + fix multiple constant one ALU + fix ALU block splitting
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>
2010-08-03 14:31:49 -04:00
Marek Olšák
57438adf32 r300g: handle polygon offset correctly
https://bugs.freedesktop.org/show_bug.cgi?id=29372
2010-08-03 15:53:26 +02:00
Vinson Lee
9c6b5a4407 st/mesa: Add forward declarations in st_atom_constbuf.h. 2010-08-03 01:20:13 -07:00
Vinson Lee
df66c641e3 st/mesa: Include glheader.h in st_atom.h.
Include glheader.h for GLenum symbol.
2010-08-03 01:14:37 -07:00
Vinson Lee
816ad9bc23 mesa: Clean up header file inclusion in m_xform.h.
Include compiler.h for CONST symbol.

Remove config.h as m_xform.h uses no additional symbols from config.h.
2010-08-03 00:51:51 -07:00
Vinson Lee
19f7db9c9c mesa: Reduce header file inclusion in m_translate.h.
m_translate.h does not use any additional symbols added by config.h.
2010-08-03 00:41:19 -07:00
Vinson Lee
29495bbb84 mesa: Include missing header in m_matrix.h. 2010-08-03 00:33:04 -07:00
Vinson Lee
d356ad349b mesa: Reduce header file inclusion in texgen.h.
texgen.h doesn't use any symbols additionally added by mtypes.h.
2010-08-03 00:19:26 -07:00
Vinson Lee
b5ce878fa7 mesa: Reduce header file inclusion in texcompress_fxt1.h.
texcompress_fxt1.h doesn't use any additional symbols added by mtypes.h.
2010-08-03 00:04:14 -07:00
Vinson Lee
f7d29d5881 mesa: Reduce header file inclusion in syncobj.h.
syncobj.h doesn't use any additional symbols that is added by context.h.
2010-08-02 23:53:23 -07:00
Eric Anholt
c8babd5d9b glsl2: Fix typo in clamp() constant builtin using uint instead of int.
I take back the bad things I've said about the signed/unsigned
comparison warning now.
2010-08-02 17:50:20 -07:00
Eric Anholt
47f305a4fc ir_to_mesa: Add support for 1.20 uniform initializers.
Fixes:
glsl-uniform-initializer-1
glsl-uniform-initializer-2
glsl-uniform-initializer-3
glsl-uniform-initializer-4
glsl1-GLSL 1.20 uniform array constructor
2010-08-02 17:47:35 -07:00
Eric Anholt
5704ed27dd glsl2: Don't consider uniform initializers as constant expressions.
We were happily optimizing away the body of
glsl-uniform-initializer-* to never use the uniforms.
2010-08-02 17:47:35 -07:00
Eric Anholt
b10bb527ea Initialize a couple of HasIndex2 fields on Mesa IR src regs. 2010-08-02 17:47:35 -07:00
Eric Anholt
26675e37bc ir_to_mesa: Support for struct uniforms.
Fixes glsl-uniform-struct.
2010-08-02 17:47:35 -07:00
Eric Anholt
9c02412cdc ir_to_mesa: Add a constructor for ir_to_mesa_src_reg.
This helps makes sure we don't miss any new fields, and makes totally
uninitialized src_regs be PROGRAM_UNDEFINED.
2010-08-02 17:47:35 -07:00
Carl Worth
1575070bfe glsl2: Use talloc_zero_size instead of talloc_size to allocate ast_node objects.
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.
2010-08-02 17:27:56 -07:00
Jerome Glisse
f031817450 r600g: split alu block to conform to limit + RCP opcode
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02 17:41:52 -04:00
Ian Romanick
42f3e7b6d7 glsl_type: Use string key for array type hash 2010-08-02 13:53:33 -07:00
Ian Romanick
955ceef47f Keep a local copy of the symbol name in the symbol table
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.
2010-08-02 13:53:32 -07:00
Ian Romanick
7ffe40532f glsl2: Clean-up two 'unused variable' warnings 2010-08-02 13:53:32 -07:00
Ian Romanick
cf41c8a0d8 glsl2: Make glsl_types::ctx private again 2010-08-02 13:53:32 -07:00
Eric Anholt
eb7e120f0f glsl2: Fix expression type in builtin tan().
Fixes glsl-fs-tan-1.
2010-08-02 12:33:18 -07:00
Eric Anholt
ee7666b5ac glsl2: Add validation that talloc ownership of ir_* names is right. 2010-08-02 12:08:52 -07:00
Eric Anholt
e75dbf66d0 glsl2: Fix validation for ir_unop_not.
We use vector ir_unop_not to implement builtin not(), and that seems fine.
2010-08-02 12:06:34 -07:00
Eric Anholt
47f3f22311 glsl2: Add support for floating constants like "1f".
Fixes glsl-floating-constant-120.
2010-08-02 11:26:43 -07:00
Jerome Glisse
313df41562 r600g: add autogenerated reg definition + debug print cleanup
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02 14:22:58 -04:00
Eric Anholt
960ba0014a glsl2: Initialize the ARB_fcc fields of ir_variable.
Fixes intermittent failure in glsl-arb-fragment-coord-conventions.
2010-08-02 11:20:32 -07:00
Eric Anholt
b8db38e1c4 glsl2: Also initialize the identifier field of parameter_declarator.
The non-named parameter grammar understandably doesn't set the
identifier field.  Fixes intermittent failures about void main(void)
{} having a named void parameter.
2010-08-02 11:04:54 -07:00
Eric Anholt
004e924014 glsl2: Fix spelling of "precision" in error output. 2010-08-02 10:59:46 -07:00
Eric Anholt
f311d8e9e9 glsl2: Don't add mesa/program/ as an include dir. Let includes say program/. 2010-08-02 10:59:46 -07:00
Aras Pranckevicius
31747155ea glsl2: Give the path within src/mesa/ for headers instead of relying on -I. 2010-08-02 10:59:46 -07:00
Aras Pranckevicius
b35703df10 glsl2: initialize is_array and array_size of ast_parameter_declarator
The non-array path of glsl_parser.ypp wasn't setting is_array to false.
2010-08-02 10:59:42 -07:00
Mario Kleiner
646d2e9fbc radeon: Add DRI2 flush extension support, so we synchronize properly.
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>
2010-08-02 13:29:44 -04:00