[Mesa-dev] Path to optimize (moving from create/bind/delete paradgim to set only ?)

Corbin Simpson mostawesomedude at gmail.com
Tue Nov 16 15:06:53 PST 2010


> On Tue, Nov 16, 2010 at 9:17 PM, Jerome Glisse <j.glisse at gmail.com> wrote:
>> On Tue, Nov 16, 2010 at 3:51 PM, Jakob Bornecrantz <wallbraker at gmail.com> wrote:
>>> On Tue, Nov 16, 2010 at 7:21 PM, Jerome Glisse <j.glisse at gmail.com> wrote:
>>>> Hi,
>>>>
>>>> So i looked a bit more at what path we should try to optimize in the
>>>> mesa/gallium/pipe infrastructure. Here are some number gathers from
>>>> games :
>>>> drawcall /     ps constant   vs constant     ps sampler    vs sampler
>>>> doom3            1.45             1.39               9.24              9.86
>>>> nexuiz             6.27             5.98               6.84              7.30
>>>> openarena  2805.64             1.38               1.51              1.54
>>>>
>>>> (value of 1 mean there is a call of this function for every draw call,
>>>> while value of 10 means there is a call to this function every 10 draw
>>>> call, average)
>>>>
>>>> Note that openarena ps constant number is understable as it's fixed GL
>>>> pipeline which is in use here and the pixel shader constant doesn't
>>>> need much change in those case.
>>>>
>>>> So i think clear trend is that there is a lot of constant upload and
>>>> sampler changing (allmost at each draw call for some games)
>>>
>>> Can you look into what actually changes between the sampler states?
>>> Also that vs sampler state change number for OpenArena looks a bit
>>> fishy to me.
>>>
>>> Cheers Jakob.
>>>
>>
>> I haven't looked at what change yet, i assume something small, i think
>> bugle trace of the engine is maybe easier to use than looking at
>> quake3 source code. For the vs sampler i was surprised too but it's
>> just the fact that q3 changes the vertex buffer a lot and this trigger
>> the vs sampler.

Could we get some problematic Bugle traces posted that we could all
examine, rather than guessing at this? It'd be very nice to know
whether or not the problems are in the GL state tracker layer before
we move on to optimizing Gallium's interface, mostly because Dx
appears to not suffer these same problems.

-- 
When the facts change, I change my mind. What do you do, sir? ~ Keynes

Corbin Simpson
<MostAwesomeDude at gmail.com>


More information about the mesa-dev mailing list