summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* gallium: split CAP_INSTANCE_DRAWING into INSTANCEID and INSTANCE_DIVISORMarek Olšák2011-03-051-1/+2
| | | | | | | | ARB_instanced_arrays is a subset of D3D9. ARB_draw_instanced is a subset of D3D10. The point of this change is to allow D3D9-level drivers to enable ARB_instanced_arrays without ARB_draw_instanced.
* r600g: simplify instance addr calculationChristian König2011-03-051-47/+4
| | | | | Use MULHI_UINT instead of the more complex INT_TO_FLT->MUL->TRUNC->FLT_TO_INT
* r600g: fix fragment shader size calculationChristian König2011-03-051-8/+9
| | | | | bc.ndw is altered in r600_bc_build, respect that in fragment shader size calculation.
* r600g: disable tiling by default again.Dave Airlie2011-03-041-4/+4
| | | | | | we still have a lot of corner cases that aren't working. Signed-off-by: Dave Airlie <[email protected]>
* r600g: correct mega_fetch_count in fetch shaderChristian König2011-03-031-1/+1
|
* r600g: change the cross over point for 2d->1dDave Airlie2011-03-021-1/+1
| | | | | | | this fixes some rendering in the fbo-generatemipmap-formats test on my rv610. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add NV_conditional_render support.Dave Airlie2011-03-014-1/+37
| | | | | | | | This is reliant on a drm patch that I posted on the list + a version bump. These will appear in drm-next today. Signed-off-by: Dave Airlie <[email protected]>
* r600g: start using drm minor version to enable things.Dave Airlie2011-03-018-13/+26
| | | | | | | | | | If the drm minor version is > 9 (i.e. whats in drm-next), we enable s3tc + texture tiling by default now. this changes R600_FORCE_TILING to R600_TILING which can be set to false to disable tiling on working drm. Signed-off-by: Dave Airlie <[email protected]>
* r600g: truncate point sampled texture coordinatesAlex Deucher2011-02-282-1/+14
| | | | | | | | | | | | By default the hardware rounds texcoords. However, for point sampled textures, the expected behavior is to truncate. When we have point sampled textures, set the truncate bit in the sampler. Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=25871 Signed-off-by: Alex Deucher <[email protected]>
* r600g: add missing evergreen INT_TO_FLT to r600_bc_get_num_operandsAlex Deucher2011-02-281-0/+1
| | | | Signed-off-by: Alex Deucher <[email protected]>
* r600g: indentation fixesJerome Glisse2011-02-286-66/+65
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* r600g: implement instanced drawing supportChristian König2011-02-286-103/+191
|
* Revert "r600g: Don't negate result of ABS instruction"Dave Airlie2011-02-281-2/+0
| | | | | | This reverts commit b6d40213935da702570eca2c0861bd4b1d7f5254. This actually breaks gears here on my rv670.
* r600g: Process TRUNC with tgis_op2Fabian Bieler2011-02-281-2/+2
| | | | | | TRUNC is neither a scalar instruction nor exclusive to the Trans unit. Signed-off-by: Dave Airlie <[email protected]>
* r600g: Don't negate result of ABS instructionFabian Bieler2011-02-281-0/+2
| | | | Signed-off-by: Dave Airlie <[email protected]>
* r600g: explicity set sign bits for RGTCDave Airlie2011-02-251-2/+4
|
* r600g: bc 4/5 or rgtc textures need to be tiled as well.Dave Airlie2011-02-252-10/+10
| | | | | | Make the s3tc upload code more generic. Signed-off-by: Dave Airlie <[email protected]>
* r600g: EXT_texture_array support.Dave Airlie2011-02-246-9/+39
| | | | | | | | | | | This adds EXT_texture_array support to r600g, it passes the piglit array-texture test but I suspect may not be complete. It currently requires a kernel patch to fix the CS checker to allow these, so you need to use R600_ARRAY_TEXTURE=true for now to enable them. Signed-off-by: Dave Airlie <[email protected]>
* r600g: Request DWORD aligned vertex buffers.Fabian Bieler2011-02-231-1/+1
| | | | | | The spec says that the offsets in the vertex-fetch instructions need to be byte-aligned and makes no specification with regard to the required alignment of the offset and stride in the vertex resource constant register. However, testing indicates that all three values need to be DWORD aligned.
* r600g: reorganise rgtc pieces.Dave Airlie2011-02-181-16/+23
| | | | | | | when the cs checker fixes go upstream a lot of this can disappear into a drm version check. Signed-off-by: Dave Airlie <[email protected]>
* r600g: Start a new TEX clause if the texture lookup address was fetched in ↵Fabian Bieler2011-02-181-0/+12
| | | | | | the current clause Signed-off-by: Dave Airlie <[email protected]>
* r600g: Add support to dump vertex- and texture-fetch clausesFabian Bieler2011-02-181-1/+56
| | | | Signed-off-by: Dave Airlie <[email protected]>
* r600g: add BC4/5 to RGTC conversionDave Airlie2011-02-181-0/+8
| | | | | this doesn't do anything much since the rest of mesa doesn't support RGTC yet.
* r600g: get s3tc working on cards with crappy 64/128 bit types.Dave Airlie2011-02-174-0/+30
| | | | | | | | | Some cards don't appear to work correctly with the UNORM type, so switch to the integer type, however since gallium has no integer types yet from what I can see we need to do a hack to workaround it for the blitter. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add missing type to color buffer swap.Dave Airlie2011-02-171-0/+1
|
* r600g: fix typo in previous s3tc commitDave Airlie2011-02-161-1/+1
| | | | pointed out by Marek on irc.
* r600g: add L8A8 SRGB formats.Dave Airlie2011-02-163-2/+8
| | | | | | this fixes the piglit mipmap generation sRGB on my rv730. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add L4A4 support.Dave Airlie2011-02-162-0/+12
| | | | | | this fixes piglit fbo-generatemipmap-formats on my rv730. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix s3tc-texsubimageDave Airlie2011-02-161-0/+3
| | | | | | | | we need to translate the destination box as well. fixes piglit's s3tc-texsubimage test. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add srgb compressed formats to the list.Dave Airlie2011-02-161-0/+4
|
* r600g: Fix RGB10_A2 format handlingFabian Bieler2011-02-152-6/+10
|
* r600g: fix regression in r6/7xx since mipmap reworkDave Airlie2011-02-151-1/+1
| | | | I typod this when copy-pasting.
* r600g: add support for s3tc formats.Dave Airlie2011-02-153-0/+75
| | | | | | | | | | | | On r600, s3tc formats require a 1D tiled texture format, so we have to do uploads using a blit, via the 64-bit and 128-bit formats Based on the r600c code we use a 64 and 128-bit type to do the blits. Still requires R600_ENABLE_S3TC until the kernel fixes are in, this has only been tested on evergreen where the kernel doesn't yet get in the way.
* r600g: fix miptree calculationsDave Airlie2011-02-154-47/+41
| | | | | | | | | | the miptree setup and pitch storing didn't work so well for block based things like compressed textures. The CB takes blocks, where the texture sampler takes pixels, and transfers need bytes, So now we store blocks/bytes and translate to pixels in the sampler. This is necessary for s3tc to work properly.
* r600g: drop tiled flagDave Airlie2011-02-154-13/+8
| | | | | | | we can work this out from the array_mode and it makes more sense to do that. Signed-off-by: Dave Airlie <[email protected]>
* gallium: notify drivers about possible changes in user buffer contentsMarek Olšák2011-02-142-0/+3
| | | | Also implement the redefine_user_buffer hook in the drivers.
* r600g: add alignment cases for linear alignedAlex Deucher2011-02-141-0/+6
| | | | | | Matches the drm and ddx. Signed-off-by: Alex Deucher <[email protected]>
* r600g: do not destroy the original index buffer when translating indicesMarek Olšák2011-02-141-2/+2
| | | | Because we only translate a subrange of the buffer.
* r600g: get correct height alignmentDave Airlie2011-02-111-3/+2
| | | | useful for s3tc
* r600g: drop two unused | 0 that are actually in word4 anyways.Dave Airlie2011-02-112-2/+2
| | | | | | these were NOPs anyways. Signed-off-by: Dave Airlie <[email protected]>
* r600g: handle 16/32 u/s norm formats properlyDave Airlie2011-02-117-12/+57
| | | | | | | add support for the 32-bit types, also fixup the export setting to handle types with channels > 11 bits properly Signed-off-by: Dave Airlie <[email protected]>
* r600g: fixup assertionMarek Olšák2011-02-081-1/+1
|
* r600g: add a faster implementation of transfer_inline_writeMarek Olšák2011-02-081-1/+25
| | | | u_default_transfer_inline_write uses util_copy_rect, which is kinda slow.
* r600g: slab-allocate buffer and transfer structuresMarek Olšák2011-02-083-10/+85
|
* r600g: use the same upload buffer for vertices, indices, and constantsMarek Olšák2011-02-084-28/+10
| | | | This should reduce memory consumption.
* u_vbuf_mgr: add a way to specify the BIND flag for the upload bufferMarek Olšák2011-02-081-0/+1
|
* u_vbuf_mgr: make the uploader publicMarek Olšák2011-02-081-1/+1
|
* Revert "r600g: do not flush the uploader" (with comments)Marek Olšák2011-02-081-0/+7
| | | | This reverts commit 1c2a4f0820ff2272f993e6da28dcf8bcbbc3252a.
* r600g: Add support for relative addressing on constant buffers.Henri Verbeet2011-02-076-22/+152
| | | | | | | | | | Relative addressing of constant buffers can't work properly through the kcache, since you can only address within the currently locked kcache window. Instead, this patch binds the constant buffer as a shader resource, and then explicitly fetches the constant using a vertex fetch with fetch type VTX_FETCH_NO_INDEX_OFFSET from the shader. There's probably still some room for improvement, doing the fetch right before the instruction that needs the value may not be quite optimal for example.
* r600g: Set the fetch type in r600_bc_vtx_build().Henri Verbeet2011-02-071-0/+1
|