[Mesa-dev] [PATCH 0/3] save about 1MB per llvm vertex shader

Frank Henigman fjhenigman at google.com
Mon Dec 30 12:56:40 PST 2013


ping

On Wed, Nov 27, 2013 at 3:00 PM, Frank Henigman <fjhenigman at google.com> wrote:
> So the LLVM project did not care for any of my suggestions about JIT
> memory management.
> Not a big surprise as they don't seem to want much to do with JIT
> anymore, preferring MCJIT.
> Some day mesa will probably have to abandon JIT too.  Until then I
> think the cost of maintaining
> the memory manager classes I've introduced in this patch set is far
> outweighed by the benefit of
> saving about 1MB per shader.
>
> v3 of the set follows.  Patch 1 is updated to work with llvm 3.4-rc1.
> 2 and 3 just rebased.
>
> As for the MCJIT-only future, apparently it has a friendlier memory
> manager to work with.
> I haven't tried it yet as I don't want to introduce more code to mesa
> as long as we can get
> away with one manager for both JIT and MCJIT, but I'll see about
> setting up a branch for
> for MCJIT-only stuff, to be pulled into mesa when the time is right.
>
> On Tue, Oct 1, 2013 at 3:16 PM, Frank Henigman <fjhenigman at google.com> wrote:
>> I've now tested with LLVM from 3.1 to 3.4, thus covering both JIT and MCJIT.
>> I also factored out a generic delegating memory manager and sent it to
>> the LLVM list: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-October/066043.html
>> Do you want to see that play out or could we add this to mesa now?
>> v2 of this set has been sent to the mesa list.  Only patch 1 changed
>> (refactored as mentioned above), 2-3 were just rebased.
>> Thanks.  Sorry for the late response.
>>
>> On Tue, Jul 9, 2013 at 3:05 PM, Jose Fonseca <jfonseca at vmware.com> wrote:
>>> Frank,
>>>
>>> Sorry for the long delay.  Lately I haven't been able to keep up with email, both internal or external.
>>>
>>> This series looks great.
>>>
>>> Two comments:
>>>
>>> - currently we prefer the old JIT to MCJIT. could you confirm that this series should work with the old JIT and MCJIT just as well?
>>>
>>> - we should probably consider upstreaming ShaderMemoryManager into LLVM (after renaming), as there might be other users interested, and also because it would reduce the burden of keeping this code up-to-date with LLVM
>>>
>>>
>>> Jose
>>>
>>> ----- Original Message -----
>>>> Patch 1 changes how llvm allocates memory to hold generated code, and will
>>>> save memory for llvm vertex shaders, geometry shaders and llvmpipe. It's not
>>>> so pretty but llvm makes life difficult for us: default memory manager is
>>>> not accessible to derive from. I also tried generating relocatable code so
>>>> it could just be copied out, but it would crash in that code. (Didn't dig
>>>> into why.)
>>>> Patch 3 saves additional memory but so far only for vertex shaders. At a
>>>> glance it seems simple to do the same for geometry shaders and llvmpipe.
>>>> I'll take a stab at those if there is interest.
>>>>
>>>> No piglit regressions on pineview with gallium driver. This code has also
>>>> been in Chrome OS for a few months.
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>


More information about the mesa-dev mailing list