Commit graph

9942 commits

Author SHA1 Message Date
Dave Airlie
41f9e60bb3 r300g: disable hiz on rv530 for now.
On my rv530 at least HiZ is causing rendering issues in gears.
2010-08-05 20:32:06 +10:00
Dave Airlie
6eb2a7fbaf r300g: implement hyper-z support. (v4)
This implements fast Z clear, Z compression, and HiZ support for r300->r500
GPUs.

It also allows cbzb clears when fast Z clears are being used for the ZB.

It requires a kernel with hyper-z support.

Thanks to Marek Olšák <maraeo@gmail.com>, who started this off, and Alex Deucher at AMD for providing lots of hints.

v2:
squashed zmask ram size fix]
squashed r300g/blitter: fix Z readback when compressed]

v3:
rebase around texture changes in master - .1 fix more bits

v4:
migrated to using u_mm in r300_texture to manage hiz/zmask rams consistently
disabled HiZ when using OQ
flush z-cache before turning hyper-z off
update hyper-z state on dsa state change
store depthclearvalue across cbzb clears and replace it afterwards.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-05 20:32:05 +10:00
Keith Whitwell
ccbd9ae7cc docs: clarify point sprite discussion
Plagiarizes email explanation from Roland.
2010-08-05 11:09:14 +01:00
Jerome Glisse
12dac449fb r600g: force flush on map as temporary fix to readpixel
Should allow more piglit test to pass. Need to plugin
proper flushing.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04 16:29:56 -04:00
Jerome Glisse
9a78e790dc r600g: always perform texture perspective divide + fix blending
quake3 engine seems to run fine at this point (ioquake)

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04 16:11:39 -04:00
Vinson Lee
988e86762f draw: Fix return type of draw_translate_vinfo_size.
Fixes typo from commit b609cfc7c9.
2010-08-04 12:55:21 -07:00
Chia-I Wu
5c2f01bbb0 draw: Fix the edge flags of flatshade_first polygons.
This bug can be triggered by rendering polygons with

   glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT);
   glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
2010-08-04 14:03:05 +08: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
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
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
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
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
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
1d74a1674c r600g: Remove unnecessary header. 2010-07-31 19:23:14 -07:00
Vinson Lee
5fa1af0905 r600g: Remove unnecessary header. 2010-07-31 14:56:53 -07:00
Chia-I Wu
6c7e0b95a4 egl: Add checks for EGL_MESA_screen_surface.
This allows Mesa EGL to be compiled with eglext.h that does not define
EGL_MESA_screen_surface.
2010-07-31 17:49:32 +08:00
Vinson Lee
ca0b0899d8 st/dri: Remove unnecessary headers. 2010-07-31 00:41:43 -07:00
Jerome Glisse
094d66f459 r600g: add KIL opcode support
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-30 18:05:07 -04:00
George Sapountzis
873ddf547d st/dri: move backend hooks to appropriate object 2010-07-30 23:43:26 +03:00
George Sapountzis
a30b966f83 st/dri: drop dri1_helper 2010-07-30 23:43:26 +03:00
George Sapountzis
2e4ad14a52 st/dri: mv driDriverAPI to backends 2010-07-30 23:43:26 +03:00
Vinson Lee
79ab5b9798 llvmpipe: Silence unused value warning. 2010-07-30 13:11:14 -07:00
Zack Rusin
dd406cf341 draw: actually a noop, rather than not implemented
we just have nothing to do in it right now
2010-07-30 15:42:50 -04:00
Brian Paul
ce1fed1659 tgsi: remove incorrect assertion 2010-07-30 13:28:42 -06:00
Vinson Lee
078eff659a llvmpipe: Fix implicit declaration of lp_func_delete_body warnings. 2010-07-30 11:48:48 -07:00
Chia-I Wu
0e7d7d3051 util: Fix the range of util_draw_elements_instanced.
Keep min_index and max_index at their defaults (0 and ~0).
2010-07-30 23:45:56 +08:00
Zack Rusin
042018a943 llvmpipe: delete function bodies after generating machine code 2010-07-30 16:25:29 +01:00
Jerome Glisse
6c288d06ac r600g: fix typo in tex instruction + shader semantic id fix
It seems we never get semantic id from TGSI so fallback
to use output number as id.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-30 11:12:10 -04:00
Keith Whitwell
f623d06c49 util: more helpers for old draw code 2010-07-30 10:47:20 +01:00