aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* nouveau: fix pointer-sign warningTimothy Arceri2020-07-041-1/+1
| | | | | | Fixes: e630271e0ec3 ("mesa: don't ever set NullBufferObj in gl_vertex_array_binding") Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5730>
* util: Avoid strict aliasing bugs in xxhash.Eric Anholt2020-07-031-0/+9
| | | | | | | | | | | | | | | | | | | | | XXH32 is doing access through u32 *, and with strict aliasing the compiler gets to assume that those are independent of the u16 writes we did in fd6_texture_key setup, and based on various tweaks to the code, would result in bad hashes computed after inlining. The failure was: ../src/util/hash_table.c:326:_mesa_hash_table_search_pre_hashed: Assertion `ht->key_hash_function == ((void *)0) || hash == ht->key_hash_function(key)' failed.) By setting these two flags, we always take the unaligned, memcpy-the-32-bit-data path. I believe this should be same perf on x86 (which will happily unaligned load 32 bits in the end), while it will be slower on arm (where you have to a special unaligned load operation iirc). This should still be far faster than our old hash. Fixes: edd62619a1c4 ("freedreno: replace fnv1a hash function with xxhash") Acked-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5271>
* draw/clip: fix viewport index for geometry shadersDave Airlie2020-07-042-2/+8
| | | | | | | | | | | | | | | | | | | | | | The old code updated the viewport index on the first vertex in a primitive, however it was picking the first vertex wrong when used with geometry shaders. This code has access to the prim info with the primitive lengths so instead keep track of when a new primitive starts by tracking the lengths and updating the viewport index then. The prim info is only valid after a GS or prim assembly, so enable prim assembly if a vertex shader ever uses viewport index. This fixes: piglit arb_viewport_array-render-viewport-2 KHR-GLES31.core.viewport_array.draw_to_single_layer_with_multiple_viewports,Fail KHR-GLES31.core.viewport_array.draw_mulitple_viewports_with_single_invocation,Fail KHR-GLES31.core.viewport_array.draw_multiple_layers,Fail KHR-GLES31.core.viewport_array.depth_range,Fail Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5489>
* draw/clip: cleanup viewport index handling code.Dave Airlie2020-07-041-10/+12
| | | | | | | This moves code around, and adds initial clamping Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5489>
* turnip: vsc improvementsJonathan Marek2020-07-033-125/+109
| | | | | | | | | | | | | * Remove scratch_bo from cmdbuffer, use a device-global bo instead, which also includes border color (and eventually shaders for 3D blit path) * Use CP_SET_BIN_DATA5_OFFSET to allow setting VSC buffer addresses only once at the start of the cmdstream * Use scratch bo mechanism for a resizable VSC buffer * Use feedback from "vsc_draw_overflow" and "vsc_prim_overflow" values to increase the size of VSC buffer when beginning to record a new cmdbuffer Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5570>
* turnip: rework render_tiles loopJonathan Marek2020-07-031-38/+17
| | | | | | | | | | | Loop through pipes and then loop over the tiles in that pipe instead of looping over all tiles then having to calculate the pipe # and slot #. Mainly this avoids the hard to follow "config_get_tile" logic, but should also be a gain due to better use of cache with the VSC data. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5570>
* turnip: make tiling config part of framebuffer stateJonathan Marek2020-07-035-271/+215
| | | | | | | | | | | | | Compute the tiling config at framebuffer creation time. A framebuffer will b be re-used multiple times, so this will avoid having to re-calculate the tiling config every time a command buffer is recorded. The tiling config already couldn't use the render area's x1/y1 because of hw binning, this move makes it so the render area isn't used at all for the tiling config. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5570>
* Revert "loader/dri3: Check for window destruction in dri3_wait_for_event_locked"Michel Dänzer2020-07-032-38/+1
| | | | | | | | | | | This reverts commit d7d7687829875e401690219d4a72458fb2bbe4de. It caused freezes with e.g. kwin_x11 due to hitting the 1s timeout. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3214 Reopens: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116 Acked-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5722>
* meson: Add versioning for xvmc trackerEmmanuel Vadot2020-07-032-1/+5
| | | | | | | | | | The xvmc tracker used to be versionned with autotool but this seems to have been lost in the meson switch. Fixes: 22a817af8a89eb3c762f ("meson: build gallium xvmc state tracker") Reviewed-by: Eric Engestrom <[email protected]> Signed-off-by: Emmanuel Vadot <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5708>
* st/program: use nir_lower_clip_disable instead of nir_lower_clip_vs ↵Mike Blumenkrantz2020-07-031-16/+22
| | | | | | | | | | conditionally if the shader already outputs gl_ClipDistance, nir_lower_clip_vs will create duplicate variables when what we want is to just change the existing values Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5529>
* nir: add lowering pass for clip plane enablingMike Blumenkrantz2020-07-033-0/+133
| | | | | | | | | | a pass which rewrites gl_ClipDistance[n] to an undef if the corresponding clip plane is disabled in the rasterizer state this pass is needed for zink to handle api disables of clip planes Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5529>
* v3d/tex: handle correctly coordinates for cube/cubearrays imagesAlejandro Piñeiro2020-07-031-2/+6
| | | | | | | | | | | | | When fetching for cube maps, we need to interpret them as 2d texture arrays, being the third coordinate the index for the face. Fixes Vulkan CTS tests like the following using v3dv: dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_image.fragment.single_descriptor.cube_base_mip dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_image.compute.multiple_descriptor_sets.multiple_contiguous_descriptors.cube_array_base_mip Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5675>
* tu,radv: fix potentially wrong offset of flexible array.Hyunjun Ko2020-07-032-10/+6
| | | | | | | v2. Remove redundant memset and make the expression simpler. Signed-off-by: Hyunjun Ko <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5703>
* nv30: add missing fallthrough commentTimothy Arceri2020-07-021-0/+1
| | | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: update fallthrough comment so gcc can see itTimothy Arceri2020-07-021-1/+1
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* svga: add missing fallthrough commentsTimothy Arceri2020-07-021-0/+3
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* r300: add and fix up fallthrough commentsTimothy Arceri2020-07-023-1/+6
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: fix unintended fallthrough in glIsEnabled()Timothy Arceri2020-07-021-0/+2
| | | | | | Fixes: 08fae07f5246 ("mesa: Handle GL_TEXTURE_GEN_STR_OES in _mesa_Enable()") Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: add missing fallthrough comment to teximage.cTimothy Arceri2020-07-021-0/+1
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa/vbo: add some missing fallthrough commentsTimothy Arceri2020-07-021-0/+3
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* spirv: add missing fallthrough commentsTimothy Arceri2020-07-021-3/+3
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* radeon: add missing fallthrough commentsTimothy Arceri2020-07-021-0/+3
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* glsl: move fallthrough comment to where gcc can see itTimothy Arceri2020-07-021-1/+1
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* glx: add missing fallthrough commentTimothy Arceri2020-07-021-1/+1
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* radeonsi: add missing fallthrough commentTimothy Arceri2020-07-021-0/+1
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* mesa: add fallthrough comments to COPY_SZ_4V()Timothy Arceri2020-07-021-8/+8
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5705>
* 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>