 02 Jul, 2020 40 commits


Eric Anholt authored
I haven't reproduced it with just this trace in a loop locally, but it's blocked some CI jobs with hangs where a few tiles didn't get rendered. For example: https://gitlab.freedesktop.org/mesa/mesa//jobs/3314062 Partof: <mesa/mesa!5667>

Alyssa Rosenzweig authored
By estimating liveness in the scheduler and choosing instructions likely to reduce register pressure, on average we can decrease pressure given a sufficiently larger window. On the other hand, decreasing pressure instead of leaning too heavily on the search window enables us to use a much larger search window without inflating pressure too much. So by doing both in lockstep, we benefit pretty well. total instructions in shared programs: 49458 > 48540 (1.86%) instructions in affected programs: 26931 > 26013 (3.41%) helped: 221 HURT: 15 helped stats (abs) min: 1 max: 36 x̄: 4.37 x̃: 2 helped stats (rel) min: 0.31% max: 16.90% x̄: 4.97% x̃: 3.85% HURT stats (abs) min: 1 max: 4 x̄: 3.13 x̃: 3 HURT stats (rel) min: 0.50% max: 7.14% x̄: 4.53% x̃: 4.55% 95% mean confidence interval for instructions value: 4.65 3.13 95% mean confidence interval for instructions %change: 4.94% 3.81% Instructions are helped. total bundles in shared programs: 25199 > 23446 (6.96%) bundles in affected programs: 21600 > 19847 (8.12%) helped: 277 HURT: 170 helped stats (abs) min: 1 max: 45 x̄: 7.33 x̃: 6 helped stats (rel) min: 1.06% max: 33.83% x̄: 11.01% x̃: 8.57% HURT stats (abs) min: 1 max: 6 x̄: 1.63 x̃: 1 HURT stats (rel) min: 1.19% max: 40.00% x̄: 13.36% x̃: 11.11% 95% mean confidence interval for bundles value: 4.61 3.23 95% mean confidence interval for bundles %change: 3.00% 0.49% Bundles are helped. total quadwords in shared programs: 40269 > 39652 (1.53%) quadwords in affected programs: 35881 > 35264 (1.72%) helped: 242 HURT: 244 helped stats (abs) min: 1 max: 36 x̄: 4.61 x̃: 3 helped stats (rel) min: 0.39% max: 16.33% x̄: 5.33% x̃: 5.13% HURT stats (abs) min: 1 max: 20 x̄: 2.04 x̃: 1 HURT stats (rel) min: 0.81% max: 21.74% x̄: 7.57% x̃: 6.25% 95% mean confidence interval for quadwords value: 1.71 0.83 95% mean confidence interval for quadwords %change: 0.46% 1.82% Inconclusive result (value mean confidence interval and %change mean confidence interval disagree). total registers in shared programs: 3786 > 3336 (11.89%) registers in affected programs: 2161 > 1711 (20.82%) helped: 262 HURT: 35 helped stats (abs) min: 1 max: 7 x̄: 1.87 x̃: 1 helped stats (rel) min: 6.25% max: 66.67% x̄: 28.91% x̃: 25.00% HURT stats (abs) min: 1 max: 3 x̄: 1.11 x̃: 1 HURT stats (rel) min: 7.69% max: 100.00% x̄: 19.76% x̃: 12.50% 95% mean confidence interval for registers value: 1.70 1.33 95% mean confidence interval for registers %change: 25.56% 20.79% Registers are helped. total threads in shared programs: 2453 > 2592 (5.67%) threads in affected programs: 160 > 299 (86.87%) helped: 79 HURT: 6 helped stats (abs) min: 1 max: 2 x̄: 1.85 x̃: 2 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% HURT stats (abs) min: 1 max: 2 x̄: 1.17 x̃: 1 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% 95% mean confidence interval for threads value: 1.45 1.82 95% mean confidence interval for threads %change: 81.08% 97.75% Threads are [helped]. total spills in shared programs: 168 > 17 (89.88%) spills in affected programs: 167 > 16 (90.42%) helped: 13 HURT: 0 total fills in shared programs: 186 > 35 (81.18%) fills in affected programs: 186 > 35 (81.18%) helped: 14 HURT: 0 Partof: <mesa/mesa!5513>

