* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
@ 2016-06-03 8:01 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-03 8:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-03 8:01 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 403 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #1 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
As a side note, I potentially have a similar behavior with shader image
(st_bind_*_images). I need to double check my engine as I used them sometimes.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1211 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
2016-06-03 8:01 ` [Bug 96355] " bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-03 8:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-03 15:15 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-03 8:17 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 1000 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #2 from Samuel Pitoiset <samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> ---
Hi Gregory,
Thanks for profiling Nouveau with perf, that's very nice. :-)
Well, if your application doesn't use SSBO's, nvc0_validate_buffers() should
not be called yeah. But this might happen when we switch between different
contexts. Anyway, improving the validation path is on our todolist. :)
Well, according to your backtrace, nvc0_set_shader_buffers() is called and will
dirty NVC0_NEW_3D_BUFFERS, which will then call nvc0_validate_buffers() at draw
time.
I wonder why it's called if you are sure that your application doesn't use any
SSBO's...
Can you extract some shaders from your application to make sure no SSBO's are
used? You can use NV50_PROG_DEBUG=1 for example (this will dump the TGSI code).
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1825 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
2016-06-03 8:01 ` [Bug 96355] " bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-03 8:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-03 15:15 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-03 15:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-03 15:15 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 2588 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #3 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
Hi Samuel,
> Thanks for profiling Nouveau with perf, that's very nice. :-)
Well it is nice that I can do profiling :)
> Well, if your application doesn't use SSBO's, nvc0_validate_buffers()
> should not be called yeah. But this might happen when we switch between
> different contexts. Anyway, improving the validation path is on our todolist. :)
Yes, I'm sure. I don't know how to use SSBO.
> I wonder why it's called if you are sure that your application doesn't use
> any SSBO's...
src/mesa/state_tracker/st_atom_storagebuf.c
st_bind_*_ssbos struct contains the ST_NEW_*_PROGRAM flags.
So every time, you call glUseProgram (or the 4.1 pipeline equivalent), flags
will be asserted and a validation will be triggered. It is the same for the
image in st_bind_*_images struct in st_atom_image.c. It is nice for the
performance.
> Can you extract some shaders from your application to make sure no SSBO's
> are used? You can use NV50_PROG_DEBUG=1 for example (this will dump the TGSI code).
All my shader could be found in glsl format (bit a mess of ifdef but no SSBO
;))
https://github.com/PCSX2/pcsx2/tree/master/plugins/GSdx/res/glsl
Here an example (I'm not sure if it is the TGSI format).
FRAG
DCL IN[0], GENERIC[0], PERSPECTIVE
DCL IN[1], GENERIC[3], PERSPECTIVE
DCL OUT[0], COLOR
DCL OUT[1], COLOR[1]
DCL SAMP[0]
DCL SAMP[1]
DCL SVIEW[0], 2D, FLOAT
DCL SVIEW[1], 2D, FLOAT
DCL CONST[1][0]
DCL CONST[2][0..1]
DCL CONST[3][0..1]
DCL CONST[4][0]
DCL CONST[5][0..1]
DCL CONST[6][0..7]
DCL CONST[7][0]
DCL TEMP[0..1], LOCAL
IMM[0] FLT32 { 0.0000, 255.0000, 0.0500, 0.0078}
IMM[1] FLT32 { 0.0039, 0.0000, 0.0000, 0.0000}
0: MOV TEMP[0].xy, IN[1].xyyy
1: TEX TEMP[0].w, TEMP[0], SAMP[0], 2D
2: MOV TEMP[1].y, IMM[0].xxxx
3: MOV TEMP[1].x, TEMP[0].wwww
4: TRUNC TEMP[0], IN[0]
5: MOV TEMP[1].xy, TEMP[1].xyyy
6: TEX TEMP[1], TEMP[1], SAMP[1], 2D
7: MAD TEMP[1], TEMP[1], IMM[0].yyyy, IMM[0].zzzz
8: TRUNC TEMP[1], TEMP[1]
9: MUL TEMP[0], TEMP[0], TEMP[1]
10: MUL TEMP[0], TEMP[0], IMM[0].wwww
11: TRUNC TEMP[0], TEMP[0]
12: MIN TEMP[0], TEMP[0], IMM[0].yyyy
13: MUL TEMP[1], TEMP[0], IMM[1].xxxx
14: MUL TEMP[0].x, TEMP[0].wwww, IMM[0].wwww
15: MOV OUT[0], TEMP[1]
16: MOV OUT[1], TEMP[0].xxxx
17: END
--
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
[-- Attachment #1.2: Type: text/html, Size: 3611 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (2 preceding siblings ...)
2016-06-03 15:15 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-03 15:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-03 16:16 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-03 15:32 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 499 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #4 from Ilia Mirkin <imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org> ---
Right ... other things deal with this by using the cso_cache (or the backend
driver handles it). We probably should for this as well. Add a per-buffer dirty
bit and only set it if it's actually changed. Or add it to the cso_context
logic.
--
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1318 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (3 preceding siblings ...)
2016-06-03 15:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-03 16:16 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-04 11:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-03 16:16 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 311 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #5 from Samuel Pitoiset <samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> ---
Thanks for the report.
We will fix it.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1136 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (4 preceding siblings ...)
2016-06-03 16:16 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-04 11:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-05 3:53 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-04 11:32 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 581 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #6 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
Thanks you.
I did a quick benchmark of my testcase:
raw GIT
=> Mean by frame: 32.083336ms (31.168831fps)
GIT + hack to remove the new program flags from SSBO and images
=> Mean by frame: 21.586538ms (46.325169fps)
Note: testcase uses lots of shader bind, so I guess it is kinds of a worst case
for the perf.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1395 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (5 preceding siblings ...)
2016-06-04 11:32 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-05 3:53 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-05 10:18 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-05 3:53 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 515 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #7 from Ilia Mirkin <imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org> ---
I've pushed out some changes to nvc0 to reduce overhead of updating
ssbo/images.
There are additional patches I've sent out to validate ssbo/images more often
in the st (right now we miss some cases).
Let me know if the profile looks any better now.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1334 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (6 preceding siblings ...)
2016-06-05 3:53 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-05 10:18 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-05 11:09 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-05 10:18 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 1589 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #8 from Gediminas Jakutis <gediminas-1NU85dn7e2ownf/OCUKchA@public.gmane.org> ---
I don't know about the reporter's case, but I have ran some benchmarks and
tests with f018456901ee291181ecce74c30b19c9f6731f06 (latest revision before
those four patches) and fd6bbc2ee205ed02f66a8d8ef5b2adf4005d588c (the latest
revision, with the four patches) on my GTX 770 + FX-8320 @ 4.1GHz, focusing on
CPU-bound cases.
The results are all to the better - on most games I tested I see 4-10%
performance boost. Am only going to list a pair of highlights:
· Age of Wonders III, my own severely CPU limited testcase: 21 fps -> 26 fps, a
jump by a whooping 23.8% (still CPU-bound, though).
· Payday 2, well, this game has no [reproducable] way to benchmark it, but the
gameplay used to be nightmare filled with severe rubber-banding, running just
some 18-22 fps in many situations, all while painfully CPU-bound. Now, most of
rubber-banding is either gone or is a lot less noticeable. The framerate in
these aforementioned situations went up to 25-60; dipping below 30 very rarely,
while mostly maintaining over 2x performance boost. Basically, these four
patches made the game *playable* on nouveau. (The game is still very painfully
CPU-bound, though.)
So, at least here, I can see clear performance benefits.
Will leave to be marked as RESOLVED by the reporter; don't want to hijack his
issue.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 2419 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (7 preceding siblings ...)
2016-06-05 10:18 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-05 11:09 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-05 14:42 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-05 11:09 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 688 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #9 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
Hello,
It is much better. I disabled my cpu turbo to reduce perf variation hence the
smaller value.
I'm now around 33-34 fps with latest git. For reference, if I disable
validation completely validation with an hack. I'm around 35-36fps.
It isn't completely free but it feels good enough. Maybe one can create a
benchmark test ping-pong between 2 differents programs (could be the same
compiled twice). Issue can be closed.
--
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1496 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (8 preceding siblings ...)
2016-06-05 11:09 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-05 14:42 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-05 15:41 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-05 14:42 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 719 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #10 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
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.
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.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 1531 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (9 preceding siblings ...)
2016-06-05 14:42 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-05 15:41 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-06 8:11 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-06 9:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-05 15:41 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 1624 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #11 from Ilia Mirkin <imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org> ---
(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.
[-- Attachment #1.2: Type: text/html, Size: 2635 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (10 preceding siblings ...)
2016-06-05 15:41 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-06 8:11 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
2016-06-06 9:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-06 8:11 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 722 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #12 from gregory.hainaut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ---
Actually what I saw is that all UBOs are validated when programs are switched.
But I guess it is normal. I need to dig further. Thanks for the fixes.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 2231 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread* [Bug 96355] Performance: extra&costly SSBO validation even when SSBO aren't used
[not found] ` <bug-96355-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
` (11 preceding siblings ...)
2016-06-06 8:11 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
@ 2016-06-06 9:17 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
12 siblings, 0 replies; 14+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2016-06-06 9:17 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
[-- Attachment #1.1: Type: text/plain, Size: 1901 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=96355
--- Comment #13 from Karol Herbst <freedesktop-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org> ---
(In reply to Gediminas Jakutis from comment #8)
> I don't know about the reporter's case, but I have ran some benchmarks and
> tests with f018456901ee291181ecce74c30b19c9f6731f06 (latest revision before
> those four patches) and fd6bbc2ee205ed02f66a8d8ef5b2adf4005d588c (the latest
> revision, with the four patches) on my GTX 770 + FX-8320 @ 4.1GHz, focusing
> on CPU-bound cases.
>
> The results are all to the better - on most games I tested I see 4-10%
> performance boost. Am only going to list a pair of highlights:
>
> · Age of Wonders III, my own severely CPU limited testcase: 21 fps -> 26
> fps, a jump by a whooping 23.8% (still CPU-bound, though).
> · Payday 2, well, this game has no [reproducable] way to benchmark it, but
> the gameplay used to be nightmare filled with severe rubber-banding, running
> just some 18-22 fps in many situations, all while painfully CPU-bound. Now,
> most of rubber-banding is either gone or is a lot less noticeable. The
> framerate in these aforementioned situations went up to 25-60; dipping below
> 30 very rarely, while mostly maintaining over 2x performance boost.
> Basically, these four patches made the game *playable* on nouveau. (The game
> is still very painfully CPU-bound, though.)
>
> So, at least here, I can see clear performance benefits.
> Will leave to be marked as RESOLVED by the reporter; don't want to hijack
> his issue.
I saw the same thing with PAYDAY 2, but I couldn't restore the low perf so I
guess they just reworked their engine while they added the SMAA and SSAO thing,
so I doubt those patches had anything to do with that :/
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 2925 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 14+ messages in thread