[Mesa-dev] wider registers in llvmpipe

Roland Scheidegger sroland at vmware.com
Tue Jul 17 16:58:27 PDT 2012


Am 17.07.2012 23:49, schrieb Stéphane Marchesin:
> On Mon, Jul 16, 2012 at 11:43 AM, Jose Fonseca <jfonseca at vmware.com> wrote:
>> FYI, I've just pushed a branch named llvmpipe-wider-regs, which allows llvmpipe to leverage SIMD registers wider than 128bits.
>>
>> Unfortunately, performance-wise this doesn't change much, as llvmpipe performance is dominated by integer SIMD instructions, whereas currently the AVX instruction set currently only supports floating SIMD instructions.  Actually, often things will get slightly slower, as there are considerable overheads in piecing together the 256 floating point code paths and 128-bit integer code paths.
>>
>> The benefit for this change is foremost architectural: llvmpipe now makes less assumptions regarding the number of pixels/quads/etc that fit into a hardware register, a flexibility which will be necessary to get things like per-pixel LOD working properly.
>>
>> This barely touch files outside gallivm/draw/llvmpipe modules. I haven't tested i915g, r300g, so let me know if there are regressions / concerns. I'd like to merge this into master soon.
> 
> 
> It regresses the following on i915g (and I suspect it will regress on
> llvmpipe also):
> draw-vertices pass -> abort
> draw-vertices-half-float pass -> crash
> draw-vertices-half-float-user pass -> crash
> draw-vertices-user pass -> abort
> 
> The machine in question doesn't have AVX (or llvm 3.1 for that matter).


I've tested this with both llvm 3.1 and 2.9, with and without avx and
draw-vertices and draw-vertices-half-float always pass with llvmpipe.
I don't see the other two tests (draw-vertices-half-float-user and
draw-vertices-user) in piglit.
Can you provide any more information about the crashes/aborts?

Roland


More information about the mesa-dev mailing list