Icecream95 authored
total instructions in shared programs: 49462 > 49458 (<.01%) instructions in affected programs: 348 > 344 (1.15%) helped: 2 HURT: 0 total bundles in shared programs: 25201 > 25199 (<.01%) bundles in affected programs: 142 > 140 (1.41%) helped: 2 HURT: 0 total quadwords in shared programs: 40273 > 40269 (<.01%) quadwords in affected programs: 244 > 240 (1.64%) helped: 2 HURT: 0 Reviewedby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
Should help cycle count. Register pressure is spurious here. total instructions in shared programs: 50501 > 49517 (1.95%) instructions in affected programs: 33342 > 32358 (2.95%) helped: 393 HURT: 0 helped stats (abs) min: 2 max: 3 x̄: 2.50 x̃: 3 helped stats (rel) min: 0.26% max: 33.33% x̄: 11.99% x̃: 9.09% 95% mean confidence interval for instructions value: 2.55 2.45 95% mean confidence interval for instructions %change: 13.01% 10.97% Instructions are helped. total bundles in shared programs: 25511 > 25309 (0.79%) bundles in affected programs: 7778 > 7576 (2.60%) helped: 202 HURT: 0 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.43% max: 20.00% x̄: 5.97% x̃: 4.35% 95% mean confidence interval for bundles value: 1.00 1.00 95% mean confidence interval for bundles %change: 6.65% 5.28% Bundles are helped. total quadwords in shared programs: 40789 > 40339 (1.10%) quadwords in affected programs: 25453 > 25003 (1.77%) helped: 273 HURT: 0 helped stats (abs) min: 1 max: 3 x̄: 1.65 x̃: 2 helped stats (rel) min: 0.16% max: 22.22% x̄: 5.99% x̃: 3.92% 95% mean confidence interval for quadwords value: 1.71 1.59 95% mean confidence interval for quadwords %change: 6.68% 5.30% Quadwords are helped. total registers in shared programs: 3911 > 3784 (3.25%) registers in affected programs: 275 > 148 (46.18%) helped: 129 HURT: 2 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 14.29% max: 50.00% x̄: 48.69% x̃: 50.00% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% 95% mean confidence interval for registers value: 1.01 0.93 95% mean confidence interval for registers %change: 49.45% 44.91% Registers are helped. total threads in shared programs: 2455 > 2455 (0.00%) threads in affected programs: 0 > 0 helped: 0 HURT: 0 Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
This helps reduce ALU cycle count. total instructions in shared programs: 50507 > 50501 (0.01%) instructions in affected programs: 487 > 481 (1.23%) helped: 7 HURT: 3 helped stats (abs) min: 1 max: 2 x̄: 1.29 x̃: 1 helped stats (rel) min: 1.01% max: 8.33% x̄: 4.11% x̃: 4.35% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 1.54% max: 4.35% x̄: 2.80% x̃: 2.50% 95% mean confidence interval for instructions value: 1.44 0.24 95% mean confidence interval for instructions %change: 5.12% 1.04% Inconclusive result (value mean confidence interval includes 0). total bundles in shared programs: 25640 > 25511 (0.50%) bundles in affected programs: 5879 > 5750 (2.19%) helped: 67 HURT: 7 helped stats (abs) min: 1 max: 16 x̄: 2.04 x̃: 1 helped stats (rel) min: 0.63% max: 18.18% x̄: 4.11% x̃: 2.12% HURT stats (abs) min: 1 max: 2 x̄: 1.14 x̃: 1 HURT stats (rel) min: 1.75% max: 14.29% x̄: 5.42% x̃: 3.70% 95% mean confidence interval for bundles value: 2.29 1.20 95% mean confidence interval for bundles %change: 4.41% 2.00% Bundles are helped. total quadwords in shared programs: 40899 > 40789 (0.27%) quadwords in affected programs: 11438 > 11328 (0.96%) helped: 70 HURT: 26 helped stats (abs) min: 1 max: 8 x̄: 2.17 x̃: 1 helped stats (rel) min: 0.42% max: 9.76% x̄: 3.29% x̃: 2.56% HURT stats (abs) min: 1 max: 5 x̄: 1.62 x̃: 1 HURT stats (rel) min: 0.48% max: 9.68% x̄: 3.58% x̃: 1.99% 95% mean confidence interval for quadwords value: 1.60 0.69 95% mean confidence interval for quadwords %change: 2.28% 0.58% Quadwords are helped. total registers in shared programs: 3916 > 3911 (0.13%) registers in affected programs: 129 > 124 (3.88%) helped: 10 HURT: 5 helped stats (abs) min: 1 max: 2 x̄: 1.10 x̃: 1 helped stats (rel) min: 8.33% max: 25.00% x̄: 12.84% x̃: 9.55% HURT stats (abs) min: 1 max: 2 x̄: 1.20 x̃: 1 HURT stats (rel) min: 11.11% max: 66.67% x̄: 27.30% x̃: 14.29% 95% mean confidence interval for registers value: 0.98 0.32 95% mean confidence interval for registers %change: 12.67% 13.75% Inconclusive result (value mean confidence interval includes 0). total threads in shared programs: 2455 > 2455 (0.00%) threads in affected programs: 6 > 6 (0.00%) helped: 1 HURT: 1 helped stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% total loops in shared programs: 6 > 6 (0.00%) loops in affected programs: 0 > 0 helped: 0 HURT: 0 total spills in shared programs: 168 > 168 (0.00%) spills in affected programs: 0 > 0 helped: 0 HURT: 0 total fills in shared programs: 186 > 186 (0.00%) fills in affected programs: 0 > 0 helped: 0 HURT: 0 Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
This ensures there will not be dependency problems if we emit a move that tries to read from a parallel instruction. No shaderdb changes. Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
We can end up with bad dependencies with a depth/stencil export. Let's let the writeout special cases consume these values if possible, using a move otherwise in which case it won't be used in the other slots anyway. total instructions in shared programs: 50508 > 50507 (<.01%) instructions in affected programs: 12 > 11 (8.33%) helped: 1 HURT: 0 total bundles in shared programs: 25640 > 25640 (0.00%) bundles in affected programs: 0 > 0 helped: 0 HURT: 0 total quadwords in shared programs: 40899 > 40899 (0.00%) quadwords in affected programs: 0 > 0 helped: 0 HURT: 0 total registers in shared programs: 3917 > 3916 (0.03%) registers in affected programs: 3 > 2 (33.33%) helped: 1 HURT: 0 total threads in shared programs: 2455 > 2455 (0.00%) threads in affected programs: 0 > 0 helped: 0 HURT: 0 total spills in shared programs: 168 > 168 (0.00%) spills in affected programs: 0 > 0 helped: 0 HURT: 0 total fills in shared programs: 186 > 186 (0.00%) fills in affected programs: 0 > 0 helped: 0 HURT: 0 Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
Many thanks to Icecream95 for noticing this is possible if alpha is not written. total instructions in shared programs: 50509 > 50508 (<.01%) instructions in affected programs: 221 > 220 (0.45%) helped: 2 HURT: 1 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.74% max: 1.35% x̄: 1.04% x̃: 1.04% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 9.09% max: 9.09% x̄: 9.09% x̃: 9.09% total bundles in shared programs: 25675 > 25640 (0.14%) bundles in affected programs: 5434 > 5399 (0.64%) helped: 34 HURT: 0 helped stats (abs) min: 1 max: 2 x̄: 1.03 x̃: 1 helped stats (rel) min: 0.27% max: 20.00% x̄: 2.29% x̃: 0.67% 95% mean confidence interval for bundles value: 1.09 0.97 95% mean confidence interval for bundles %change: 3.64% 0.94% Bundles are helped. total quadwords in shared programs: 40887 > 40899 (0.03%) quadwords in affected programs: 1995 > 2007 (0.60%) helped: 2 HURT: 16 helped stats (abs) min: 1 max: 3 x̄: 2.00 x̃: 2 helped stats (rel) min: 1.67% max: 2.40% x̄: 2.03% x̃: 2.03% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 0.54% max: 5.88% x̄: 1.40% x̃: 0.86% 95% mean confidence interval for quadwords value: 0.15 1.18 95% mean confidence interval for quadwords %change: 0.13% 1.90% Quadwords are HURT. total registers in shared programs: 3916 > 3917 (0.03%) registers in affected programs: 2 > 3 (50.00%) helped: 0 HURT: 1 total threads in shared programs: 2455 > 2455 (0.00%) threads in affected programs: 0 > 0 helped: 0 HURT: 0 Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
This incorrectly worked around the r1 issue fixed earlier. total instructions in shared programs: 50514 > 50509 (<.01%) instructions in affected programs: 826 > 821 (0.61%) helped: 10 HURT: 5 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 1.10% max: 4.17% x̄: 2.04% x̃: 1.59% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 1.16% max: 5.00% x̄: 3.10% x̃: 2.17% 95% mean confidence interval for instructions value: 0.87 0.21 95% mean confidence interval for instructions %change: 1.90% 1.25% Inconclusive result (value mean confidence interval includes 0). total bundles in shared programs: 25680 > 25675 (0.02%) bundles in affected programs: 539 > 534 (0.93%) helped: 10 HURT: 5 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 1.54% max: 9.09% x̄: 3.51% x̃: 2.22% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 2.22% max: 8.33% x̄: 5.44% x̃: 4.17% 95% mean confidence interval for bundles value: 0.87 0.21 95% mean confidence interval for bundles %change: 3.40% 2.35% Inconclusive result (value mean confidence interval includes 0). total quadwords in shared programs: 40887 > 40887 (0.00%) quadwords in affected programs: 0 > 0 helped: 0 HURT: 0 total registers in shared programs: 3916 > 3916 (0.00%) registers in affected programs: 22 > 22 (0.00%) helped: 2 HURT: 2 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 16.67% max: 25.00% x̄: 20.83% x̃: 20.83% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 16.67% max: 16.67% x̄: 16.67% x̃: 16.67% 95% mean confidence interval for registers value: 1.84 1.84 95% mean confidence interval for registers %change: 36.96% 32.79% Inconclusive result (value mean confidence interval includes 0). total threads in shared programs: 2455 > 2455 (0.00%) threads in affected programs: 0 > 0 helped: 0 HURT: 0 Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
It will misbehave. Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
Sometimes DCE/etc can opt out things that would force 32bit, so this is worthwhile. Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Alyssa Rosenzweig authored
Fixes spilling on T720. Signedoffby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Partof: <mesa/mesa!5513>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
I see no good architectural reason for this split. Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Directly use NIR_PASS_V(..). Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Needed prep change to be able to move alu lowering. Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <mesa/mesa!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <!5690>

