summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
Commit message (Collapse)AuthorAgeFilesLines
* gallium: make all checks for PIPE_TEXTURE_2D check for PIPE_TEXTURE_RECT tooLuca Barbieri2010-08-203-5/+10
| | | | | | | Searched for them with: git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D' Behavior hasn't been changed.
* r300g: do not use fastfill with 16-bit zbuffersMarek Olšák2010-08-191-0/+4
| | | | | | | To my knowledge, there is no way to flush zmask and thus write the clear value. This fixes zbuffer reads, among other things.
* r300g: fix context destroy under hyperzDave Airlie2010-08-171-3/+3
| | | | | | we were destroying the mm before unrefing all the objects, so segfault. Signed-off-by: Dave Airlie <[email protected]>
* r300g: fix assert in the rasterizer block for r3xx-r4xxMarek Olšák2010-08-161-1/+1
| | | | Reported-by: Niels Ole Salscheider <[email protected]>
* r300g: fix an invalid pointer in freeMarek Olšák2010-08-161-1/+1
|
* r300g: Let hyperz init failnobled2010-08-163-6/+20
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r300g: Fix leaks in failed context creationnobled2010-08-161-34/+48
| | | | | | | | | | | This changes r300_destroy_context() so it can be called on a partially-initialized context, and uses it when r300_create_context() hits a fatal error. This makes sure r300_create_context() doesn't leak memory or neglect to call r300_update_num_contexts() when it fails. Signed-off-by: Marek Olšák <[email protected]>
* r300g: Fix macronobled2010-08-161-1/+3
| | | | | | | This fixes a potential bug if (has_hyperz) is false (it would still init the atom as if has_hyperz were true). Signed-off-by: Marek Olšák <[email protected]>
* r300/compiler: implement DP2 opcodeMarek Olšák2010-08-161-1/+1
|
* r300/compiler: implement SSG opcodeMarek Olšák2010-08-161-1/+1
|
* r300g: mark HiZ/ZMask_clear atoms as non-dirty after emission in clearMarek Olšák2010-08-151-1/+4
|
* r300g: do not use HiZ if HiZ RAM is not properly initializedMarek Olšák2010-08-155-18/+23
|
* r300g: rename dirty_zmask -> zmask_in_useMarek Olšák2010-08-155-13/+13
|
* r300g: do not clear with blitter if we clear just the ZMask RAMMarek Olšák2010-08-151-9/+37
| | | | | This skips the blitter clear path entirely if the color is not cleared and the depth+stencil is cleared with the ZMask.
* r300g: do not use fastfill if ZMask RAM is not properly initializedMarek Olšák2010-08-154-18/+31
| | | | z_fastfill -> dirty_zmask[level].
* r300g: separate num_cs_end_dwords out from prepare_for_renderingMarek Olšák2010-08-153-24/+25
|
* r300g: do not support separate depth/stencil clear in the driverMarek Olšák2010-08-131-3/+1
| | | | It doesn't work well with Hyper-Z, so put the burden on the state tracker.
* r300g: fix fastfill when color and Z clear are invoked separatelyMarek Olšák2010-08-132-2/+2
| | | | This always restores the previous depth clear value after CBZB clear.
* r300g: disable depth clamp for nowMarek Olšák2010-08-131-1/+1
| | | | | | | It breaks Regnum Online in that it renders random triangles all over the screen. https://bugs.freedesktop.org/show_bug.cgi?id=29518
* Revert "u_blitter: unify clear_depth_stencil and flush_depth_stencil"Marek Olšák2010-08-121-3/+1
| | | | This reverts commit de4784e36505316c2a5ab34cc5b371d17f38d3c5.
* u_blitter: unify clear_depth_stencil and flush_depth_stencilMarek Olšák2010-08-121-1/+3
| | | | No need to enable depth test for clear.
* r300/compiler: Implement the CONT opcode.Tom Stellard2010-08-111-1/+1
|
* r300g: initialize VAP_VTX_STATE_CNTLMarek Olšák2010-08-111-0/+5
| | | | This got lost during the rasterizer rewrite.
* r300g: implement gl_FrontFacingMarek Olšák2010-08-113-7/+53
|
* r300g: Remove unnecessary header.Vinson Lee2010-08-101-1/+0
|
* r300/compiler: Implement hardware assisted loops for vertex shaders.Tom Stellard2010-08-103-1/+40
| | | | Single loops work, but nested loops do not.
* r300g: do not print shader compiler errors by defaultMarek Olšák2010-08-092-5/+4
|
* r300g: fix hiz/zmask offset emissions.Dave Airlie2010-08-091-2/+2
| | | | | | ofs is in dwords, so need to shift it for registers. Signed-off-by: Dave Airlie <[email protected]>
* r300g: remove a flushMarek Olšák2010-08-081-1/+0
| | | | Ooops, it wasn't supposed to be there.
* r300g: flush zmasks of zbuffers we are going to use as samplersMarek Olšák2010-08-084-7/+58
| | | | It sometimes works, sometimes not. I guess we have the zmask offsets wrong.
* r300g: do not allocate a zmask block for 3D textures and cubemapsMarek Olšák2010-08-081-0/+6
|
* r300g: take hiz/zmask offsets into a/c when clearing.Dave Airlie2010-08-081-0/+4
| | | | | | Need to add a test for multi-hiz/zmask db in a single context. Signed-off-by: Dave Airlie <[email protected]>
* r300g: fix cbzb clears when hyperz is offMarek Olšák2010-08-075-10/+11
|
* r300g: Remove unnecessary headers.Vinson Lee2010-08-051-2/+0
|
* r300g: do not emit GB_Z_PEQ_CONFIG on non-r500 if DRM < 2.6.0Marek Olšák2010-08-062-2/+6
|
* r300g: fix fb_state atom sizeMarek Olšák2010-08-051-2/+6
|
* r300g: always emit hyperz state atom.Dave Airlie2010-08-051-5/+2
|
* r300g: disable hiz on rv530 for now.Dave Airlie2010-08-051-1/+1
| | | | On my rv530 at least HiZ is causing rendering issues in gears.
* r300g: implement hyper-z support. (v4)Dave Airlie2010-08-0518-47/+640
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>, 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 <[email protected]>
* r300/compiler: r500 hw support for break and continue in loops.Tom Stellard2010-08-031-2/+7
| | | | | | | 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.
* r300g: disable multisample visuals until the state tracker bits catch up.Dave Airlie2010-08-041-0/+3
| | | | | | This stops us advertising lots of ms visuals we can't actually use. Signed-off-by: Dave Airlie <[email protected]>
* r300g: handle polygon offset correctlyMarek Olšák2010-08-031-5/+5
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=29372
* r300g: fix hardlock when using more than one stuffed sprite coordsMarek Olšák2010-08-022-19/+21
| | | | | | | 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.
* r300g: fix microtiling on RS6xxMarek Olšák2010-08-011-4/+18
| | | | | Getting tiling right has always been tricky. There are so many subtle details...
* r300g/swtcl: fix crash in ETQW and minor fixupsMarek Olšák2010-07-293-26/+14
| | | | | | | The Draw flush inside r300_flush was the culprit. Also, no need to flush Draw when changing a state since the flush is already inside swtcl_draw_vbo.
* r300g/swtcl: fix crash after the draw_vbo mergeMarek Olšák2010-07-291-1/+1
|
* gallium: Avoid void pointer arithmetic.Chia-I Wu2010-07-291-1/+1
| | | | This fixes fdo bug #29286.
* gallium: Keep only pipe_context::draw_vbo.Chia-I Wu2010-07-292-122/+2
| | | | | | | That is, remove pipe_context::draw_arrays, pipe_context::draw_elements, pipe_context::draw_arrays_instanced, pipe_context::draw_elements_instanced, pipe_context::draw_range_elements.
* gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu2010-07-294-51/+133
| | | | | | | | | | | | | | | Some drivers define a generic function that is called by all drawing functions. To implement draw_vbo for such drivers, either draw_vbo calls the generic function or the prototype of the generic function is changed to match draw_vbo. Other drivers have no such generic function. draw_vbo is implemented by calling either draw_arrays and draw_elements. For most drivers, set_index_buffer does not mark the state dirty for tracking. Instead, the index buffer state is emitted whenever draw_vbo is called, just like the case with draw_elements. It surely can be improved.
* r300g: fix macro substitution problemDave Airlie2010-07-261-2/+2
| | | | | | isn't a problem yet, but have issues in hiz branch. Signed-off-by: Dave Airlie <[email protected]>