 06 May, 2021 40 commits


Alyssa Rosenzweig authored
Keeps things simpler while debugging vectorization woes. Signedoffby: Alyssa Rosenzweig <alyssa@collabora.com> Partof: <mesa/mesa!9239>

Alyssa Rosenzweig authored
Signedoffby: Alyssa Rosenzweig <alyssa@collabora.com> Partof: <mesa/mesa!9239>

Alyssa Rosenzweig authored
Signedoffby: Alyssa Rosenzweig <alyssa@rosenzweig.io> Partof: <mesa/mesa!9239>

Alyssa Rosenzweig authored
Allows packing for things like IADD.v2s16 Signedoffby: Alyssa Rosenzweig <alyssa@collabora.com> Partof: <mesa/mesa!9239>

Alyssa Rosenzweig authored
This was right in my head. Fixes: 93a176b6 ("panfrost: Key blend shaders to the input types") Signedoffby: Alyssa Rosenzweig <alyssa@rosenzweig.io> Partof: <mesa/mesa!9239>

Alyssa Rosenzweig authored
Backport of 4439757d ("pan/bi: Use the interference mechanism to describe blend shader reg use") to Midgard. Signedoffby: Alyssa Rosenzweig <alyssa@collabora.com> Partof: <mesa/mesa!9239>

Adam Jackson authored
gcc 11 warns: [846/1506] Compiling C object src/mesa/libmesa_common.a.p/main_shaderapi.c.o In function ‘shader_source’, inlined from ‘_mesa_ShaderSource_no_error’ at ../src/mesa/main/shaderapi.c:2137:4: ../src/mesa/main/shaderapi.c:2095:25: warning: ‘*offsets_10 + _130’ may be used uninitialized [Wmaybeuninitialized] 2095  totalLength = offsets[count  1] + 2; I can't really see how it's getting to that conclusion, but allocating `offsets` with calloc is both natural to do here and guarantees initialization. Reviewedby: Matt Turner <mattst88@gmail.com> Partof: <mesa/mesa!10671>

Adam Jackson authored
gcc 11 warns: ../src/util/format/u_format_fxt1.c:940:22: warning: ‘fxt1_variance.constprop’ accessing 128 bytes in a region of size 64 [Wstringopoverflow=] 940  int32_t maxVarR = fxt1_variance(NULL, &input[N_TEXELS / 2], n_comp); But, suspiciously, if you inline fxt1_variance the warning goes away. What's happening is that the 2nd arg is uint8_t[N_TEXELS][MAX_COMP], so it looks like we're passing too small of an array in since gcc knows that `input` is also [N_TEXELS][MAX_COMP]. Fair enough. Fix the signature to reflect what's actually going on, and remove some unused arguments while we're at it. Reviewedby: Matt Turner <mattst88@gmail.com> Partof: <mesa/mesa!10671>

Samuel Pitoiset authored
This only implements dynamic primitive restart enable, depth bias enable and rasterizer discard enable. I leave logic op and patch control points for later. Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Samuel Pitoiset authored
Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Samuel Pitoiset authored
Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Samuel Pitoiset authored
Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Samuel Pitoiset authored
Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Samuel Pitoiset authored
To declare new prototypes. Signedoffby: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewedby: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Partof: <mesa/mesa!10340>

Emma Anholt authored
Partof: <mesa/mesa!10660>

Alyssa Rosenzweig authored
If we're going to key them in NIR, we might as well get the benefit of constant folding them too. Signedoffby: Alyssa Rosenzweig <alyssa@collabora.com> Partof: <mesa/mesa!10652>

