[Mesa-dev] wider registers in llvmpipe

Roland Scheidegger sroland at vmware.com
Tue Jul 17 08:12:02 PDT 2012


Am 17.07.2012 16:02, schrieb Tom Stellard:
> On Tue, Jul 17, 2012 at 09:26:49AM -0400, Kristian Høgsberg wrote:
>> On Tue, Jul 17, 2012 at 05:57:37AM -0700, Jose Fonseca wrote:
>>> ----- Original Message -----
>>>> 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.
>>>
>>> I went ahead and pushed, after doing more testing. If there's any regression on any driver as consequence just let me know.
>>
>> We'll need something like this.
>>
>> Kristian
>>
>> From 1ae59bde4c960004aa22255b25fb4175beaafdd6 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh at bitplanet.net>
>> Date: Tue, 17 Jul 2012 09:24:39 -0400
>> Subject: [PATCH] gallium: Add $(TOP)/src/gallium/auxiliary/util to include
>>  path
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> So we pick up the new util/u_cpu_detect.h
>>
>> Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
>> ---
>>  src/gallium/Makefile.template |    1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/src/gallium/Makefile.template b/src/gallium/Makefile.template
>> index 036c119..ed14977 100644
>> --- a/src/gallium/Makefile.template
>> +++ b/src/gallium/Makefile.template
>> @@ -20,6 +20,7 @@ INCLUDES = \
>>  	-I. \
>>  	-I$(TOP)/src/gallium/include \
>>  	-I$(TOP)/src/gallium/auxiliary \
>> +	-I$(TOP)/src/gallium/auxiliary/util \
>>  	-I$(TOP)/src/gallium/drivers \
>>  	$(LIBRARY_INCLUDES)
>>  
>> -- 
>> 1.7.10.2
>>
> 
> I think we need to add the util prefix to the u_cpu_detect.h include
> in lp_bld_quad.c.  This is what is done in all the other gallivm files.
> 
> See attached patch.

Yes I think that would be what was intended. That said, the include is
only there for something I didn't actually do in the end, so I've just
removed it.

Roland



More information about the mesa-dev mailing list