Commit Graph

36015 Commits

Author SHA1 Message Date
Tom Stellard
09c8fa570e r300/compiler: Always unroll loops when doing loop emulation. 2010-08-03 20:17:00 -07:00
Tom Stellard
2824d5687a r300/compiler: r500 hw support for break and continue in loops.
The BGNLOOP and ENDLOOP instructions are now being used correctly, which
makes break and continue possible.  The deadcode pass has been modified to
handle breaks, and the compiler is more careful about which loops are
unrolled.
2010-08-03 19:11:08 -07:00
Tom Stellard
9dcc500666 r300/compiler: KILP may not always be inside an IF statement. 2010-08-03 19:11:08 -07:00
Tom Stellard
680f486ffd r300/compiler: Don't unroll loops with continue or break. 2010-08-03 19:11:08 -07:00
Vinson Lee
a3ff6c2697 st/mesa: Clean up header file inclusion in st_cache.h. 2010-08-03 17:55:53 -07:00
Vinson Lee
279926859e st/mesa: Add forward declarations in st_atom_shader.h. 2010-08-03 17:35:29 -07:00
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
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
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
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
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
Jerome Glisse
3d39f56a87 Revert "radeon: Add DRI2 flush extension to so we synchronize properly."
This reverts commit 8446f257b3.
2010-08-02 13:28:15 -04:00
Marek Olšák
afa925066c r300g: fix hardlock when using more than one stuffed sprite coords
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.
2010-08-02 17:26:23 +02:00
Mario Kleiner
8446f257b3 radeon: Add DRI2 flush extension to so we synchronize properly.
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>
2010-08-02 10:43:51 -04:00
Kristian Høgsberg
1f1928db00 glx: Drop _Xglobal_lock while we create and initialize glx display 2010-08-02 09:53:44 -04:00
Andre Maasikas
d6a5f94ea4 r600: fix sin,cos functions on r600
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
2010-08-02 15:11:22 +03:00
Michal Krol
c1f33097f4 util: Fix unpacking of R8G8Bx_SNORM format.
Apparently, we must always use integers to perform calculations,
otherwise the results won't match D3D's CxV8U8 definition.
2010-08-02 14:06:37 +02:00
Dave Airlie
4af5f11c32 r600g: add stencil op/func translation 2010-08-02 16:27:15 +10:00
Dave Airlie
3f4ec394b0 r600g: initial alpha test state 2010-08-02 16:27:15 +10:00
Dave Airlie
7bcd39ce50 r600g: add initial blend state.
migrates cb_cntl to be regenerated
2010-08-02 16:27:01 +10:00
Dave Airlie
01984cf34f r600g: set correct tex coord type for rect textures. 2010-08-02 14:56:20 +10:00
Dave Airlie
919750a557 r600g: make r600_db_format static.
this isn't used anywhere else yet.
2010-08-02 14:31:49 +10:00
Dave Airlie
aef4500ca4 draw: fix warning in sse code.
Not sure if this will actually fix the issue, but it fixes the warning.
2010-08-02 08:57:14 +10:00
Marek Olšák
a87cedbde0 r300g: fix microtiling on RS6xx
Getting tiling right has always been tricky.
There are so many subtle details...
2010-08-01 22:16:57 +02:00
Vinson Lee
9846b06271 mesa: Remove inclusion of compiler.h from mtypes.h.
mtypes.h does not use any symbols from compiler.h.

Also add the required headers for files that depended on symbols from
compiler.h but were indirectly including compiler.h through mtypes.h.
2010-07-31 23:04:41 -07:00
Vinson Lee
e7242b6e8a mesa: Remove unnecessary header from mm.h. 2010-07-31 20:53:42 -07:00
Vinson Lee
ca2ceca5b1 mesa: Add headers containing sybmols used by mm.c. 2010-07-31 20:51:13 -07:00
Vinson Lee
1d74a1674c r600g: Remove unnecessary header. 2010-07-31 19:23:14 -07:00