Alyssa Rosenzweig authored
I felt bad about the last patch regressing Midgard perf, so here's some moar Midgard perf for you ^^ total instructions in shared programs: 97089 > 97036 (0.05%) instructions in affected programs: 5230 > 5177 (1.01%) helped: 53 HURT: 31 helped stats (abs) min: 1 max: 17 x̄: 4.40 x̃: 6 helped stats (rel) min: 0.61% max: 12.24% x̄: 7.74% x̃: 11.54% HURT stats (abs) min: 1 max: 8 x̄: 5.81 x̃: 8 HURT stats (rel) min: 1.08% max: 13.79% x̄: 9.69% x̃: 11.11% 95% mean confidence interval for instructions value: 1.89 0.63 95% mean confidence interval for instructions %change: 3.41% 0.80% Inconclusive result (value mean confidence interval includes 0). total bundles in shared programs: 45612 > 45507 (0.23%) bundles in affected programs: 17331 > 17226 (0.61%) helped: 139 HURT: 166 helped stats (abs) min: 1 max: 21 x̄: 3.76 x̃: 2 helped stats (rel) min: 0.85% max: 18.37% x̄: 6.38% x̃: 4.55% HURT stats (abs) min: 1 max: 10 x̄: 2.51 x̃: 1 HURT stats (rel) min: 0.79% max: 31.25% x̄: 7.54% x̃: 4.55% 95% mean confidence interval for bundles value: 0.90 0.21 95% mean confidence interval for bundles %change: 0.05% 2.34% Inconclusive result (value mean confidence interval includes 0). total quadwords in shared programs: 77275 > 76952 (0.42%) quadwords in affected programs: 32314 > 31991 (1.00%) helped: 142 HURT: 179 helped stats (abs) min: 1 max: 28 x̄: 4.38 x̃: 2 helped stats (rel) min: 0.34% max: 13.79% x̄: 4.29% x̃: 2.78% HURT stats (abs) min: 1 max: 6 x̄: 1.67 x̃: 2 HURT stats (rel) min: 0.44% max: 16.67% x̄: 2.93% x̃: 2.63% 95% mean confidence interval for quadwords value: 1.56 0.45 95% mean confidence interval for quadwords %change: 0.78% 0.25% Inconclusive result (%change mean confidence interval includes 0). total registers in shared programs: 7081 > 6771 (4.38%) registers in affected programs: 2217 > 1907 (13.98%) helped: 193 HURT: 75 helped stats (abs) min: 1 max: 6 x̄: 2.04 x̃: 1 helped stats (rel) min: 6.25% max: 62.50% x̄: 24.32% x̃: 20.00% HURT stats (abs) min: 1 max: 3 x̄: 1.11 x̃: 1 HURT stats (rel) min: 7.14% max: 50.00% x̄: 17.17% x̃: 14.29% 95% mean confidence interval for registers value: 1.37 0.94 95% mean confidence interval for registers %change: 15.53% 9.89% Registers are helped. total threads in shared programs: 5036 > 5152 (2.30%) threads in affected programs: 185 > 301 (62.70%) helped: 93 HURT: 19 helped stats (abs) min: 1 max: 2 x̄: 1.49 x̃: 1 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% HURT stats (abs) min: 1 max: 2 x̄: 1.21 x̃: 1 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% 95% mean confidence interval for threads value: 0.82 1.25 95% mean confidence interval for threads %change: 63.96% 85.14% Threads are helped. total loops in shared programs: 19 > 19 (0.00%) loops in affected programs: 0 > 0 helped: 0 HURT: 0 total spills in shared programs: 2 > 0 spills in affected programs: 2 > 0 helped: 1 HURT: 0 total fills in shared programs: 15 > 0 fills in affected programs: 15 > 0 helped: 1 HURT: 0 Signedoffby: Alyssa Rosenzweig <alyssa@rosenzweig.io> Partof: <mesa/mesa!10652>

Alyssa Rosenzweig authored
This is known broken code, and the fix is highly nontrivial. It isn't doing terribly much for perf, so just rip off the bandaid. Prevents a dEQP regression, and likely fixes bugs in real apps too. total instructions in shared programs: 96640 > 97089 (0.46%) instructions in affected programs: 27831 > 28280 (1.61%) helped: 33 HURT: 301 helped stats (abs) min: 1 max: 6 x̄: 3.64 x̃: 5 helped stats (rel) min: 1.96% max: 10.00% x̄: 6.48% x̃: 7.94% HURT stats (abs) min: 1 max: 18 x̄: 1.89 x̃: 1 HURT stats (rel) min: 0.46% max: 15.00% x̄: 3.17% x̃: 2.38% 95% mean confidence interval for instructions value: 1.09 1.59 95% mean confidence interval for instructions %change: 1.80% 2.63% Instructions are HURT. total bundles in shared programs: 45615 > 45612 (<.01%) bundles in affected programs: 11257 > 11254 (0.03%) helped: 121 HURT: 146 helped stats (abs) min: 1 max: 7 x̄: 2.34 x̃: 1 helped stats (rel) min: 1.22% max: 23.33% x̄: 7.85% x̃: 5.26% HURT stats (abs) min: 1 max: 17 x̄: 1.92 x̃: 2 HURT stats (rel) min: 0.42% max: 25.00% x̄: 5.17% x̃: 3.85% 95% mean confidence interval for bundles value: 0.34 0.31 95% mean confidence interval for bundles %change: 1.69% 0.23% Inconclusive result (value mean confidence interval includes 0). total quadwords in shared programs: 76662 > 77275 (0.80%) quadwords in affected programs: 20148 > 20761 (3.04%) helped: 28 HURT: 275 helped stats (abs) min: 1 max: 4 x̄: 1.54 x̃: 1 helped stats (rel) min: 0.43% max: 25.00% x̄: 4.89% x̃: 2.50% HURT stats (abs) min: 1 max: 12 x̄: 2.39 x̃: 2 HURT stats (rel) min: 0.51% max: 28.57% x̄: 5.18% x̃: 4.26% 95% mean confidence interval for quadwords value: 1.80 2.25 95% mean confidence interval for quadwords %change: 3.64% 4.86% Quadwords are HURT. total registers in shared programs: 7078 > 7081 (0.04%) registers in affected programs: 1028 > 1031 (0.29%) helped: 62 HURT: 70 helped stats (abs) min: 1 max: 2 x̄: 1.11 x̃: 1 helped stats (rel) min: 8.33% max: 50.00% x̄: 15.03% x̃: 12.50% HURT stats (abs) min: 1 max: 2 x̄: 1.03 x̃: 1 HURT stats (rel) min: 8.33% max: 66.67% x̄: 20.13% x̃: 11.25% 95% mean confidence interval for registers value: 0.17 0.21 95% mean confidence interval for registers %change: 0.14% 7.38% Inconclusive result (value mean confidence interval includes 0). total threads in shared programs: 5032 > 5036 (0.08%) threads in affected programs: 31 > 35 (12.90%) helped: 12 HURT: 6 helped stats (abs) min: 1 max: 2 x̄: 1.08 x̃: 1 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% HURT stats (abs) min: 1 max: 2 x̄: 1.50 x̃: 1 HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00% 95% mean confidence interval for threads value: 0.43 0.87 95% mean confidence interval for threads %change: 13.82% 86.18% Inconclusive result (value mean confidence interval includes 0). total loops in shared programs: 19 > 19 (0.00%) loops in affected programs: 0 > 0 helped: 0 HURT: 0 total spills in shared programs: 0 > 2 spills in affected programs: 0 > 2 helped: 0 HURT: 1 total fills in shared programs: 0 > 15 fills in affected programs: 0 > 15 helped: 0 HURT: 1 Signedoffby: Alyssa Rosenzweig <alyssa@rosenzweig.io> Partof: <mesa/mesa!10652>