Christian Gmeiner authored
Atm. it is not possible to move the enums to a header file as they do not use an identifier but directly define an object. Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <!5690>

Christian Gmeiner authored
Signedoffby: Christian Gmeiner <christian.gmeiner@gmail.com> Ackedby: Jonathan Marek <jonathan@marek.ca> Partof: <!5690>

Michel Dänzer authored
Having it as the last stage meant that the pages job could only run once all other jobs had finished. The new position means it can run in parallel with build jobs. Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Partof: <!5711>

Michel Dänzer authored
"when: on_success" meant that that the job wouldn't run automatically until all jobs of all earlier stages passed, and would be skipped if any of them failed. But we need to always run this job if any documentation files were modified. Fixes: 8e2cb8ef "gitlabci: Extend .cirunpolicy template for docs jobs" Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Partof: <!5711>

Samuel Pitoiset authored
DOOM Eternal happily creates a swapchain with 2 images for IMMEDIATE. This fixes a 10% performance issue with RADV. Cc: 20.1 <mesastable@lists.freedesktop.org> Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <!5704>

Samuel Pitoiset authored
This breaks some games like Wolfenstein Youngblood or Wolfenstein 2 that crash at launch if the number of images is more than what they expected. We could add vk_x11_strict_image_count to fix these game bugs but it seems more conservative to revert that change and add a new wsi drirc workaround for Doom Eternal. This reverts commit 5f97dfc4. Cc: 20.1 <mesastable@lists.freedesktop.org> Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <!5704>

