summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell2010-10-098-35/+80
| | | | | Don't branch more than once in quick succession. Don't branch at the end of the shader.
* gallivm: simpler uint8->float conversionsKeith Whitwell2010-10-091-0/+10
| | | | | LLVM seems to finds it easier to reason about these than our mantissa-manipulation code.
* gallivm: prefer blendvb for integer argumentsKeith Whitwell2010-10-091-2/+4
|
* gallivm: specialized x8z24 depthtest pathKeith Whitwell2010-10-092-31/+94
| | | | Avoid unnecessary masking of non-existant stencil component.
* llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fsKeith Whitwell2010-10-091-2/+2
| | | | Better than GALLIVM_DEBUG if you're only interested in fragment shaders.
* llvmpipe: store zero into all alloca'd valuesKeith Whitwell2010-10-091-0/+1
| | | | Fixes slowdown in isosurf with earlier versions of llvm.
* llvmpipe: use alloca for fs color outputsKeith Whitwell2010-10-091-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 ztestKeith Whitwell2010-10-093-14/+34
| | | | Don't calculate 1/w for quads which aren't visible...
* llvmpipe: Prevent z > 1.0José Fonseca2010-10-091-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é Fonseca2010-10-094-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 boundariesZack Rusin2010-10-091-2/+2
|
* i965: Initialize member variables.Vinson Lee2010-10-081-0/+2
| | | | | | | | | Fixes these GCC warnings. brw_wm_fp.c: In function 'search_or_add_const4f': brw_wm_fp.c:92: warning: 'reg.Index2' is used uninitialized in this function brw_wm_fp.c:84: note: 'reg.Index2' was declared here brw_wm_fp.c:92: warning: 'reg.RelAddr2' is used uninitialized in this function brw_wm_fp.c:84: note: 'reg.RelAddr2' was declared here
* i965: Silence unused variable warning on non-debug builds.Vinson Lee2010-10-081-0/+1
| | | | | | Fixes this GCC warning. brw_vs.c: In function 'do_vs_prog': brw_vs.c:46: warning: unused variable 'ctx'
* i965: Silence unused variable warning on non-debug builds.Vinson Lee2010-10-081-0/+1
| | | | | | Fixes this GCC warning. brw_eu_emit.c: In function 'brw_math2': brw_eu_emit.c:1189: warning: unused variable 'intel'
* i915: Silence unused variable warning in non-debug builds.Vinson Lee2010-10-081-0/+1
| | | | | | Fixes this GCC warning. i915_vtbl.c: In function 'i915_assert_not_dirty': i915_vtbl.c:670: warning: unused variable 'dirty'
* gallivm: make use of new iround code in lp_bld_conv.Roland Scheidegger2010-10-091-4/+4
| | | | Only requires sse2 now.
* gallivm: optimize soa linear clamp to edge wrap mode a bitRoland Scheidegger2010-10-091-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 caseRoland Scheidegger2010-10-091-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 simplificationRoland Scheidegger2010-10-091-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 bitRoland Scheidegger2010-10-091-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_fractRoland Scheidegger2010-10-091-5/+1
|
* gallivm: faster iround implementation for sse2Roland Scheidegger2010-10-091-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 commentRoland Scheidegger2010-10-091-6/+6
| | | | trunc of -1.5 is -1.0 not 1.0...
* i915: Silence unused variable warning in non-debug builds.Vinson Lee2010-10-081-0/+1
| | | | | | Fixes this GCC warning. i830_vtbl.c: In function 'i830_assert_not_dirty': i830_vtbl.c:704: warning: unused variable 'i830'
* docs: Update status of GL 3.x related extensionsIan Romanick2010-10-081-3/+3
|
* docs: skeleton for 7.10 release notesIan Romanick2010-10-081-0/+53
|
* glsl: Remove const decoration from inlined function parametersIan Romanick2010-10-081-0/+7
| | | | | | | | | | | The constness of the function parameter gets inlined with the rest of the function. However, there is also an assignment to the parameter. If this occurs inside a loop the loop analysis code will get confused by the assignment to a read-only variable. Fixes bugzilla #30552. NOTE: this is a candidate for the 7.9 branch.
* intel: Enable GL_ARB_explicit_attrib_locationIan Romanick2010-10-081-0/+1
|
* main: Enable GL_ARB_explicit_attrib_location for swrastIan Romanick2010-10-081-1/+2
|
* glsl: Add linker support for explicit attribute locationsIan Romanick2010-10-083-4/+48
|
* glsl: Track explicit location in AST to IR translationIan Romanick2010-10-084-0/+60
|
* glsl: Regenerate files changes by previous commitIan Romanick2010-10-082-902/+956
|
* glsl: Add parser support for GL_ARB_explicit_attrib_location layoutsIan Romanick2010-10-085-4/+75
| | | | | Only layout(location=#) is supported. Setting the index requires GLSL 1.30 and GL_ARB_blend_func_extended.
* glcpp: Regenerate files changes by previous commitIan Romanick2010-10-082-124/+120
|
* glcpp: Add the define for ARB_explicit_attrib_location when presentIan Romanick2010-10-081-0/+3
|
* glsl: Regenerate files modified by previous commitsIan Romanick2010-10-083-1412/+1431
|
* glsl: Wrap ast_type_qualifier contents in a struct in a unionIan Romanick2010-10-085-100/+109
| | | | This will ease adding non-bit fields in the near future.
* glsl: Clear type_qualifier using memsetIan Romanick2010-10-081-19/+86
|
* glsl: Slight refactor of error / warning checking for ARB_fcc layoutIan Romanick2010-10-081-9/+7
|
* glsl: Refactor 'layout' grammar to match GLSL 1.60 spec grammarIan Romanick2010-10-081-10/+21
|
* glsl: Fail linking if assign_attribute_locations failsIan Romanick2010-10-081-1/+3
|
* r600g: Silence uninitialized variable warning.Vinson Lee2010-10-081-1/+2
|
* r600g: Silence uninitialized variable warning.Vinson Lee2010-10-081-1/+2
|
* r600g: Silence uninitialized variable warning.Vinson Lee2010-10-081-1/+2
|
* gallivm: Remove unnecessary header.Vinson Lee2010-10-081-1/+0
|
* i965: Add register coalescing to the new FS backend.Eric Anholt2010-10-081-0/+80
| | | | | | | Improves performance of my GLSL demo 14.3% (+/- 4%, n=4) by eliminating the moves used in ir_assignment and ir_swizzle handling. Still 16.5% to go to catch up to the Mesa IR backend, presumably because instructions are almost perfectly mis-scheduled now.
* i965: Enable attribute swizzling (repositioning) in the gen6 SF.Eric Anholt2010-10-081-1/+2
| | | | | | | | | We were trying to remap a fully-filled array down to only handing the WM the components it uses. This is called attribute swizzling, and if you don't enable it you just get 1:1 mappings of inputs to outputs. This almost fixes glsl-routing, except for the highest gl_TexCoord[] indices.
* i965: Fix new FS gen6 interpolation for sparsely-populated arrays.Eric Anholt2010-10-081-1/+1
| | | | We'd overwrite the same element twice.
* i965: Fix gen6 WM push constants updates.Eric Anholt2010-10-081-1/+2
| | | | | | We would compute a new buffer, but never point the hardware at the new buffer. This partially fixes glsl-routing, as now it get the updated uniform for which attribute to draw.
* gallivm: Help for combined extraction and broadcasting.José Fonseca2010-10-083-15/+102
| | | | Doesn't change generated code quality, but saves some typing.