Alyssa Rosenzweig authored
Fixes incorrect outmods printed for conversions. Signedoffby: Alyssa Rosenzweig <alyssa@rosenzweig.io> Partof: <mesa/mesa!10652>

Danylo Piliaiev authored
Signedoffby: Danylo Piliaiev <dpiliaiev@igalia.com> Partof: <mesa/mesa!10669>

Mike Blumenkrantz authored
Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
these force a new dsa state to be created and bound, which isn't necessary if the same value is being reset Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
this still needs to be updated if there's no pipeline info available Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
this still needs to be updated if there's no pipeline info available Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
these all need to be unset to ensure expected functionality Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
it's useful to track this info for reuse Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
this is otherwise uninitialized and not compliant with spec Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
this is illegal Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Mike Blumenkrantz authored
according to spec, the pSizes array member is only used if the array is nonnull and the value is not VK_WHOLE_SIZE, otherwise this value is calculated based on the buffer size  the offset Reviewedby: Dave Airlie <airlied@redhat.com> Partof: <mesa/mesa!10625>

Icecream95 authored
Fixes SuperTuxKart with BIFROST_MESA_DEBUG=nosched. Partof: <mesa/mesa!10661>

Icecream95 authored
If CRC data is currently invalid and the current batch will make it valid, write even clean tiles to make sure CRC data is updated. Fixes: 8ba2f9f6 ("panfrost: Create a blitter library to replace the existing preload helpers") Partof: <mesa/mesa!10566>

Icecream95 authored
Partof: <mesa/mesa!10566>

Mike Blumenkrantz authored
Reviewedby: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewedby: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Reviewedby: Jason Ekstrand <jason@jlekstrand.net> Partof: <mesa/mesa!10654>

Mike Blumenkrantz authored
when an object is initialized with this, it should not be visible to any other threads or contexts, so there should be no need to use an atomic set here at the time of this commit, there are only two callers in the tree which pass values != 1: * zink uses a calculated number for framebuffer refcount on init (this is fine) * aux/pb passes 0 on init (this is fine) Reviewedby: Marek Olšák <marek.olsak@amd.com> Reviewedby: Kenneth Graunke <kenneth@whitecape.org> Partof: <mesa/mesa!10650>

Boris Brezillon authored
This reverts commit 7ca72f17 . Unlike what's stated in this commit, the depth or stencil components have to be replicated on all channels, as specified in the "Texture Sampling and Texture Formats" section of the TGSI doc (docs/gallium/tgsi.rst). Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Partof: <mesa/mesa!10649>

Mike Blumenkrantz authored
Reviewedby: Erik FayeLund <erik.fayelund@collabora.com> Partof: <mesa/mesa!10649>

Erik FayeLund authored
We don't really need loops unrolled, so let's just disable this. This is generally recommended for NIR drivers, but we can do even better; not even unroll in NIR. And since we don't set nir_shader_compiler_options::max_unroll_iterations, we're already there. ReviewedBy: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Partof: <mesa/mesa!10487>