Samuel Pitoiset authored
When set, EXPAND_LINE_WIDTH expands the line width by 1/cos(a), where a is the minimum angle from horizontal or vertical. This seems required by OpenGL line rasterization but not by Vulkan. Similar to what AMDVLK and AMDGPUPRO do for AA wide lines. This fixes dEQPVK.rasterization.interpolation_multisample_*_bit.*lines_wide. Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <!5698>

Daniel Stone authored
The Windows runner is having a lot of issues cloning repositories, failing early due to an unhandled HTTP error. Temporarily disable it until we can figure out what's going on and fix it. Signedoffby: Daniel Stone <daniels@collabora.com> Partof: <!5716>

Mike Blumenkrantz authored
this is a simple extension that enables using uint8sized index buffers, which lets us avoid having those go through primconvert Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Partof: <!5712>

Samuel Pitoiset authored
The maximum value for both points and lines is 65536. This doesn't fix anything known (just found this while looking in that area). Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <!5696>

Dave Airlie authored
Partof: <!3778>

Dave Airlie authored
Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>

Dave Airlie authored
Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>

Dave Airlie authored
This uses the array functions to implement indirect image support for draw shaders Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>

Dave Airlie authored
This adds support for indirect image loading, image stores can cause images with different formats to be stored to, so this operates like the texture code now. Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>

Dave Airlie authored
v2: refactor to just pass type as pointed out by Roland. Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>

Dave Airlie authored
This just refactors the image code, so that outdata is passed explicitly, and refactors the internal handling of NONE formats. Reviewedby: Roland Scheidegger <sroland@vmware.com> Partof: <!3778>
