summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* r300g: implement D24X8 texture sampling for r3xx-r4xxMarek Olšák2010-07-255-22/+34
| | | | | | | | | Because the hw can't sample it, I reinterpret the format as G16R16 and sample the G component. This gives 16 bits of precision, which should be enough for depth texturing (surprisingly, the sampled values are exactly the same as in D16 textures). This also enables EXT_packed_depth_stencil on those old chipsets, finally.
* r300g: make sure a texture is large enough for the CBZB clearMarek Olšák2010-07-251-52/+49
| | | | | | | The number of macrotiles in the Y direction must be even, otherwise memory corruption may happen (e.g. broken fonts). Basically, if we get a buffer in resource_from_handle, we can determine from the buffer size whether it's safe to use the CBZB clear or not.
* r300g: do not use TXPITCH_EN if the width is POT and the height is NPOTMarek Olšák2010-07-256-11/+15
|
* r300g: do not use TXPITCH_EN for power-of-two textures from the DDXMarek Olšák2010-07-251-6/+14
| | | | We were using TXPITCH_EN for textures from the DDX since ever, for nothing.
* r300g: cleanup texture creation codeMarek Olšák2010-07-2513-543/+733
| | | | | | | | | | | | This decouples initializing a texture layout/miptree description from an actual texture creation, it also partially unifies texture_create and texture_from_handle. r300_texture inherits r300_texture_desc, which inherits u_resource. The CBZB clear criteria are moved to r300_texture_desc::cbzb_allowed[level]. And other minor cleanups.
* r300g: reject resources from handles which are not large enoughMarek Olšák2010-07-253-7/+25
| | | | | | | | The driver gets a buffer and its size in resource_from_handle. It computes the required minimum buffer size from given texture properties, and compares the two sizes. This is to early detect DDX bugs.
* r300g: cleanup texture debug loggingMarek Olšák2010-07-253-18/+25
|
* r300g: do not align texture height to 2^n for 1D and 2D non-mipmapped texturesMarek Olšák2010-07-251-1/+5
| | | | | I don't remember why the alignment was there, but it seems to be no longer needed. I guess it was a dirty fix for some other bug.
* r300g: implement depth clampMarek Olšák2010-07-212-1/+3
| | | | | | | Depth clamping seems to be implicit if clipping is disabled. It's not perfect, but it's good enough for wine and passes the corresponding piglit tests.
* r300g: cleanup clip state emissionMarek Olšák2010-07-211-6/+10
|