- 05 Aug, 2019 14 commits
-
-
Erico Nunes authored
Signed-off-by:
Erico Nunes <nunes.erico@gmail.com> Reviewed-by:
Vasily Khoruzhick <anarsoul@gmail.com>
-
Erico Nunes authored
nir_lower_int_to_float is currently only meant to run once, and some ops must be lowered after being converted from int ops to be implementable, so re-run nir_opt_algebraic after lowering ints to floats. Signed-off-by:
Erico Nunes <nunes.erico@gmail.com> Reviewed-by:
Vasily Khoruzhick <anarsoul@gmail.com>
-
Alyssa Rosenzweig authored
No glmark changes, but this seems like a good idea. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
Alyssa Rosenzweig authored
Symptom: the sky is black in SuperTuxKart (flashbacks to SMB/NES emulation intensify). Essentially, what happened is a fixed (special) move to r0 was eliminated but scheduling did not factor this in, so can_run_concurrent_ssa returned true even when there was a logical data dependency that needed to be resolved. Fixes: 20771ede ("pan/midgard: Add post-RA move elimination") Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
When dumping shader's assembly with INTEL_DEBUG=vs,tcs,... sha1 of the resulting assembly is also printed, having environment variable INTEL_SHADER_ASM_READ_PATH present driver will try to load a "%sha1%.bin" file from the path and substitute current assembly with the one from the file. Signed-off-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by:
Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
Add '-t,--type' command line option to specify the output type which can be 'bin', 'c_literal' or 'hex'. Signed-off-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by:
Sagar Ghuge <sagar.ghuge@intel.com>
-
Alyssa Rosenzweig authored
In preparation for an initial 19.2 release, add a blacklist for apps known to be buggy under Panfrost to protect users. Panfrost is NOT a conformant implementation at this time. Distros: please do not revert this patch. If blacklisted apps are run using Panfrost, dragons will bite you. Thanks :) Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Acked-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com>
-
Kenneth Graunke authored
A while ago, we started deferring GEM object closure and VMA release until buffers were idle. This had some unforeseen interactions with external buffers. We keep imported buffers in hash tables, so if we have repeated imports of the same GEM object, we map those to the same iris_bo structure. This is critical for several reasons. Unfortunately, we broke this assumption. When freeing a non-idle external buffer, we would drop it from the hash tables, then move it to the zombie list. If someone reimported the same GEM object, we would not find it in the hash tables, and go ahead and make a second iris_bo for that GEM object. But the old iris_bo would still be in the zombie list, and so we would eventually call GEM_CLOSE on it - closing a BO that should have still been live. To work around this, we defer removing a BO from the hash tables until it's actually fully closed. This has the strange effect that an external BO may be on the zombie list, and yet be resurrected before it can be properly cleaned up. In this case, we remove it from the list so it won't be freed. Fixes severe instability in Weston, which was hitting EINVALs and ENOENTs from execbuf2, due to batches referring to a GEM object that had been closed, or at least had its VMA torched. Fixes: 457a5571 ("iris: Defer closing and freeing VMA until buffers are idle.")
-
Kenneth Graunke authored
Everybody importing an external buffer was looking it up in the hash table, then referencing it. We can just do that in the helper instead, which also gives us a convenient spot to stash extra code shortly.
-
The STM32MP157 features a Vivante GC400 GPU supported by etnaviv. Add a DRM entry point for the STM display controller, so mesa can be used with it. Signed-off-by:
Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by:
Lucas Stach <l.stach@pengutronix.de> Reviewed-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
Eric Engestrom authored
Fixes: 85dace1c ("gitlab-ci: remove software-properties-common") Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com>
-
This issue was found by cppcheck Signed-off-by:
Andrii Simiklit <andrii.simiklit@globallogic.com> Reviewed-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Lucas Stach <l.stach@pengutronix.de>
-
Connor Abbott authored
results from radeonsi NIR: Totals from affected shaders: SGPRS: 704 -> 464 (-34.09 %) VGPRS: 2056 -> 672 (-67.32 %) Spilled SGPRs: 24 -> 0 (-100.00 %) Spilled VGPRs: 28406 -> 0 (-100.00 %) Private memory VGPRs: 0 -> 3182 (0.00 %) Scratch size: 1064 -> 3228 (203.38 %) dwords per thread Code Size: 935260 -> 40180 (-95.70 %) bytes LDS: 0 -> 0 (0.00 %) blocks Max Waves: 28 -> 70 (150.00 %) Wait states: 0 -> 0 (0.00 %) results from radv: Totals from affected shaders: SGPRS: 80 -> 48 (-40.00 %) VGPRS: 204 -> 108 (-47.06 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Private memory VGPRs: 0 -> 0 (0.00 %) Scratch size: 0 -> 256 (0.00 %) dwords per thread Code Size: 15792 -> 9504 (-39.82 %) bytes LDS: 0 -> 0 (0.00 %) blocks Max Waves: 1 -> 2 (100.00 %) Wait states: 0 -> 0 (0.00 %) Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
-
Timothy Arceri authored
This adds an additional work around for the game to fix the blocky shadows as reported in bug 105282 Acked-by:
Eric Engestrom <eric.engestrom@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105282
-
- 04 Aug, 2019 12 commits
-
-
Erico Nunes authored
The load uniform/temporary operations output only to a pipeline register, which must be consumed by another op in the same instruction later. The current implementation delays the decision of who will consume this result to until the scheduling step. If the consumer node is not able to use the pipeline register, a mov node may have to be created, during the scheduler step. As part of the ppir scheduler simplification, and now that the ppir scheduler supports pipeline register dependencies, this can be simplified by always creating a single mov node outputting to a normal register that can be used directly by all consumers. Signed-off-by:
Erico Nunes <nunes.erico@gmail.com> Reviewed-by:
Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by:
Qiang Yu <yuq825@gmail.com>
-
Erico Nunes authored
The select operation relies on the select condition coming from the result of the the alu scalar mult slot, in the same instruction. The current implementation creates a mov node to be the predecessor of select, and then relies on an exception during scheduling to ensure that both ops are inserted in the same instruction. Now that the ppir scheduler supports pipeline register dependencies, this can be simplified by making the mov explicitly output to the fmul pipeline register, and the scheduler can place it without an exception. Since the select condition can only be placed in the scalar mult slot, differently than a regular mov, define a separate op for it. Signed-off-by:
Erico Nunes <nunes.erico@gmail.com> Reviewed-by:
Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by:
Qiang Yu <yuq825@gmail.com>
-
Erico Nunes authored
The ppir scheduler grew to be rather complicated and containing many exceptions as it also has to take care of inserting additional nodes when it is mandatory for nodes to be in the same instruction. As such, the lima lowering and scheduling process can be difficult to understand and maintain. The ppir lowering step created nodes hoping that the scheduler would notice the exception and do the right thing. This proposal adds a simple refactor to the scheduler so that it places nodes with pipeline registers in the same instruction. With the scheduler handling this in a general way, it is possible to create same-instruction dependencies by using pipeline registers during the lowering stage. This is simpler to maintain because now we can make these dependencies explicit in a single place (lowering), and we can drop exceptions from scheduling. Reducing the complexity of the scheduler is also useful as preparatory work to support control flow in ppir. Signed-off-by:
Erico Nunes <nunes.erico@gmail.com> Reviewed-by:
Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by:
Qiang Yu <yuq825@gmail.com>
-
Eric Engestrom authored
On recent versions of Meson (0.47+) these are synonymous, but we still support older versions than that, so let's use the correct syntax to avoid confusing users of old Meson versions. Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com>
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
Eric Engestrom authored
Right now, all it does is provide the new standard `static_assert()` name. Fixes: fbf7c38d ("egl/wayland: use bitset.h for `formats` bit set") Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Tested-by:
Bhushan Shah <bshah@kde.org>
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Jose Fonseca <jfonseca@vmware.com>
-
Eric Engestrom authored
According to Mac OSX's man page [1], this is how we should get the list of exported symbols: nm -g -P foo.dylib -g to only show the exported symbols -P to show it in a "portable" format, ie. readable by a script Since this is supported by GNU nm as well, let's use that everywhere, although some care needs to be taken as there are some differences in the output. [1] https://www.unix.com/man-page/osx/1/nm/ Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
Eric Engestrom authored
(as the comment there already claimed) Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
Vasily Khoruzhick authored
Utgard PP is vec4, but some operations are scalar, utilize NIR vec to scalar lowering pass and indicate operations that we want to lower. Reviewed-by:
Qiang Yu <yuq825@gmail.com> Signed-off-by:
Vasily Khoruzhick <anarsoul@gmail.com>
-
- 03 Aug, 2019 12 commits
-
-
Jason Ekstrand authored
The brw_wm_prog_data_dispatch_grf_start_reg and _prog_offset helpers read the _NPixelDispatchEnable fields from 3DSTATE_PS to figure out which bits to pull out of the prog data and stuff where. Therefore, they need to be called with the final set of _NPixelDispatchEnable bits after we've done the workaround for SIMD32 and 16x MSAA. Otherwise, if you end up with a somewhat odd combination of enables, the GRF start reg and KSP data ends up in the wrong slots. In particular, running SIMD32-only is broken but several other combinations are as well. Fixes: 5445c176 "iris: Disable SIMD32 when using a 16x MSAA..." Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Bas Nieuwenhuizen authored
These days it is not GLX only and it does not work with all TLS implementations. Reviewed-by:
Eric Engestrom <eric.engestrom@intel.com>
-
Bas Nieuwenhuizen authored
The asm code expects a specific kind of implementation, but Android uses something different (emutls). Turns out mesa has a fallback with pthread_getspecific, with an optimizaiton if only a single thread is used. emutls also uses getspecific, so lets just use the optimized mesa implementation. Fixes: 20294dce "mesa: Enable asm unconditionally, now that gen_matypes is gone." Reviewed-by:
Eric Engestrom <eric.engestrom@intel.com>
-
Christian Gmeiner authored
Signed-off-by:
Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by:
Philipp Zabel <philipp.zabel@gmail.com>
-
Signed-off-by:
Andreas Baierl <ichgeh@imkreisrum.de> Reviewed-by:
Qiang Yu <yuq825@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
Jason Ekstrand authored
We already had one in the vec4 code, we just had move it. Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
NetBSD expects a `void *` argument [1] as the printf-style arguments to the formatting string, so we need to cast the `const` away. [1] https://netbsd.gw.com/cgi-bin/man-cgi?pthread_setname_np++NetBSD-current Suggested-by:
Kamil Rytarowski <n54@gmx.com> Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Acked-by:
Eric Anholt <eric@anholt.net> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Acked-by:
Eric Anholt <eric@anholt.net> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
Unused as of last commit. Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Acked-by:
Eric Anholt <eric@anholt.net> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
This automates the include_directories and dependencies tracking so that all users of libmesa_util don't need to add them manually. Next commit will remove the ones that were only added for that reason. Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Acked-by:
Eric Anholt <eric@anholt.net> Tested-by:
Vinson Lee <vlee@freedesktop.org>
-
- 02 Aug, 2019 2 commits
-
-
Alyssa Rosenzweig authored
I have no idea who thought this was a good idea. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
Alyssa Rosenzweig authored
Now that register spilling is in place, this is reasonable. It turns out for some shaders, it's actually better to cap at 8 work registers and extra >8 uniform reigsters and tolerate the spilling, since the extra resulting threads make up for the spillage. So incidentally, the shader that spills here is in -bterrain, which jumps from 19fps to 21fps as a result of this change. total instructions in shared programs: 3513 -> 3448 (-1.85%) instructions in affected programs: 776 -> 711 (-8.38%) helped: 20 HURT: 0 helped stats (abs) min: 1 max: 8 x̄: 3.25 x̃: 2 helped stats (rel) min: 3.57% max: 16.00% x̄: 8.37% x̃: 7.19% 95% mean confidence interval for instructions value: -4.28 -2.22 95% mean confidence interval for instructions %-change: -10.02% -6.73% Instructions are helped. total bundles in shared programs: 2067 -> 2024 (-2.08%) bundles in affected programs: 515 -> 472 (-8.35%) helped: 19 HURT: 1 helped stats (abs) min: 1 max: 6 x̄: 2.37 x̃: 2 helped stats (rel) min: 2.13% max: 17.86% x̄: 10.19% x̃: 11.11% HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 3.23% max: 3.23% x̄: 3.23% x̃: 3.23% 95% mean confidence interval for bundles value: -3.01 -1.29 95% mean confidence interval for bundles %-change: -12.13% -6.91% Bundles are helped. total quadwords in shared programs: 3468 -> 3426 (-1.21%) quadwords in affected programs: 764 -> 722 (-5.50%) helped: 19 HURT: 1 helped stats (abs) min: 1 max: 5 x̄: 2.26 x̃: 2 helped stats (rel) min: 1.41% max: 12.50% x̄: 6.76% x̃: 7.14% HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 1.08% max: 1.08% x̄: 1.08% x̃: 1.08% 95% mean confidence interval for quadwords value: -2.83 -1.37 95% mean confidence interval for quadwords %-change: -8.08% -4.65% Quadwords are helped. total registers in shared programs: 383 -> 360 (-6.01%) registers in affected programs: 112 -> 89 (-20.54%) helped: 19 HURT: 0 helped stats (abs) min: 1 max: 3 x̄: 1.21 x̃: 1 helped stats (rel) min: 12.50% max: 27.27% x̄: 20.63% x̃: 20.00% 95% mean confidence interval for registers value: -1.47 -0.95 95% mean confidence interval for registers %-change: -22.39% -18.87% Registers are helped. total threads in shared programs: 432 -> 451 (4.40%) threads in affected programs: 19 -> 38 (100.00%) helped: 11 HURT: 0 helped stats (abs) min: 1 max: 2 x̄: 1.73 x̃: 2 helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00% 95% mean confidence interval for threads value: 1.41 2.04 95% mean confidence interval for threads %-change: 100.00% 100.00% Threads are [helped]. total loops in shared programs: 4 -> 4 (0.00%) loops in affected programs: 0 -> 0 helped: 0 HURT: 0 total spills in shared programs: 0 -> 4 spills in affected programs: 0 -> 4 helped: 0 HURT: 2 total fills in shared programs: 0 -> 7 fills in affected programs: 0 -> 7 helped: 0 HURT: 2 Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-