summaryrefslogtreecommitdiff
path: root/src/gallium
AgeCommit message (Collapse)Author
2009-08-20softpipe: fix xpot calculation typo in sp_get_samples_2d_nearest_clamp_POTKeith Whitwell
2009-08-20softpipe: slightly optimized tiling calculationKeith Whitwell
2009-08-20softpipe: fix glitch in texel lookups on fastpathsKeith Whitwell
Fixes two issues - firstly for mipmap levels with one or more dimensions smaller than tilesize, the code was sampling off the edge of the texture (but still within the tile). Secondly, in the linear_mipmap_linear case, both the default code and new fastpath were incorrect. This change fixes the fastpath and adds a comment to the default path, which still needs to be fixed. Basically the issue is that the coordinates in the smaller texture level are/were being computed by just dividing thecoordinates from the larger texture level by two, as in: x0[j] /= 2; y0[j] /= 2; x1[j] /= 2; y1[j] /= 2; The issues with this are signficant. Initially x1 is most often equal to x0+1, but after this, it will likely be equal to x0, so we will not actually be performing the linear blend within the smaller mipmap. The fastpath code avoided this (recalculated x1), but was still using the weighting factors from the larger mipmap level (xw, yw), which were incorrect. Change the fastpath code to do two full, independent linear samples of the two mipmap levels before blending. The default code needs to do the same thing.
2009-08-20softpipe: optimized path for simple mipmap samplingKeith Whitwell
linear-mip-linear-repeat-POT sampling faspath, provides a very nice speedup to apps that do this common type of texturing. Test case: demos/terrain, turn fog off, turn texturing on. Without patch: 12 fps With patch: 20 fps.
2009-08-18softpipe: move flatshade-first check out of loopKeith Whitwell
2009-08-11Revert "softpipe: rearrange blend fastpaths"Keith Whitwell
This reverts commit 1295cf423e21dad04a947960782ffa8db2739709. The original formulation was easier to understand & work with. Will revisit this later.
2009-08-11softpipe: reduce textual differences between exec and sse shader pathsKeith Whitwell
Unshare one function (setup_pos_vector) as we want to push this code into the generated shader in the SSE case.
2009-08-11softpipe: remove gallivm fragment shadersKeith Whitwell
However we do llvm integration, it will be different & more comprehensive than this.
2009-07-30softpipe: setup quad outputs from with fs->runKeith Whitwell
2009-07-30softpipe: rearrange blend fastpathsKeith Whitwell
2009-07-30softpipe: add depth-lequal z16 pathKeith Whitwell
2009-07-30softpipe: remove unused variable in shade_quadKeith Whitwell
2009-07-27softpipe: fix off-by-one in nearest texcoord routinesKeith Whitwell
Stray '- 0.5' copied from linear versions.
2009-07-27softpipe: example fast paths for simple samplersKeith Whitwell
All these fastpaths are examples of the types of things we'd code-generate in a more sophisticated version of softpipe.
2009-07-27softpipe: fastpath for interpolated z16 less depthtestingKeith Whitwell
Because this is interpolated (ie. early) depth, we can build in an assumption about the quads emitted by triangle setup, ie that they are actually linear spans. Interpolate z over those spans in z16 format to save on math & conversion.
2009-07-27softpipe: cope with nr_cbufs == 0Keith Whitwell
Disable blend code when no color buffer
2009-07-27softpipe: move all depth/stencil/alpha pixel processing into one stageKeith Whitwell
2009-07-25softpipe: fix error in scissor state dependenciesKeith Whitwell
2009-07-25softpipe: cleanup framebuffer state routine slightlyKeith Whitwell
2009-07-24softpipe: move all color-combine code into sp_quad_blend.cKeith Whitwell
Consolidate the read-modify-write color combining code from the blend, colormask and output stages.
2009-07-24softpipe: fix typoKeith Whitwell
2009-07-24softpipe: example fastpaths in blendingKeith Whitwell
2009-07-24softpipe: actually pass >1 quad from triangle routineKeith Whitwell
First attempt
2009-07-24softpipe: expand quad pipeline to process >1 quad at a timeKeith Whitwell
This is part one -- we still only pass a single quad down, but the code can now cope with more. The quads must all be from the same tile.
2009-07-24softpipe: rip out old mulithread supportKeith Whitwell
2009-07-23softpipe: avoid flushing depth buffer cache on swapbuffersKeith Whitwell
There's no need to push out depth buffer contents on swapbuffers. Note that this change doesn't throw away depth buffer changes, it simply holds them in the cache over calls to swapbuffers. The hope is that swapbuffers will be followed by a clear() which means in that case we won't have to write the changes out.
2009-07-23softpipe: also shortcircuit non-texture tile lookupsKeith Whitwell
2009-07-22softpipe: shortcircuit repeated lookups of the same tileKeith Whitwell
The sp_tile_cache is often called repeatedly to look up the same tile. Add a cache (to the cache) of the single tile most recently retreived and make a quick inline check to see if this matches the subsequent request. Add a tile_address bitfield struct to make this check easier.
2009-07-22softpipe: remove unused vars in sp_setup.cKeith Whitwell
2009-07-22softpipe: use bitwise logic to setup quad masks in sp_setupKeith Whitwell
2009-07-22softpipe: simplify flush_spansKeith Whitwell
No loss of performance, but simpler code.
2009-07-22softpipe: make some small steps to flush texture cache less frequentlyKeith Whitwell
No performance gain yet, but the code is a bit cleaner.
2009-07-22gallium/xlib: use XSHM for swapbuffersKeith Whitwell
Makes some difference, but suprisingly little. Barely worth the effort.
2009-07-22util: _debug_printf should print even when DEBUG is not definedKeith Whitwell
The leading underscore is meaningful... This function is used by _warning and _error functions as well as the more common debug_printf(). debug_printf (without underscore) gets turned off when DEBUG is disabled, but warning/error messages still use this function to get their message out.
2009-07-22softpipe: remove backwards dependency from tilecache to softpipeKeith Whitwell
The tile cache is a utility, it shouldn't know anything about the entity which is making use of it (ie softpipe). Remove softpipe parameter to all the tilecache function calls, and also remove the need to keep a softpipe pointer in the sampler structs.
2009-07-22gallium: remove multiple aliases for TGSI opcodesKeith Whitwell
This is a source of ongoing confusion. TGSI has multiple names for opcodes where the same semantics originate in multiple shader APIs. For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for opcodes with the same semantics, but aliases those names to the same underlying opcode number. This makes it very difficult to visually inspect two sets of opcodes (eg in state tracker & driver) and check if they implement the same functionality. This patch arbitarily rips out the versions of the opcodes not currently favoured by the mesa state tracker and leaves us with a single name for each distinct operation.
2009-07-22gallium: simplify tgsi_full_immediate structKeith Whitwell
Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
2009-07-20tgsi: get texturing working in vertex shader sse2 pathKeith Whitwell
Missing file from previous commit.
2009-07-20tgsi: get texturing working in vertex shader sse2 pathKeith Whitwell
2009-07-20tgsi: fix regression in indexed const lookupsKeith Whitwell
This function was calling get_input_base() and get_output_base() to get the names of a couple of register to use as temps. Those functions no longer return registers, so adjust it to get the registers elsewhere. This change doesn't address the issue that it's a fairly poor way to grab a register name by calling a function with an apparently unrelated meaning.
2009-07-20r300g: Fix SCons build.Michel Dänzer
2009-07-20gallium/trace: Fix SCons build.Michel Dänzer
2009-07-20r300g: Guard R500 register writes by is_r500 check.Michel Dänzer
Flagged by the DRM command stream checker. This allows the driver to work on non-R500 cards.
2009-07-18gallium: make g3dvl build againDave Airlie
2009-07-17Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile progs/glsl/multitex.c src/mesa/main/enums.c src/mesa/main/state.c src/mesa/main/texenvprogram.c src/mesa/main/version.h
2009-07-18st/egl: Fix broken build after EGL thread changesAndrew Randrianasulu
2009-07-17egl: Remove redundant DeletePending flag.Chia-I Wu
A context or surface that is neither linked to a display nor current to a thread should be destroyed. Therefore, an unlinked context or surface implies a pending delete automatically. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-07-17egl: Use the link functions to manage resources.Chia-I Wu
This commit uses the newly introduced link functions to manage EGL contexts and surfaces. As a result of this, the API for drivers are changed. All drivers are updated for the change. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-07-16python/retrace: Process the call no passed to --to option inclusively.José Fonseca
2009-07-16python/retrace: Dump the surface copy contents.José Fonseca