summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* r600g: order atom emission v3Jerome Glisse2012-09-067-82/+116
| | | | | | | | | | | | | To avoid GPU lockup registers must be emited in a specific order (no kidding ...). This patch rework atom emission so order in which atom are emited in respect to each other is always the same. We don't have any informations on what is the correct order so order will need to be infered from fglrx command stream. v2: add comment warning that atom order should not be taken lightly v3: rebase on top of alphatest atom fix Signed-off-by: Jerome Glisse <[email protected]>
* r600g: fix num of dwords needed for alphatest_state atomJerome Glisse2012-09-061-1/+1
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* Remove useless checks for NULL before freeingMatt Turner2012-09-051-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch has been generated by the following Coccinelle semantic patch: // Remove useless checks for NULL before freeing // // free (NULL) is a no-op, so there is no need to avoid it @@ expression E; @@ + free (E); + E = NULL; - if (unlikely (E != NULL)) { - free(E); ( - E = NULL; | - E = 0; ) ... - } @@ expression E; type T; @@ + free ((T) E); + E = NULL; - if (unlikely (E != NULL)) { - free((T) E); ( - E = NULL; | - E = 0; ) ... - } @@ expression E; @@ + free (E); - if (unlikely (E != NULL)) { - free (E); - } @@ expression E; type T; @@ + free ((T) E); - if (unlikely (E != NULL)) { - free ((T) E); - } Reviewed-by: Brian Paul <[email protected]>
* Don't cast the return value of malloc/reallocMatt Turner2012-09-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch has been generated by the following Coccinelle semantic patch: // Don't cast the return value of malloc/realloc. // // Casting the return value of malloc/realloc only stands to hide // errors. @@ type T; expression E1, E2; @@ - (T) ( _mesa_align_calloc(E1, E2) | _mesa_align_malloc(E1, E2) | calloc(E1, E2) | malloc(E1) | realloc(E1, E2) )
* r600g: adjust QUANT_MODE for higher precisionVadim Girlin2012-09-044-2/+24
| | | | | | | | | Use 1/256 for R6xx/7xx, 1/4096 for evergreen, instead of default 1/16. Helps to pass some piglit tests (fbo, multisample). Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: enable transform feedback on CaymanMarek Olšák2012-08-311-3/+1
| | | | There doesn't seem to be anything wrong with it.
* r600g: implement MSAA for CaymanMarek Olšák2012-08-316-72/+184
| | | | | Everything works except for blitting MSAA colorbuffers, which isn't so trivial on Cayman. It's a rarely-used feature anyway.
* r600g: enable MSAA on r6xx by defaultMarek Olšák2012-08-301-3/+6
| | | | | DRM 2.22.0 is required though. Also require the new DRM for r700, as there are some important fixes for that generation too.
* r600g: disable MSAA depth decompression on r6xxMarek Olšák2012-08-301-1/+10
|
* r600g: implement color resolve for r600Marek Olšák2012-08-307-26/+199
| | | | | | | | | The blend state is different and the resolve single-sample buffer must have FMASK and CMASK enabled. I decided to have one CMASK and one FMASK per context instead of per resource. There are new FMASK and CMASK allocation helpers and a new buffer_create helper for that.
* r600g: fix CB_SHADER_MASK and CB_TARGET_MASK for r6xxMarek Olšák2012-08-301-11/+24
|
* r600g: implement draw_rectangle callbackMarek Olšák2012-08-303-2/+72
| | | | | | The color resolve on r6xx needs PT_RECTLIST. Using conventional primitive types (triangles and quads) produces an ugly line between two diagonally opposite corners. I guess a rectangular point sprite would work too.
* r600g: implement MSAA for r700Marek Olšák2012-08-307-41/+262
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: change programming of CB_SHADER_MASK on r600-r700Marek Olšák2012-08-301-1/+2
| | | | | | | This one actually makes more sense and gives the expected value for MSAA resolve. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: fix relative addressing on RS780 and RS880Marek Olšák2012-08-281-7/+6
| | | | | | They should be treated like RV670. Tested-by: Michel Dänzer <[email protected]>
* r600g: implement compression for MSAA colorbuffers for evergreenMarek Olšák2012-08-2710-19/+479
| | | | | | | | | | | | | | | | This adds the FMASK and CMASK buffers. They share the same resource with color data. COMPRESSION and FAST_CLEAR are always enabled if both FMASK and CMASK are allocated. We initialize the CMASK to a "compressed" state (not "fast cleared"), so that we can keep FAST_CLEAR enabled all the time. Both FMASK and CMASK must be present at the moment. If either one is missing, the other one is not used. v2: add cayman regs in the list Reviewed-by: Jerome Glisse <[email protected]>
* r600g: cleanup names around depth decompressionMarek Olšák2012-08-275-24/+24
| | | | | | for consistency with the upcoming color decompression naming Reviewed-by: Jerome Glisse <[email protected]>
* r600g: fix evergreen 8x MSAA sample positionsMarek Olšák2012-08-271-16/+16
| | | | | | | The original samples positions took samples outside of the pixel boundary, leading to dark pixels on the edge of the colorbuffer, among other things. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: set CB_TARGET_MASK to 0xf and not 0xff for resolve on evergreenMarek Olšák2012-08-271-0/+1
| | | | | | | independent_blend_enable must be true, so that the colormask isn't replicated in all colorbuffers. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: fix lockups with dual_src_blend v2Vadim Girlin2012-08-223-9/+45
| | | | | | | | | | Disable blending when dual_src_blend is enabled and number of color exports in the current fragment shader is less than 2. Fixes lockups with ext_framebuffer_multisample- alpha-to-coverage-dual-src-blend piglit test. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: Move common compute/3D register init to its own functionarchibald2012-08-203-170/+219
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: disable tiling for 422 formats againMarek Olšák2012-08-161-0/+4
|
* r600g: fix blits of subsampled formatsMarek Olšák2012-08-161-20/+63
|
* r600g: fix copying between NPOT mipmapped compressed texturesMarek Olšák2012-08-161-2/+3
| | | | | | | | | We aligned the dimensions to the blocksize, then divided by it (in r600_blit.c), then minified, which was wrong. The minification must be done first, not last. This fixes piglit/fbo-generatemipmap-formats with S3TC and maybe a bunch of other tests too. Tested on RV730.
* r600g: make F2U trans-only on r600-r700Marek Olšák2012-08-161-1/+1
| | | | This fixes a failing assertion in r600_asm.c.
* r600g: set CB_COLOR_INFO to INVALID for disabled colorbuffers on r600-r700Marek Olšák2012-08-161-0/+3
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* r600g: rename r600_resource_texture to r600_textureMarek Olšák2012-08-169-48/+48
|
* r600g: always put tiled textures in VRAMMarek Olšák2012-08-161-1/+2
|
* r600g: cleanup r600_resource_texture in favor of radeon_surfaceMarek Olšák2012-08-165-29/+20
|
* r600g: remove unused parameter in r600_texture_create_objectMarek Olšák2012-08-161-3/+2
|
* r600g: fixup the usage flag for the flushed depth textureMarek Olšák2012-08-161-1/+1
|
* r600: update sampler, sampler_view code for the futureBrian Paul2012-08-164-19/+50
| | | | | | | For when we have pipe->set_sampler_states(pipe, shader, start, num, samplers), etc. Reviewed-by: Marek Olšák <[email protected]>
* r600g: Glue to handle predicate aware output from llvmVincent Lejeune2012-08-151-11/+22
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Fix instruction group merge when there are predicated insts.Vincent Lejeune2012-08-151-0/+18
| | | | Signed-off-by: Tom Stellard <[email protected]>
* radeon/llvm: Do not use PV/PS if PRED_SEL does not matchVincent Lejeune2012-08-151-2/+4
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Add support for predicatesVincent Lejeune2012-08-154-11/+18
| | | | Signed-off-by: Tom Stellard <[email protected]>
* gallium/u_blitter: document custom meta helpersMarek Olšák2012-08-151-2/+2
|
* r600g: disable handling of DISCARD_RANGEMarek Olšák2012-08-151-0/+2
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=53130
* r600g: implement timestamp query and get_timestamp hookMarek Olšák2012-08-152-2/+28
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: enable MSAA on evergreen by defaultMarek Olšák2012-08-151-3/+24
| | | | v2: add the DRM version check
* r600g: implement copying between MSAA texturesMarek Olšák2012-08-151-4/+10
|
* r600g: implement MSAA color resolveMarek Olšák2012-08-154-3/+108
|
* r600g: implement MSAA depth-stencil decompression and resolveMarek Olšák2012-08-154-35/+140
| | | | and integer textures, which are resolved the same as depth, I think.
* r600g: implement TXQ_LZ opcodeMarek Olšák2012-08-151-7/+15
|
* r600g: implement MSAA rendering and texturing for evergreen and caymanMarek Olšák2012-08-154-26/+232
|
* r600g: implement set_sample_maskMarek Olšák2012-08-156-17/+61
|
* r600g: implement alpha-to-coverageMarek Olšák2012-08-156-6/+32
|
* r600g: implement alpha-to-oneMarek Olšák2012-08-155-2/+20
|
* r600g: remove support for 3-channel colorbuffersMarek Olšák2012-08-152-15/+0
| | | | We have no sampler support for them.
* gallium/u_blitter: implement blitting multisample resourcesMarek Olšák2012-08-151-2/+2
| | | | It can blit only one sample at a time (it should be called in a loop).