summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300
AgeCommit message (Collapse)Author
2010-08-07r300g: fix cbzb clears when hyperz is offMarek Olšák
2010-08-05r300g: Remove unnecessary headers.Vinson Lee
2010-08-06r300g: do not emit GB_Z_PEQ_CONFIG on non-r500 if DRM < 2.6.0Marek Olšák
2010-08-05r300g: fix fb_state atom sizeMarek Olšák
2010-08-05r300g: always emit hyperz state atom.Dave Airlie
2010-08-05r300g: disable hiz on rv530 for now.Dave Airlie
On my rv530 at least HiZ is causing rendering issues in gears.
2010-08-05r300g: implement hyper-z support. (v4)Dave Airlie
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-03r300/compiler: r500 hw support for break and continue in loops.Tom Stellard
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-04r300g: disable multisample visuals until the state tracker bits catch up.Dave Airlie
This stops us advertising lots of ms visuals we can't actually use. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-03r300g: handle polygon offset correctlyMarek Olšák
https://bugs.freedesktop.org/show_bug.cgi?id=29372
2010-08-02r300g: fix hardlock when using more than one stuffed sprite coordsMarek Olšák
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-01r300g: fix microtiling on RS6xxMarek Olšák
Getting tiling right has always been tricky. There are so many subtle details...
2010-07-29r300g/swtcl: fix crash in ETQW and minor fixupsMarek Olšák
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.
2010-07-29r300g/swtcl: fix crash after the draw_vbo mergeMarek Olšák
2010-07-29gallium: Avoid void pointer arithmetic.Chia-I Wu
This fixes fdo bug #29286.
2010-07-29gallium: Keep only pipe_context::draw_vbo.Chia-I Wu
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.
2010-07-29gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu
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.
2010-07-26r300g: fix macro substitution problemDave Airlie
isn't a problem yet, but have issues in hiz branch. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-07-25r300g: implement D24X8 texture sampling for r3xx-r4xxMarek Olšák
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.
2010-07-25r300g: make sure a texture is large enough for the CBZB clearMarek Olšák
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.
2010-07-25r300g: do not use TXPITCH_EN if the width is POT and the height is NPOTMarek Olšák
2010-07-25r300g: do not use TXPITCH_EN for power-of-two textures from the DDXMarek Olšák
We were using TXPITCH_EN for textures from the DDX since ever, for nothing.
2010-07-25r300g: cleanup texture creation codeMarek Olšák
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.
2010-07-25r300g: reject resources from handles which are not large enoughMarek Olšák
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.
2010-07-25r300g: cleanup texture debug loggingMarek Olšák
2010-07-25r300g: do not align texture height to 2^n for 1D and 2D non-mipmapped texturesMarek Olšák
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.
2010-07-21r300g: implement depth clampMarek Olšák
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.
2010-07-21r300g: cleanup clip state emissionMarek Olšák
2010-07-19r300g: fix possible crash in destroy_contextMarek Olšák
The problem is destroy_context is almost NEVER called. The only test for destroy_context I know is compiz. Reported by Vinson Lee. FDO bug #29150.
2010-07-19r300g: fix typoMarek Olšák
2010-07-19r300g: use memory pools for buffer_create and get_transferMarek Olšák
The improvement in Tremulous: 68.9 fps -> 71.1 fps.
2010-07-18r300g: u_upload optimisationDave Airlie
fix vb/ib uploads
2010-07-17r300g: final fix for r3xx constant buffer emissionMarek Olšák
2010-07-17r300g: fix typo in r3xx constant buffer emissionMarek Olšák
Ooops.
2010-07-17r300g: fix constant buffer emission on r3xxMarek Olšák
FDO bug #29128.
2010-07-16r300g: Remove unnecessary header.Vinson Lee
2010-07-16r300g: inline winsys_buffer_destroyMarek Olšák
2010-07-16r300g: do not make copies of constant buffers, emit them directlyMarek Olšák
2010-07-16r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák
2010-07-13r300g: do not advertise half_float_vertex on rv3x0Marek Olšák
rv3x0 can't do it.
2010-07-13r300g: extend and clean up debug loggingMarek Olšák
2010-07-13r300g/swtcl: do not emit texcoords if they are also stuffed in GAMarek Olšák
2010-07-13r300g: rework the draw_rectangle hookMarek Olšák
It is a lot simplier, cleaner, and more stable now.
2010-07-12r300g: Remove unnecessary header.Vinson Lee
2010-07-12r300g: implement fast color clearMarek Olšák
An initial implementation made by Dave Airlie. For it to be used, a color-only clear must be invoked and exactly one point-sampled render target must be set. The render target must be macrotiled (for us to overcome alignment issues) and bpp must be either 16 or 32. I can't see a difference in performance. :( Conflicts: src/gallium/drivers/r300/r300_blit.c
2010-07-12r300g: clear and copy a resource with a rectangular point spriteMarek Olšák
With an ordinary quad, the pixels on the main diagonal are computed and stored twice, which is somewhat inefficient and might not work well with specialized clear codepaths.
2010-07-12r300g: do not use immediate mode if there is a VBO in VRAMMarek Olšák
And other minor fixups.
2010-07-12r300g: ugly fix of a hardlock in the cubestorm xscreensaverMarek Olšák
FDO bug #28563.
2010-07-09r300g: allow the GTT domain for samplersMarek Olšák
This fixes sluggishness in vdrift.
2010-07-09r300g/swtcl: fix out-of-bounds writeMarek Olšák
This is a typo fix, the generated code should be the same.