[Nouveau] [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Jun 5 15:41:58 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=96355

--- Comment #11 from Ilia Mirkin <imirkin at alum.mit.edu> ---
(In reply to gregory.hainaut from comment #10)
> Hi Ilia,
> 
> You told me by IRC that you validate all SSBOs when one is updated. I
> suspecting a similar patter for UBO. I.e. all UBOs are validated when one is
> updated.

Nope. UBOs (and textures) have their individual validation "buckets".

> 
> Potentially validation is even done for all shader stages. Anyway, I move a
> bit my UBO declaration to reduce the number of active UBO for a draw call.
> And I managed to win a couples of fps (67 fps => 70 fps).
> 
> So it might worth to investigate further the single SSBO/UBO bucket
> validation.

There are different stages of validation. It's all extremely confusing. st/mesa
validates everything, because it has to - which UBO is bound to where is based
on program uniform settings:

      binding =
&st->ctx->UniformBufferBindings[shader->UniformBlocks[i]->Binding];

So if either of those are updated, we have to revalidate. However there's a CSO
cache backing UBOs, which will avoid propagating the set to the backend if
nothing has changed.

I don't think we can do much better than this without some much larger
rejiggers.

Perhaps there are still some things we can do to speed up common scenarios like
"there are no ubos" or "there are no ssbos" or "there are no images". But it
doesn't seem immediately apparent to me.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20160605/5ac73732/attachment.html>


More information about the Nouveau mailing list