aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* nir: fix implicit fallthrough warningsTimothy Arceri2020-07-025-9/+13
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: add fallthrough comments to get.cTimothy Arceri2020-07-021-0/+86
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: add fallthrough comments to glformats.cTimothy Arceri2020-07-021-0/+3
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: fix fallthrough in glformatsTimothy Arceri2020-07-021-3/+4
| | | | | | | | | | | | | | | | Before 908f817918fb this would fallthrough to GL_INVALID_OPERATION if the validation condition was not met. But since that change it will now only return GL_INVALID_OPERATION if !_mesa_has_EXT_texture_compression_bptc(ctx) is true. This seems unintended. Here we fix up the fallthrough and add the fallthrough comment so this doesn't happen again. Fixes: 908f817918fb ("mesa: expose EXT_texture_compression_bptc in GLES") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3005 Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* nir/algebraic: Don't distrubte absolute-value into dot-productsIan Romanick2020-07-021-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dot product is multiplication followed by addition, and absolute value does not distribute into addition. Only vec4 platforms are affected by this change as scalar-only platforms never have any of the fdot_replicated instructions. In the shader-db results, below, shaders in MANY different applications are affected. Trine, Doom3, Enemy Territory: Quake Wars, Counter Strike: Global Offensive, Mad Max, Metro Last Light, and on and on... I'm really shocked that there were no test regressions! All Haswell and earlier platforms had similar results. (Haswell shown) total instructions in shared programs: 16219743 -> 16219820 (<.01%) instructions in affected programs: 12171 -> 12248 (0.63%) helped: 1 HURT: 78 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.78% max: 0.78% x̄: 0.78% x̃: 0.78% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 0.35% max: 2.38% x̄: 0.91% x̃: 1.06% 95% mean confidence interval for instructions value: 0.92 1.03 95% mean confidence interval for instructions %-change: 0.78% 1.00% Instructions are HURT. total cycles in shared programs: 538481383 -> 538491045 (<.01%) cycles in affected programs: 470796 -> 480458 (2.05%) helped: 149 HURT: 142 helped stats (abs) min: 1 max: 1338 x̄: 71.13 x̃: 4 helped stats (rel) min: 0.06% max: 40.99% x̄: 2.76% x̃: 0.67% HURT stats (abs) min: 1 max: 2092 x̄: 142.68 x̃: 12 HURT stats (rel) min: 0.07% max: 55.38% x̄: 5.07% x̃: 1.07% 95% mean confidence interval for cycles value: -5.28 71.69 95% mean confidence interval for cycles %-change: -0.07% 2.19% Inconclusive result (value mean confidence interval includes 0). Reviewed-by: Alyssa Rosenzweig <[email protected]> Fixes: 62795475e8f ("nir/algebraic: Distribute source modifiers into instructions") Closes: #3129 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5581>
* pan/mdg: Schedule based on livenessAlyssa Rosenzweig2020-07-021-23/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Vectorize vlut operationsIcecream952020-07-021-1/+18
| | | | | | | | | | | | | | | | | | | | 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 Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Skip r1.w write where possibleAlyssa Rosenzweig2020-07-021-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Prioritize non-moves on VADD/VLUTAlyssa Rosenzweig2020-07-021-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Allow Z/S writes to use any 2nd stage unitAlyssa Rosenzweig2020-07-021-57/+71
| | | | | | | | | | This ensures there will not be dependency problems if we emit a move that tries to read from a parallel instruction. No shader-db changes. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Defer smul, vlut until after writeout movesAlyssa Rosenzweig2020-07-021-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Schedule writeout to VLUTAlyssa Rosenzweig2020-07-021-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Remove bundle interference codeAlyssa Rosenzweig2020-07-021-66/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Don't assign destination in writeout block to r1Alyssa Rosenzweig2020-07-021-1/+51
| | | | | | | It will misbehave. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* pan/mdg: Defer nir_fuse_io_16 until after optsAlyssa Rosenzweig2020-07-021-3/+4
| | | | | | | | Sometimes DCE/etc can opt out things that would force 32-bit, so this is worthwhile. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* panfrost: Specify stack_shift on SFBDAlyssa Rosenzweig2020-07-021-2/+1
| | | | | | | Fixes spilling on T720. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5513>
* etnaviv: move ra into own fileChristian Gmeiner2020-07-025-307/+342
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: move nir compiler related stuff into .c fileChristian Gmeiner2020-07-024-1115/+1079
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: move functions that generate asm to own fileChristian Gmeiner2020-07-025-236/+280
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: drop emit macroChristian Gmeiner2020-07-021-13/+11
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: merge struct etna_compile and etna_stateChristian Gmeiner2020-07-023-134/+123
| | | | | | | | I see no good architectural reason for this split. Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: move liveness related stuff into own fileChristian Gmeiner2020-07-026-391/+424
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: make more use of compile_error(..)Christian Gmeiner2020-07-023-8/+41
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: drop OPT_V defineChristian Gmeiner2020-07-021-14/+13
| | | | | | | | Directly use NIR_PASS_V(..). Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: move etna_lower_alu(..) to etnaviv_nir.cChristian Gmeiner2020-07-023-67/+71
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: get rid of etna_compile dependencyChristian Gmeiner2020-07-021-6/+6
| | | | | | | | Needed prep change to be able to move alu lowering. Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: move etna_lower_io(..) to etnaviv_nir.cChristian Gmeiner2020-07-025-166/+234
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: convert enumsChristian Gmeiner2020-07-021-4/+4
| | | | | | | | | | 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. Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* etnaviv: delete not used structChristian Gmeiner2020-07-021-7/+0
| | | | | | Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5690>
* radv,vulkan: add a new x11 wsi drirc workaround for DOOM EternalSamuel Pitoiset2020-07-025-22/+52
| | | | | | | | | | DOOM Eternal happily creates a swapchain with 2 images for IMMEDIATE. This fixes a 10% performance issue with RADV. Cc: 20.1 <[email protected]> Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5704>
* Revert "vulkan/wsi/x11: Ensure we create at least minImageCount images."Samuel Pitoiset2020-07-021-34/+26
| | | | | | | | | | | | | | | | | 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 5f97dfc4c848cb6388ec138c19a22a8a880901d1. Cc: 20.1 <[email protected]> Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5704>
* radv: fix wide lines with multisample enabledSamuel Pitoiset2020-07-021-1/+0
| | | | | | | | | | | | | | | 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 AMDGPU-PRO do for AA wide lines. This fixes dEQP-VK.rasterization.interpolation_multisample_*_bit.*lines_wide. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5698>
* zink: implement Vk_EXT_index_type_uint8Mike Blumenkrantz2020-07-023-5/+33
| | | | | | | | this is a simple extension that enables using uint8-sized index buffers, which lets us avoid having those go through primconvert Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5712>
* radv: fix wide points and linesSamuel Pitoiset2020-07-023-4/+4
| | | | | | | | | The maximum value for both points and lines is 65536. This doesn't fix anything known (just found this while looking in that area). Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5696>
* llvmpipe: handle indirect images properlyDave Airlie2020-07-021-3/+20
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* draw/sample: add support for indirect imagesDave Airlie2020-07-021-0/+16
| | | | | | | | This uses the array functions to implement indirect image support for draw shaders Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/nir: add support for indirect image loadingDave Airlie2020-07-022-0/+98
| | | | | | | | | 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. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/img: refactor out the texel return type (v2)Dave Airlie2020-07-021-9/+17
| | | | | | | | v2: refactor to just pass type as pointed out by Roland. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/nir: refactor image operations for indirect support.Dave Airlie2020-07-024-33/+33
| | | | | | | | This just refactors the image code, so that outdata is passed explicitly, and refactors the internal handling of NONE formats. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/nir: support passing image index into image code.Dave Airlie2020-07-023-7/+47
| | | | | | | This doesn't do anything yet, just adds parsing support for it. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* llvmpipe: pass number of images into image soa createDave Airlie2020-07-024-4/+8
| | | | | | | Just store this for now to use later with indexing Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* draw: pass number of images to image soa createDave Airlie2020-07-023-6/+15
| | | | | | | | This is stored for now but will be used as part of indirect image support Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* llvmpipe: enable ARB_gpu_shader5Dave Airlie2020-07-021-2/+4
| | | | | | | | | | | This isn't fully free of bugs, but it's good to get CI working, so fixing those bugs doesn't break anything. The main buggy areas are missing indirect texture size, and transform feedback geometry streams. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/sample: handle size unit offsetDave Airlie2020-07-021-8/+10
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* llvmpipe/draw: wire up indirect offsetDave Airlie2020-07-022-0/+20
| | | | | | | This bounds checks and adds to the llvm index. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/sample: pass indirect offset into texture/image unitsDave Airlie2020-07-026-59/+70
| | | | | | | | | This isn't needed for the basic indirect code, but it is needed for texture size/image size unfortunately. They could be done with a super switch, but it seems simple to query them. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/nir: handle non-uniform texture offsetsDave Airlie2020-07-022-0/+59
| | | | | | | | | | | The way we construt vertex/geom shaders means these can diverge, so we have to just hammer it out manually, there are likely optimisation opportuniities in here Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* gallivm/nir: add texture unit indexingDave Airlie2020-07-022-1/+21
| | | | | | | This hooks up the index from NIR into the sampler code. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* llvmpipe: add support for indirect texture access.Dave Airlie2020-07-021-4/+21
| | | | | | | | This hooks up the sampler switch statement generator to the llvmpipe sampler interface. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
* draw: add support for indirect texture accessDave Airlie2020-07-021-4/+21
| | | | | | | This hooks up the switch statement generator to the draw code. Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>