[Mesa-dev] [PATCH] winsys/amdgpu: add a fast exit path into amdgpu_cs_add_buffer

Nicolai Hähnle nhaehnle at gmail.com
Mon Jan 30 17:32:40 UTC 2017


On 30.01.2017 18:17, Jan Ziak wrote:
> On Mon, Jan 30, 2017 at 5:08 PM, Marek Olšák <maraeo at gmail.com> wrote:
>> On Mon, Jan 30, 2017 at 4:41 PM, Jan Ziak <0xe2.0x9a.0x9b at gmail.com> wrote:
>>> Hello
>>>
>>> Just a note about the future of Mesa:
>>>
>>> It is likely that optimizing Mesa will lead you (Marek) to consider
>>> generative programming some years into the future:
>>>
>>> Optimal code is basically a form of efficient adaptation to current
>>> circumstances. Generating the optimal code by hand can be
>>> inefficient/tedious and it might be possible to generate some of it by
>>> a program. The generator reads in C/C++/other code&data and outputs
>>> optimized C/C++ code containing the necessary guards, data parsers,
>>> specialized data structures, etc. The machine-generated code can be an
>>> order of magnitude larger than the input to the generator - which is
>>> one of the main reasons generative programming increases programmer
>>> productivity in the long term.
>>>
>>> The generator itself can be written in any programming language you
>>> prefer (although personally I only recommend a compiled language with
>>> static types).
>>
>> If it were so simple, somebody would have done it already.
>>
>> Marek
>
> It is simpler, more productive and less error-prone for Mesa-like
> libraries than trying to optimize critical C code&data structures by
> hand.
>
> It is impossible to improve Mesa performance to a next-generation
> level without refusing some hand-written code. The human brain is
> incapable of handling so many states.
>
> If you don't try it you will never know how far it can go in terms of
> optimizing Mesa.

Talk is easy, action is hard - in this case particularly, given how 
unstructured a lot of the stuff is.

Note that automatic generation is already used for the command stream 
debug dumping, and if you think you found a place where it really helps, 
feel free to show us (with patches!) how it's done :P

In the meantime, you may find better targets for such efforts in LLVM.

Cheers,
Nicolai


More information about the mesa-dev mailing list