Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fs | Keith Whitwell | 2010-10-09 | 1 | -2/+2 |
| | | | | Better than GALLIVM_DEBUG if you're only interested in fragment shaders. | ||||
* | llvmpipe: store zero into all alloca'd values | Keith Whitwell | 2010-10-09 | 1 | -0/+1 |
| | | | | Fixes slowdown in isosurf with earlier versions of llvm. | ||||
* | llvmpipe: use alloca for fs color outputs | Keith Whitwell | 2010-10-09 | 1 | -4/+12 |
| | | | | Don't try to emit our own phi's, let llvm mem2reg do it for us. | ||||
* | llvmpipe: defer attribute interpolation until after mask and ztest | Keith Whitwell | 2010-10-09 | 3 | -14/+34 |
| | | | | Don't calculate 1/w for quads which aren't visible... | ||||
* | llvmpipe: Prevent z > 1.0 | José Fonseca | 2010-10-09 | 1 | -6/+14 |
| | | | | | | | | | | | | The current interpolation schemes causes precision loss. Changing the operation order helps, but does not completely avoid the problem. The only short term solution is to clamp z to 1.0. This is unfortunate, but probably unavoidable until interpolation is improved. | ||||
* | gallivm: Do size computations simultanously for all dimensions (AoS). | José Fonseca | 2010-10-09 | 4 | -92/+177 |
| | | | | | | | | | | Operate simultanouesly on <width, height, depth> vector as much as possible, instead of doing the operations on vectors with broadcasted scalars. Also do the 24.8 fixed point scalar with integer shift of the texture size, for unnormalized coordinates. AoS path only for now -- the same thing can be done for SoA. | ||||
* | llvmpipe: fix rasterization of vertical lines on pixel boundaries | Zack Rusin | 2010-10-09 | 1 | -2/+2 |
| | |||||
* | gallivm: make use of new iround code in lp_bld_conv. | Roland Scheidegger | 2010-10-09 | 1 | -4/+4 |
| | | | | Only requires sse2 now. | ||||
* | gallivm: optimize soa linear clamp to edge wrap mode a bit | Roland Scheidegger | 2010-10-09 | 1 | -23/+30 |
| | | | | | | | | | Clamp against 0 instead of -0.5, which simplifies things. The former version would have resulted in both int coords being zero (in case of coord being smaller than 0) and some "unused" weight value, whereas now the int coords will be 0 and 1, but weight will be 0, hence the lerp should produce the same value. Still not happy about differences between normalized and non-normalized... | ||||
* | gallivm: avoid unnecessary URem in linear wrap repeat case | Roland Scheidegger | 2010-10-09 | 1 | -3/+7 |
| | | | | | | Haven't looked at what code this exactly generates but URem can't be fast. Instead of using two URem only use one and replace the second one with select/add (this is what the corresponding aos code already does). | ||||
* | gallivm: more linear tex wrap mode calculation simplification | Roland Scheidegger | 2010-10-09 | 1 | -12/+9 |
| | | | | | | | Rearrange order of operations a bit to make some clamps easier. All calculations should be equivalent. Note there seems to be some inconsistency in the clamp to edge case wrt normalized/non-normalized coords, could potentially simplify this too. | ||||
* | gallivm: optimize some tex wrap mode calculations a bit | Roland Scheidegger | 2010-10-09 | 1 | -6/+11 |
| | | | | | | | | | Sometimes coords are clamped to positive numbers before doing conversion to int, or clamped to 0 afterwards, in this case can use itrunc instead of ifloor which is easier. This is only the case for nearest calculations unfortunately, except linear MIRROR_CLAMP_TO_EDGE which for the same reason can use a unsigned float build context so the ifloor_fract helper can reduce this to itrunc in the ifloor helper itself. | ||||
* | gallivm: replace sub/floor/ifloor combo with ifloor_fract | Roland Scheidegger | 2010-10-09 | 1 | -5/+1 |
| | |||||
* | gallivm: faster iround implementation for sse2 | Roland Scheidegger | 2010-10-09 | 1 | -1/+53 |
| | | | | | | sse2 supports round to nearest directly (or rather, assuming default nearest rounding mode in MXCSR). Use intrinsic to use this rather than round (sse41) or bit manipulation whenever possible. | ||||
* | gallivm: fix trunc/itrunc comment | Roland Scheidegger | 2010-10-09 | 1 | -6/+6 |
| | | | | trunc of -1.5 is -1.0 not 1.0... | ||||
* | r600g: Silence uninitialized variable warning. | Vinson Lee | 2010-10-08 | 1 | -1/+2 |
| | |||||
* | r600g: Silence uninitialized variable warning. | Vinson Lee | 2010-10-08 | 1 | -1/+2 |
| | |||||
* | r600g: Silence uninitialized variable warning. | Vinson Lee | 2010-10-08 | 1 | -1/+2 |
| | |||||
* | gallivm: Remove unnecessary header. | Vinson Lee | 2010-10-08 | 1 | -1/+0 |
| | |||||
* | gallivm: Help for combined extraction and broadcasting. | José Fonseca | 2010-10-08 | 3 | -15/+102 |
| | | | | Doesn't change generated code quality, but saves some typing. | ||||
* | llvmpipe: First minify the texture size, then broadcast. | José Fonseca | 2010-10-08 | 3 | -32/+42 |
| | |||||
* | gallivm: Move into the as much of the second level code as possible. | José Fonseca | 2010-10-08 | 5 | -219/+120 |
| | | | | | Also, pass more stuff trhough the sample build context, instead of arguments. | ||||
* | gallivm: Warn when doing inefficient integer comparisons. | José Fonseca | 2010-10-08 | 1 | -2/+18 |
| | |||||
* | gallivm: Avoid control flow for two-sided stencil test. | José Fonseca | 2010-10-08 | 1 | -92/+58 |
| | |||||
* | llvmpipe: fix off-by-one in tri_16 | Keith Whitwell | 2010-10-08 | 1 | -1/+1 |
| | |||||
* | llvmpipe: add rast_tri_4_16 for small lines and points | Keith Whitwell | 2010-10-08 | 7 | -148/+161 |
| | |||||
* | llvmpipe: clean up setup_tri a little | Keith Whitwell | 2010-10-08 | 1 | -27/+26 |
| | |||||
* | gallivm: round rather than truncate in new 4x4f->1x16ub conversion path | Keith Whitwell | 2010-10-08 | 1 | -17/+42 |
| | |||||
* | gallivm: Use the wrappers for SSE pack intrinsics. | José Fonseca | 2010-10-08 | 1 | -15/+3 |
| | | | | Fixes assertion failures on LLVM 2.6. | ||||
* | gallivm: special case conversion 4x4f to 1x16ub | Keith Whitwell | 2010-10-08 | 1 | -0/+84 |
| | | | | | Nice reduction in the number of operations required for final color output in many shaders. | ||||
* | llvmpipe: avoid overflow in triangle culling | Keith Whitwell | 2010-10-08 | 1 | -40/+39 |
| | | | | | | | | | | | Avoid multiplying fixed-point values. Calculate triangle area in floating point use that for culling. Lift area calculations up a level as we are already doing this in the triangle_both() case. Would like to share the calculated area with attribute interpolation, but the way the code is structured makes this difficult. | ||||
* | llvmpipe: fail gracefully on oom in scene creation | Keith Whitwell | 2010-10-08 | 6 | -42/+92 |
| | |||||
* | gallivm: Implement brilinear filtering. | José Fonseca | 2010-10-08 | 1 | -1/+89 |
| | |||||
* | gallivm: Fix copy'n'paste typo in previous commit. | José Fonseca | 2010-10-08 | 1 | -2/+2 |
| | |||||
* | gallivm: Clamp mipmap level and zero mip weight simultaneously. | José Fonseca | 2010-10-08 | 4 | -14/+52 |
| | |||||
* | gallivm: Use lp_build_ifloor_fract for lod computation. | José Fonseca | 2010-10-08 | 1 | -5/+3 |
| | | | | Forgot this one before. | ||||
* | gallivm: Don't compute the second mipmap level when frac(lod) == 0 | José Fonseca | 2010-10-08 | 2 | -139/+175 |
| | |||||
* | gallivm: Simplify lp_build_mipmap_level_sizes' interface. | José Fonseca | 2010-10-08 | 4 | -67/+42 |
| | |||||
* | gallivm: Do not do mipfiltering when magnifying. | José Fonseca | 2010-10-08 | 2 | -16/+16 |
| | | | | If lod < 0, then invariably follows that ilevel0 == ilevel1 == 0. | ||||
* | r600g: Remove unnecessary header. | Vinson Lee | 2010-10-08 | 1 | -1/+0 |
| | |||||
* | r600g: drop width/height per level storage. | Dave Airlie | 2010-10-08 | 2 | -6/+0 |
| | | | | these aren't used anywhere, so just waste memory. | ||||
* | r600g: add some RG texture format support. | Dave Airlie | 2010-10-08 | 2 | -0/+28 |
| | |||||
* | gallivm: Vectorize the rho computation. | José Fonseca | 2010-10-07 | 3 | -37/+92 |
| | |||||
* | r600g: fix Z export enable bits. | Dave Airlie | 2010-10-07 | 1 | -1/+1 |
| | | | | | | we should be checking output array not input to decide. Signed-off-by: Dave Airlie <[email protected]> | ||||
* | r600g: use format from the sampler view not from the texture. | Dave Airlie | 2010-10-07 | 2 | -6/+6 |
| | | | | | we want to use the format from the sampler view which isn't always the same as the texture format when creating sampler views. | ||||
* | r600g: fix evergreen interpolation setup | Andre Maasikas | 2010-10-07 | 1 | -0/+3 |
| | | | | | | | | interp data is stored in gpr0 so first interp overwrote it and subsequent ones got wrong values reserve register 0 so it's not used for attribs. alternative is to interpolate attrib0 last (reverse, as r600c does) | ||||
* | st/vega: Fix version check in context creation. | Chia-I Wu | 2010-10-07 | 1 | -1/+1 |
| | | | | This fixes a regression since 4531356817ec8383ac35932903773de67af92e37. | ||||
* | targets/egl: Fix linking with libdrm. | Chia-I Wu | 2010-10-07 | 1 | -4/+6 |
| | |||||
* | llvmpipe: Cleanup depth-stencil clears. | José Fonseca | 2010-10-06 | 3 | -15/+34 |
| | | | | Only cosmetic changes. No actual practical difference. | ||||
* | util: Cleanup util_pack_z_stencil and friends. | José Fonseca | 2010-10-06 | 1 | -22/+28 |
| | | | | | | | | | | | - Handle PIPE_FORMAT_Z32_FLOAT packing correctly. - In the integer version z shouldn't be passed as as double. - Make it clear that the integer versions should only be used for masks. - Make integer type sizes explicit (uint32_t for now, although uint64_t will be necessary later to encode f32_s8_x24). |