summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* gallivm: Don't use llvm.x86.avx.max/min.ps.256 inadvertently.José Fonseca2012-10-121-4/+4
| | | | Could happen when CPU supports AVX, but LLVM doesn't.
* tgsi: Dump register number when dumping immediates.José Fonseca2012-10-121-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example: VERT DCL IN[0] DCL OUT[0], POSITION DCL OUT[1], GENERIC[12] DCL CONST[0..4] DCL TEMP[0], LOCAL DCL TEMP[1], LOCAL IMM[0] UINT32 {4294967295, 0, 0, 0} IMM[1] FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: SEQ TEMP[0].x, CONST[3].xxxx, IMM[0].xxxx 1: F2I TEMP[0].x, -TEMP[0] 2: SEQ TEMP[1].x, CONST[4].xxxx, IMM[0].xxxx 3: F2I TEMP[1].x, -TEMP[1] 4: AND TEMP[0].x, TEMP[0].xxxx, TEMP[1].xxxx 5: IF TEMP[0].xxxx :0 6: MOV TEMP[0], IMM[1].xyxy 7: ELSE :0 8: MOV TEMP[0], IMM[1].yxxy 9: ENDIF 10: MOV OUT[1], TEMP[0] 11: MOV OUT[0], IN[0] 12: END instead of VERT DCL IN[0] DCL OUT[0], POSITION DCL OUT[1], GENERIC[12] DCL CONST[0..4] DCL TEMP[0], LOCAL DCL TEMP[1], LOCAL IMM UINT32 {4294967295, 0, 0, 0} IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: SEQ TEMP[0].x, CONST[3].xxxx, IMM[0].xxxx 1: F2I TEMP[0].x, -TEMP[0] 2: SEQ TEMP[1].x, CONST[4].xxxx, IMM[0].xxxx 3: F2I TEMP[1].x, -TEMP[1] 4: AND TEMP[0].x, TEMP[0].xxxx, TEMP[1].xxxx 5: IF TEMP[0].xxxx :0 6: MOV TEMP[0], IMM[1].xyxy 7: ELSE :0 8: MOV TEMP[0], IMM[1].yxxy 9: ENDIF 10: MOV OUT[1], TEMP[0] 11: MOV OUT[0], IN[0] 12: END
* gallivm: fix rsqrt failuresRoland Scheidegger2012-10-122-15/+76
| | | | | | | | | | | | | | | | | | | | | | | | | lp_build_rsqrt initially did not do any newton-raphson step. This meant that precision was only ~11 bits, but this handled both input 0.0 and +infinity correctly. It did not however handle input 1.0 accurately, and denormals always generated infinity result. Doing a newton-raphson step increased precision significantly (but notably input 1.0 still doesn't give output 1.0), however this fails for inputs 0.0 and infinity (both result in NaNs). Try to fix this up by using cmp/select but since this is all quite fishy (and still doesn't handle denormals) disable for now. Note that even with workarounds it should still have been faster since the fallback uses sqrt/div (which both use the usually unpipelined and slow divider hw). Also add some more test values to lp_test_arit and test lp_build_rcp() too while there. v2: based on José's feedback, avoid hacky infinity definition which doesn't work with msvc (unfortunately using INFINITY won't cut it neither on non-c99 compilers) in lp_build_rsqrt, and while here fix up the input infinity case too (it's disabled anyway). Only test infinity input case if we have c99, and use float cast for calculating reference rsqrt value so we really get what we expect. Reviewed-by: José Fonseca <[email protected]>
* galahad: galahad_context_blitJosé Fonseca2012-10-121-11/+15
| | | | must unwrap.
* r600g: move shader structures into r600_shader.hMarek Olšák2012-10-129-25/+30
|
* r600g: implement MSAA resolving for 8-bit and 16-bit integer formatsMarek Olšák2012-10-123-6/+46
| | | | by changing the format to NORM.
* util: fix broken pipe_get_tile_rgba() callBrian Paul2012-10-111-1/+1
| | | | Fix breakage from commit 369e468.
* radeon/llvm: Fix build with LLVM 3.2Tom Stellard2012-10-111-3/+10
|
* clover: Fix build with LLVM 3.2Tom Stellard2012-10-111-1/+10
| | | | Reviewed-by: Francisco Jerez <[email protected]>
* clover: Don't link against libclangRewriteTom Stellard2012-10-111-1/+0
| | | | | | | This library does not exist in LLVM 3.2 and libOpenCL.so links fine without it on LLVM 3.1 Reviewed-by: Francisco Jerez <[email protected]>
* radeonsi: handle unhandled CAPsMarek Olšák2012-10-111-0/+4
|
* radeonsi: fixup the return type of is_format_supportedMarek Olšák2012-10-112-10/+10
|
* radeonsi: remove unused local variablesMarek Olšák2012-10-114-9/+0
|
* r600g: put user indices in the command stream for small index countsMarek Olšák2012-10-112-14/+28
| | | | | This improves performance a little bit if there are lots of small indexed draw commands.
* r600g: inline r600_translate_index_bufferMarek Olšák2012-10-114-65/+22
|
* gallium: unify transfer functionsMarek Olšák2012-10-1196-1914/+1124
| | | | | | | | | | | | | | "get_transfer + transfer_map" becomes "transfer_map". "transfer_unmap + transfer_destroy" becomes "transfer_unmap". transfer_map must create and return the transfer object and transfer_unmap must destroy it. transfer_map is successful if the returned buffer pointer is not NULL. If transfer_map fails, the pointer to the transfer object remains unchanged (i.e. doesn't have to be NULL). Acked-by: Brian Paul <[email protected]>
* softpipe: remove unused functionsMarek Olšák2012-10-112-26/+0
| | | | Reviewed-by: Brian Paul <[email protected]>
* svga: don't use uninitialized framebuffer stateBrian Paul2012-10-111-2/+4
| | | | | | | | | | | Only the first 'nr_cbufs' color buffers in the pipe_framebuffer_state are valid. The rest of the color buffer pointers might be unitialized. Fixes a regression in the piglit fbo-srgb-blit test since changes in the gallium blitter code. NOTE: This is a candidate for the 9.0 branch (just to be safe). Reviewed-by: Jose Fonseca <[email protected]>
* svga: Remove wierd code which forces non-sRGB formats.John Kåre Alsaker2012-10-101-8/+0
| | | | Signed-off-by: Brian Paul <[email protected]>
* svga: Add support for 16-bit per channel RGBAJohn Kåre Alsaker2012-10-101-0/+3
| | | | Signed-off-by: Brian Paul <[email protected]>
* radeon/llvm: use ceil intrinsic instead of llvm.AMDIL.round.posinfVincent Lejeune2012-10-103-6/+2
| | | | Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: use floor intrinsic instead of llvm.AMDIL.floorVincent Lejeune2012-10-105-5/+5
| | | | Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: use llvm fabs intrinsicVincent Lejeune2012-10-103-6/+4
| | | | Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: use llvm intrinsic for flog2Vincent Lejeune2012-10-104-5/+4
| | | | Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: add support for cos/sin intrinsicVincent Lejeune2012-10-103-12/+15
| | | | Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: add a pattern for fsqrtVincent Lejeune2012-10-101-0/+3
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: move SQ_GPR_RESOURCE_MGMT_1 into new config_stateMarek Olšák2012-10-103-14/+22
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: move DB_SHADER_CONTROL into db_misc_stateMarek Olšák2012-10-106-36/+27
| | | | | | | Also update the register value in more appropriate places than r600_update_derived_state. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: emit PS_PARTIAL_FLUSH at the beginning of CSMarek Olšák2012-10-102-0/+12
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize depth-stencil-alpha stateMarek Olšák2012-10-108-50/+28
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize rasterizer stateMarek Olšák2012-10-107-173/+126
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: sort variables in r600_contextMarek Olšák2012-10-104-93/+79
| | | | | | Some variables have been removed from there too. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: initialize SQ_VTX_SEMANTIC_* in the start_cs command bufferMarek Olšák2012-10-102-36/+36
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize scissor stateMarek Olšák2012-10-108-78/+48
| | | | | | The workaround for R600 lacking VPORT_SCISSOR_ENABLE has also been simplified. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize polygon offset stateMarek Olšák2012-10-107-123/+121
| | | | | | | POLY_OFFSET_DB_FMT_CNTL is moved to the framebuffer state, because it only depends on the zbuffer format. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize fetch shaderMarek Olšák2012-10-109-121/+67
| | | | | | | The state object is actually a buffer, it's literally a buffer containing the shader code. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: remove the dual_src_blend flag from the shader keyMarek Olšák2012-10-103-3/+4
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: atomize blend stateMarek Olšák2012-10-109-176/+182
| | | | | | | | | | | This is not so trivial, because we disable blending if the dual src blending is turned on and the number of color outputs is less than 2. I decided to create 2 command buffers in the blend state object and just switch between them when needed, because there are other states unrelated to blending (like the color mask) and those shouldn't be changed (the old code had it wrong). Reviewed-by: Jerome Glisse <[email protected]>
* r600g: inline r600_atom_dirtyMarek Olšák2012-10-108-52/+47
| | | | Reviewed-by: Jerome Glisse <[email protected]>
* r600g: remove the "atom" variable from r600_command_bufferMarek Olšák2012-10-106-37/+34
| | | | | | | | | | | | | | | r600_command_buffer is not an atom. The "atoms" have evolved into state slots (or groups of state slots) where you can bind states. There is a fixed amount of atoms (state slots) in the context. The command buffers are nothing like that. They represent states, not state slots. We could probably give r600_atom a better name someday. Reviewed-by: Jerome Glisse <[email protected]>
* r600g: use a select to handle front/back color in llvmVincent Lejeune2012-10-092-5/+44
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: frontcolor tracks its associated backcolorVincent Lejeune2012-10-092-25/+35
| | | | Reviewed-by: Tom Stellard <[email protected]>
* Remove VAAPI support.Matt Turner2012-10-0918-1486/+0
| | | | | | Not working and unmaintained. Reviewed-by: Christian König <[email protected]>
* nv50: fix build after "nv50: fix printf warning"Marcin Slusarz2012-10-091-0/+2
| | | | | When compiled with C++ compiler, inttypes.h defines PRI* macros only when __STDC_FORMAT_MACROS is defined.
* nouveau: use pre-calculated stride for resource_get_handleMarcin Slusarz2012-10-092-4/+2
| | | | | | Fixes FDO#55294. NOTE: This is a candidate for the 9.0 branch.
* r600g: Fix build with --enable-openclTom Stellard2012-10-091-1/+3
|
* nv50: fix printf warningMarek Olšák2012-10-091-1/+2
|
* nv30: fix type conversion warningMarek Olšák2012-10-091-1/+1
|
* i915g: fix unused variable and type conversion warningsMarek Olšák2012-10-092-2/+1
|
* nv50: point vertex runout at a valid addressBen Skeggs2012-10-091-0/+12
| | | | | Reviewed-by: Christoph Bumiller <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>