summaryrefslogtreecommitdiff
path: root/src/gallium/drivers
AgeCommit message (Collapse)Author
2010-06-19r300g: more informative warning in END_CSMarek Olšák
2010-06-19r300g: improve the ZTOP conditionMarek Olšák
The real difference here is that ZTOP is now enabled if all stencil ops are set to KEEP. This improves performance.
2010-06-19r300g: fix up the CS size of the rasterizer stateMarek Olšák
2010-06-18llvmpipe: Fix pointer dereference after free.José Fonseca
2010-06-18llvmpipe: limit the number of fragment shader variants kept aroundRoland Scheidegger
llvmpipe can create a large number of shader variants for a single shader (which are quite big), and they were only ever deleted if the shader itself was deleted. This is especially apparent in things like glean blendFunc where a new variant is created for every different subtest, chewing up all memory. This change limits the numbers of fragment shader variants (for all shaders) which are kept around to a fixed number. If that would be exceeded a fixed portion of the cached variants is deleted (since without tracking the used variants this involves flushing we don't want to delete only one). Always the least recently used variants (from all shaders together) are deleted. For now this is all per-context. Both the number of how many variants are cached (1024) as well as how many will be deleted at once (1/4 of the cache size) are just rough guesses and subject to further optimization.
2010-06-18r300g: fix hardlocks in occlusion queriesMarek Olšák
Early Z test (=ZTOP) must be disabled before a query is started, otherwise the GPU is dead. The order of emitted registers matters more than you might think. This fixes hardlocks in sauerbraten.
2010-06-18r300g: debug option for fake occlusion queriesMarek Olšák
2010-06-17r300g: more reasonable MSPOS defaults in error pathMarek Olšák
2010-06-17r300g: fix surface leaksMarek Olšák
2010-06-16r300g: Fix uninitialized variable warnings in error path.Vinson Lee
2010-06-16draw: rewrite stream output to handle all the dark cornersZack Rusin
register masks, multiple output buffers, multiple primitives, non-linear vertices (elts) and stride semantics.
2010-06-16r300g: Fix up resolve.Corbin Simpson
Yay for old code.
2010-06-16r300g: Fix MSAA state size.Corbin Simpson
2010-06-16r300g: Don't multisample non-32-bpp render targets.Corbin Simpson
2010-06-16r300g: Finish resolve function.Corbin Simpson
2010-06-16r300g: Add resource resolve function.Corbin Simpson
2010-06-16r300g: Moar MSAA setup.Corbin Simpson
Need to just add the resolve, then go switch to new DRM and test.
2010-06-16r300g: Fix indentation.Corbin Simpson
I could *not* let this slide since I'm on a 78-char-wide terminal.
2010-06-16r300g: Old MSAA code from before gallium-msaa.Corbin Simpson
2010-06-15softpipe/gs: fix a crash when a gs isn't presentZack Rusin
2010-06-14r300g: initialize US_CODE_BANK on r4xxMarek Olšák
2010-06-14r300g: fix uploading RC state shader constants on r3xxMarek Olšák
I've messed this up in one of my previous commits. Reported-by: Igor Murzov
2010-06-14r300g: drop begin_cs/end_csMarek Olšák
I have had a look at the libdrm sources and they just contain more or less the same checking we do in macros, and begin_cs may realloc the CS buffer if we overflow it, which never happens with r300g. So these are pretty much useless. There is a small but measurable performance increase by dropping the two functions.
2010-06-14r300g: rewrite occlusion queriesMarek Olšák
The previous implementation had issues with queries spanning over several command streams as well as using a very large number of queries. This fixes flickering in Enemy Territory: Quake Wars. The driver now renders everything correctly in this game and the graphics is awesome.
2010-06-14r300g: emit viewport state as a dword tableMarek Olšák
2010-06-14r300g: subclass pipe_surfaceMarek Olšák
2010-06-14r300g: simplify reloc macrosMarek Olšák
2010-06-14r300g: count CS dwords on debug builds onlyMarek Olšák
2010-06-13r300g: optimize emission of fragment shader constantsMarek Olšák
2010-06-13r300g: turn fragment shader into a CBMarek Olšák
2010-06-13r300g: turn depth stencil state into a CBMarek Olšák
2010-06-13r300g: turn clip state into a CBMarek Olšák
2010-06-13r300g: turn blend color into a CBMarek Olšák
2010-06-13r300g: turn blend state into a CBMarek Olšák
2010-06-13r300g: add API for building command buffersMarek Olšák
The idea is to build a hardware command buffer for every CSO and memcpy the buffer to a command stream at bind time (or dirty-state-emission time, to be precise).
2010-06-13r300g: inline FLUSH_CSMarek Olšák
The fewer macros, the better.
2010-06-13r300g: reorder CS macros and document them a littleMarek Olšák
2010-06-13r300g: drop DBG_CSMarek Olšák
I'd like the CS macros to be as lightweight as possible for performance reasons.
2010-06-13r300g: inline CHECK_CSMarek Olšák
2010-06-13r300g: replace r300_cs_info with simplier get_cs_free_dwordsMarek Olšák
2010-06-13r300g: fix multiple render targetsMarek Olšák
This fixes tests/drawbuffers.
2010-06-13r300g: remove r300_state.hMarek Olšák
2010-06-13r300g: move two-sided stencilref fallback to its own fileMarek Olšák
2010-06-13r300g: move index buffer translate functions to their new homeMarek Olšák
2010-06-13r300g: add fallback for unaligned/unsupported vertex stride/offset/formatMarek Olšák
There is a problem though, the translate module cannot emit half float vertices.
2010-06-13r300g: upload only vertex buffers referenced by vertex elementsMarek Olšák
2010-06-12softpipe: small cleanupZack Rusin
2010-06-11scons: Disable i965g build if using MSVC.Vinson Lee
i965g uses C99 constructs that are not supported by MSVC.
2010-06-11scons: Disable i915g build if using MSVC.Vinson Lee
i915g uses C99 constructs that are not supported by MSVC.
2010-06-11r300/compiler: Implement simple loop emulationTom Stellard
The loop emulation unrolls loops as may times as possbile while still keeping the shader program below the maximum instruction limit. At this point, there are no checks for constant conditionals. This is only enabled for fragment shaders.