aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* r300g: fix possible crash in destroy_contextMarek Olšák2010-07-191-2/+2
| | | | | | | | | 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.
* r300g: fix typoMarek Olšák2010-07-191-1/+1
|
* r300g: use memory pools for buffer_create and get_transferMarek Olšák2010-07-195-24/+101
| | | | The improvement in Tremulous: 68.9 fps -> 71.1 fps.
* r300g: u_upload optimisationDave Airlie2010-07-184-7/+15
| | | | fix vb/ib uploads
* r300g: final fix for r3xx constant buffer emissionMarek Olšák2010-07-171-1/+1
|
* r300g: fix typo in r3xx constant buffer emissionMarek Olšák2010-07-171-1/+1
| | | | Ooops.
* r300g: fix constant buffer emission on r3xxMarek Olšák2010-07-171-1/+1
| | | | FDO bug #29128.
* r300g: Remove unnecessary header.Vinson Lee2010-07-161-1/+0
|
* r300g: inline winsys_buffer_destroyMarek Olšák2010-07-161-12/+4
|
* r300g: do not make copies of constant buffers, emit them directlyMarek Olšák2010-07-165-35/+27
|
* r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák2010-07-1616-299/+389
|
* r300g: do not advertise half_float_vertex on rv3x0Marek Olšák2010-07-131-2/+2
| | | | rv3x0 can't do it.
* r300g: extend and clean up debug loggingMarek Olšák2010-07-135-17/+23
|
* r300g/swtcl: do not emit texcoords if they are also stuffed in GAMarek Olšák2010-07-131-3/+6
|
* r300g: rework the draw_rectangle hookMarek Olšák2010-07-131-89/+23
| | | | It is a lot simplier, cleaner, and more stable now.
* r300g: Remove unnecessary header.Vinson Lee2010-07-121-1/+0
|
* r300g: implement fast color clearMarek Olšák2010-07-1210-13/+178
| | | | | | | | | | | | | | | 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
* r300g: clear and copy a resource with a rectangular point spriteMarek Olšák2010-07-122-3/+152
| | | | | | 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.
* r300g: do not use immediate mode if there is a VBO in VRAMMarek Olšák2010-07-122-4/+5
| | | | And other minor fixups.
* r300g: ugly fix of a hardlock in the cubestorm xscreensaverMarek Olšák2010-07-122-3/+5
| | | | FDO bug #28563.
* r300g: allow the GTT domain for samplersMarek Olšák2010-07-092-5/+12
| | | | This fixes sluggishness in vdrift.
* r300g/swtcl: fix out-of-bounds writeMarek Olšák2010-07-091-1/+1
| | | | This is a typo fix, the generated code should be the same.
* r300g: fix texturing with negative lod biasMarek Olšák2010-07-091-1/+1
| | | | This should fix FDO bugs #28437 and #28625.
* r300g: store/return the stride for winsys_handle in winsysMarek Olšák2010-07-082-12/+10
|
* r300g: fix transfering compressed texturesMarek Olšák2010-07-081-1/+1
|
* r300g: add a function for marking framebuffer atoms as dirtyMarek Olšák2010-07-083-11/+32
|
* r300g: minor fixupsMarek Olšák2010-07-085-7/+7
|
* r300/compiler: Implement KILP opcode.Tom Stellard2010-07-061-1/+1
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r300g: fix warningsMarek Olšák2010-07-031-2/+5
|
* r300/compiler: Use hardware flow control instructions for loops on r500.Tom Stellard2010-07-031-1/+2
|
* r300g: Fix typo in r300_reg.hTom Stellard2010-07-031-2/+2
|
* r300g: add workaround for multiple contextsMarek Olšák2010-06-303-1/+9
|
* r300g: move one flush from winsys to the contextMarek Olšák2010-06-302-19/+33
| | | | | | | This flush happens when changing the tiling flags, and it should really be done in the context. I hope this fixes FDO bug #28630.