summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-07-05i965: Fix output register sizes when variable ranges are interleaved18.1-proposedNeil Roberts1-7/+18
In 6f5abf31466aed this code was fixed to calculate the maximum size of an attribute in a seperate pass and then allocate the registers to that size. However this wasn’t taking into account ranges that overlap but don’t have the same starting location. For example: layout(location = 0, component = 0) out float a[4]; layout(location = 2, component = 1) out float b[4]; Previously, if ‘a’ was processed first then it would allocate a register of size 4 for location 0 and it wouldn’t allocate another register for location 2 because it would already be covered by the range of 0. Then if something tries to write to b[2] it would try to write past the end of the register allocated for ‘a’ and it would hit an assert. This patch changes it to scan for any overlapping ranges that start within each range to calculate the maximum extent and allocate that instead. Fixed Piglit’s arb_enhanced_layouts/execution/component-layout/ vs-fs-array-interleave-range.shader_test Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Fixes: 6f5abf31466 "i965: Fix output register sizes when multiple variables share a slot." (cherry picked from commit 2d5ddbe960f7c62a8f00d5e800925865f115970f)
2018-07-05r600/sb: cleanup if_conversion iterator to be legal C++Dave Airlie1-7/+4
The current code causes: /usr/include/c++/8/debug/safe_iterator.h:207: Error: attempt to copy from a singular iterator. This is due to the iterators getting invalidated, fix the reverse iterator to use the return value from erase, and cast it properly. (used Mathias suggestion) Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de> (cherry picked from commit 8c51caab2404c5c9f5211936d27e9fe1c0af2e7d)
2018-07-03nir: fix selection of loop terminator when two or more have the same limitTimothy Arceri2-4/+4
We need to add loop terminators to the list in the order we come across them otherwise if two or more have the same exit condition we will select that last one rather than the first one even though its unreachable. This fix is for simple unrolls where we only have a single exit point. When unrolling these type of loops the unreachable terminators and their unreachable branch are removed prior to unrolling. Because of the logic change we also switch some list access in the complex unrolling logic to avoid breakage. Fixes: 6772a17acc8e ("nir: Add a loop analysis pass") Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (cherry picked from commit 463f849097193ad20e7622ddd740fd15b96f4277)
2018-07-03i965/vec4: Don't cmod propagate from CMP to ADD if the writemask isn't ↵Ian Romanick2-5/+87
compatible Otherwise we can incorrectly cmod propagate in situations like add(8) g10<1>.xD g2<0>.xD -16D ... cmp.ge.f0(8) null<1>D g2<0>.xD 16D ... (+f0) sel(8) g21<1>.xyUD g14<4>.xyyyUD g18<4>.xyyyUD Sadly, this change hurts quite a few shaders. v2: Refactor writemask compatibility check into a separate function. Suggested by Caio. Ivy Bridge and Haswell had similar results. (Haswell shown) total instructions in shared programs: 12968489 -> 12968738 (<.01%) instructions in affected programs: 60679 -> 60928 (0.41%) helped: 0 HURT: 249 HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 0.22% max: 0.81% x̄: 0.46% x̃: 0.44% 95% mean confidence interval for instructions value: 1.00 1.00 95% mean confidence interval for instructions %-change: 0.44% 0.48% Instructions are HURT. total cycles in shared programs: 409171965 -> 409172317 (<.01%) cycles in affected programs: 260056 -> 260408 (0.14%) helped: 0 HURT: 176 HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 0.04% max: 0.34% x̄: 0.17% x̃: 0.17% 95% mean confidence interval for cycles value: 2.00 2.00 95% mean confidence interval for cycles %-change: 0.16% 0.18% Cycles are HURT. Sandy Bridge total instructions in shared programs: 10423577 -> 10423753 (<.01%) instructions in affected programs: 40667 -> 40843 (0.43%) helped: 0 HURT: 176 HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 HURT stats (rel) min: 0.29% max: 0.79% x̄: 0.48% x̃: 0.42% 95% mean confidence interval for instructions value: 1.00 1.00 95% mean confidence interval for instructions %-change: 0.46% 0.51% Instructions are HURT. total cycles in shared programs: 146097503 -> 146097855 (<.01%) cycles in affected programs: 503990 -> 504342 (0.07%) helped: 0 HURT: 176 HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2 HURT stats (rel) min: 0.02% max: 0.36% x̄: 0.12% x̃: 0.11% 95% mean confidence interval for cycles value: 2.00 2.00 95% mean confidence interval for cycles %-change: 0.11% 0.13% Cycles are HURT. No changes on any other platforms. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Fixes: cd635d149b2 i965/vec4: Propagate conditional modifiers from compares to adds Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (cherry picked from commit 995d9937103771d9318124b91adfd20d7c6d5fed)
2018-07-03glsl/cache: save and restore ExternalSamplersUsedMarek Olšák1-0/+2
Shaders that need special code for external samplers were broken if they were loaded from the cache. Cc: 18.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> (cherry picked from commit 99c6cae2278011309b7ca3d4735c7b341cbb4eef)
2018-07-03anv/cmd_buffer: never shrink the push constant buffer sizeIago Toral Quiroga1-1/+16
If we have to re-emit push constant data, we need to re-emit all of it. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> CC: <mesa-stable@lists.freedesktop.org> (cherry picked from commit 198a72220b63e812e8b853cb5caa088d93720e7d)
2018-07-03anv/cmd_buffer: clean dirty push constants flag after emitting push constantsIago Toral Quiroga1-0/+2
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> CC: <mesa-stable@lists.freedesktop.org> (cherry picked from commit 6a1d8350c91eed4ab10569683902a0fea4c048c5)
2018-07-03anv/cmd_buffer: make descriptors dirty when emitting base state addressIago Toral Quiroga1-0/+5
Every time we emit a new state base address we will need to re-emit our binding tables, since they might have been emitted with a different base state adress. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> CC: <mesa-stable@lists.freedesktop.org> (cherry picked from commit 1b54824687df5170e1dd5ab701b2b76da299b851)
2018-07-03anv: Be more careful about hashing pipeline layoutsJason Ekstrand1-3/+38
Previously, we just hashed the entire descriptor set layout verbatim. This meant that a bunch of extra stuff such as pointers and reference counts made its way into the cache. It also meant that we weren't properly hashing in the Y'CbCr conversion information information from bound immutable samplers. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> (cherry picked from commit d1c778b362d3ccf203f33095bee2af45dc8cde9a)
2018-07-03radeonsi: fix memory exhaustion issue with DCC statistics gathering with DRI2Marek Olšák1-3/+27
Cc: 18.1 <mesa-stable@lists.freedesktop.org> (cherry picked from commit 41f80373b46604f585497086f971a43aeea7f0c1) Conflicts fixed by Dylan Conflicts: src/gallium/drivers/radeonsi/si_blit.c
2018-07-03glsl: skip comparison opt when adding vars of different sizeTimothy Arceri1-0/+6
The spec allows adding scalars with a vector or matrix. In this case the opt was losing swizzle and size information. This fixes a bug with Doom (2016) shaders. Fixes: 34ec1a24d61f ("glsl: Optimize (x + y cmp 0) into (x cmp -y).") Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (cherry picked from commit 2a5121bf355001e2c69ba05e8d9be4ed633c7bf4)
2018-07-03nvc0/ir: fix TargetNVC0::insnCanLoadOffset()Rhys Perry1-0/+1
Previously, TargetNVC0::insnCanLoadOffset() returned whether the offset could be set to a specific value. The IndirectPropagation pass expected it to return whether the offset could be increased by a specific value, which is what TargetNV50::insnCanLoadOffset() does. Fixes: 37b67db6ae34fb6586d640a7a1b6232f091dd812 ("nvc0/ir: be careful about propagating very large offsets into const load") Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Signed-off-by: Karol Herbst <kherbst@redhat.com> (cherry picked from commit 6bb0f87c6003e1d80aa79f6a591620aecc7b031d)
2018-07-03intel/fs: Split instructions low to high in lower_simd_widthJason Ekstrand1-2/+35
Commit 0d905597f fixed an issue with the placement of the zip and unzip instructions. However, as a side-effect, it reversed the order in which we were emitting the split instructions so that they went from high group to low instead of low to high. This is fine for most things like texture instructions and the like but certain render target writes really want to be emitted low to high. This commit just switches the order back around to be low to high. Reviewed-by: Matt Turner <mattst88@gmail.com> Fixes: 0d905597f "intel/fs: Be more explicit about our placement of [un]zip" (cherry picked from commit d5b617a28e89fda62fb6cceec10686b0bb4b4fb2)
2018-07-03egl: fix build race in automakeRoss Burton1-0/+1
There is a parallel make build issue in src/egl/drivers/dri2/ for wayland builds. Can be reproduced with: $ rm src/egl/drivers/dri2/*.h src/egl/drivers/dri2/platform_wayland.lo $ make -C src/egl/ drivers/dri2/platform_wayland.lo ../../../mesa-18.1.2/src/egl/drivers/dri2/platform_wayland.c:50:10: fatal error: linux-dmabuf-unstable-v1-client-protocol.h: No such file or directory This patch adds the missing dependency. Fixes: 02cc359372773800de817 "egl/wayland: Use linux-dmabuf interface for buffers" Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> [Eric: fixed up the commit title] Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit d7c4ce1d1d800a4721122a20b5a289951e7f4fbc)
2018-06-29docs: Add SHA256 sums to notes for 18.1.3Dylan Baker1-2/+2
2018-06-29docs: Add release notes for 18.1.3Dylan Baker1-0/+167
2018-06-29VERSION: bump version to 18.1.3Dylan Baker1-1/+1
2018-06-27cherry-ignore: add a2f5292c82ad07731d633b36a663e46adc181db9Dylan Baker1-0/+6
2018-06-27radv: use separate bind points for the dynamic buffersSamuel Pitoiset2-3/+11
The Vulkan spec says: "pipelineBindPoint is a VkPipelineBindPoint indicating whether the descriptors will be used by graphics pipelines or compute pipelines. There is a separate set of bind points for each of graphics and compute, so binding one does not disturb the other." CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit 7a57c827675f3bceecd3b59968e9e5b37dcafcef)
2018-06-26cherry-ignore: Ignore cac7ab1192eefdd8d8b3f25053fb006b5c330eb8Dylan Baker1-0/+5
2018-06-26nir/validate: Use the type from the tail of call parameter derefsJason Ekstrand1-2/+4
Otherwise, if what gets passed into the function call is a deref chain longer than just a variable deref, we would use the type of the entire variable rather than the type of the thing being dereferenced. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106980 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (Unique to 18.1)
2018-06-26nir: Handle call instructions in foreach_srcJason Ekstrand1-1/+16
Even though they don't have regular sources, they do have derefs and those may have implied sources that should be handled. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106980 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (Unique to 18.1)
2018-06-26glsl: serialize data from glTransformFeedbackVaryingsTapani Pälli1-0/+20
While XFB has been enabled for cache, we did not serialize enough data for the whole API to work (such as glGetProgramiv). Fixes: 6d830940f7 "Allow shader cache usage with transform feedback" Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106907 Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (cherry picked from commit ab2643e4b06f63c93a57624003679903442634a8)
2018-06-26i965/gen6/gs: Handle case where a GS doesn't allocate VUEAndrii Simiklit1-21/+21
We can not use the VUE Dereference flags combination for EOT message under ILK and SNB because the threads are not initialized there with initial VUE handle unlike Pre-IL. So to avoid GPU hangs on SNB and ILK we need to avoid usage of the VUE Dereference flags combination. (Was tested only on SNB but according to the specification SNB Volume 2 Part 1: 1.6.5.3, 1.6.5.6 the ILK must behave itself in the similar way) v2: Approach to fix this issue was changed. Instead of different EOT flags in the program end we will create VUE every time even if GS produces no output. v3: Clean up the patch. Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105399 CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Tested-by: Mark Janes <mark.a.janes@intel.com> (cherry picked from commit 232c5d75ea8c9536a896a17c9156b8e2ad36a779)
2018-06-26radv: ignore pInheritanceInfo for primary command buffersSamuel Pitoiset1-1/+2
From the Vulkan spec: "If this is a primary command buffer, then this value is ignored." CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit ba5e25ed293bc060be2ba7ed840a22458454b3cf)
2018-06-25meson: Correct behavior of vdpau=autoDylan Baker1-8/+9
Currently if vdpau is set to auto, it will be disabled only in cases where gallium is disabled or the host OS is not supported (mac, haiku, windows). However on (for example) Linux if libvdpau is not installed then the build will error because of the unmet dependency. This corrects auto to do the right thing, and not error if libvdpau is not installed. Fixes: 992af0a4b8224bdb4809e01c2f00d2f32546aee5 ("meson: dedup gallium-vdpau logic") Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit d9a8008a93d87287b696627ea6dd01b278b6d579)
2018-06-25meson: Fix auto option for xvmcDylan Baker1-5/+4
This fixes the same problem as the previous patch did for vdpau, but for xvmc. Fixes: 724916c8a84b5bba8f880f17da936585d52c97b6 ("meson: dedup gallium-xvmc logic") Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit a6943bb4ce99ea7af7222552f1326fb80823d0b2) Squashed with: meson: Fix typo that breaks -Dgalium-xvmc=false _xmvc -> _xvmc. Sigh Fixes: a6943bb4ce99ea7af7222552f1326fb80823d0b2 ("meson: Fix auto option for xvmc") Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Clayton Craft <clayton.a.craft@intel.com> (cherry picked from commit ced3df5623ca362a528ce06df46299701efa3644)
2018-06-25meson: Fix auto option for vaDylan Baker1-6/+9
The same as the previous two patches, but for the libva state tracker. Fixes: 724916c8a84b5bba8f880f17da936585d52c97b6 ("meson: dedup gallium-xvmc logic") Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit 94cf3970925ec87d913a1549a42cdb03713fc4bb)
2018-06-25radv: fix HTILE metadata initialization in presence of subpass clearsSamuel Pitoiset1-8/+1
If the driver ends up by performing a slow depthstencil clear, the HTILE metadata won't be initialized correctly. This fixes random VM faults on Polaris while running CTS with Bas's runner. This doesn't seem to regress performance. CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit 07cb1373a23042de6904e918419bfa3963695795)
2018-06-22cherry-ignore: Add 587e712eda95c31d88ea9d20e59ad0ae59afef4fDylan Baker1-0/+5
2018-06-22mesa: fix glGetInteger64v for arrays of integersMarek Olšák1-1/+1
Cc: 18.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> (cherry picked from commit a2790b134a912b84389022b96ef0ef78a7d2b83c)
2018-06-21glsl/tests/glcpp: reinstate "error out if no tests found"Emil Velikov1-0/+9
With the recent rework of converting the shell script to a python one the check for actual tests was dropped. Bring that back, since it was explicitly added considering we had a ~2 year period, during which the tests were not run. v2: use raise Exception() over print() & return false (Dylan) Fixes: db8cd8e36771 ("glcpp/tests: Convert shell scripts to a python script") Cc: Dylan Baker <dylan@pnwbakers.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit d589eddc8be5240632d42ae1931b0b6a82ff524c)
2018-06-21configure: use compliant grep regex checksEmil Velikov1-2/+2
The current `grep "foo\|bar"' trips on some grep implementations, like the FreeBSD one. Instead use `egrep "foo|bar"' as suggested by Stefan. Cc: Stefan Esser <se@FreeBSD.org> Reported-by: Stefan Esser <se@FreeBSD.org> Bugzilla: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228673 Fixes: 1914c814a6c ("configure: error out if building OMX w/o supported platform") Fixes: 63e11ac2b5c ("configure: error out if building VA w/o supported platform") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> (cherry picked from commit dfb1f2759c668ad0e2147ca0b29aed6fb2473451)
2018-06-21freedreno/ir3: fix base_vertexRob Clark1-0/+1
Fixes: c366f422f0a nir: Offset vertex_id by first_vertex instead of base_vertex Signed-off-by: Rob Clark <robdclark@gmail.com> (cherry picked from commit e1e40935b4adb60e47e90e6d83589c369a26b6e2)
2018-06-20radeonsi: always put persistent buffers into GTT on radeonMarek Olšák1-1/+5
This improves performance for certain games. Cc: 18.1 <mesa-stable@lists.freedesktop.org> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> (cherry picked from commit 9322974ec716b8c3b2e326559f663ff087daa38c)
2018-06-20ac/gpu_info: add kernel_flushes_hdp_before_ibMarek Olšák4-4/+7
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> (cherry picked from commit b81149e258a492ed0c81058fb535f6bfdacb36da) Conflicts: src/amd/common/ac_gpu_info.c Conflicts resolved by Dylan
2018-06-19ac/surface: Set compressZ for stencil-only surfaces.Bas Nieuwenhuizen1-1/+1
We HTILE compress stencil-only surfaces too. CC: 18.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit 1a8501a9ddfff6c3eab47046e0e8a9dc17492bf0)
2018-06-19virgl: Remove debugging left-oversTomeu Vizoso1-2/+0
Some fprintfs were probably left unintentionally a few years ago and are a bit of a nuisance. Fixes: 2d3301e4d513 ("virgl: fix reference counting of prime handles") Cc: Rob Herring <robh@kernel.org> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit 9b1cb50ba47346dd8fcb8f2f5d69125d33a4a66e)
2018-06-18meson: fix i965/anv/isl genX static lib namesEric Engestrom3-3/+3
Shouldn't make any functional difference, just that `liblibanv_gen90.a` will now be called `libanv_gen90.a`. Fixes: 3218056e0eb375eeda470 "meson: Build i965 and dri stack" Fixes: d1992255bb29054fa5176 "meson: Add build Intel "anv" vulkan driver" Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> (cherry picked from commit e8eb84826e30ffcb54f69a7aec9181f969418eb2) Trivial merge conflicts resolved by Dylan.
2018-06-18radv: fix bitwise checkEric Engestrom1-1/+1
Fixes: 922cd38172b8a2bc286bd "radv: implement out-of-order rasterization when it's safe on VI+" Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (cherry picked from commit 4d08c1e7d15f7d2c0a406cf1c79314511778b38f)
2018-06-18radv: fix reported number of available VGPRsEric Engestrom1-1/+1
It's a bit late to round up after an integer division. Fixes: de889794134e6245e08a2 "radv: Implement VK_AMD_shader_info" Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Alex Smith <asmith@feralinteractive.com> (cherry picked from commit d85fef1e34657fc082b9a763de9499d324fbeebf)
2018-06-18radv: fix emitting the TCS regs on GFX9Samuel Pitoiset1-1/+0
The primitive ID is NULL and this generates an invalid select instruction which crashes because one operand is NULL. This fixes crashes in The Long Journey Home, Quantum Break and Just Cause 3 with DXVK. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106756 CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit 5917761e3dddc968d5ccac9b282b7cb8d3da866f)
2018-06-15glsl: Don't copy propagate elements from SSBO or shared variables eitherIan Romanick1-0/+8
Since SSBOs can be written by a different GPU thread, copy propagating a read can cause the value to magically change. SSBO reads are also very expensive, so doing it twice will be slower. The same shader was helped by this patch and the previous. Haswell, Broadwell, and Skylake had similar results. (Skylake shown) total instructions in shared programs: 14399119 -> 14399113 (<.01%) instructions in affected programs: 683 -> 677 (-0.88%) helped: 1 HURT: 0 total cycles in shared programs: 532973113 -> 532971865 (<.01%) cycles in affected programs: 524666 -> 523418 (-0.24%) helped: 1 HURT: 0 Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106774 (cherry picked from commit 37bd9ccd21b860d2b5ffea7e1f472ec83b68b43b)
2018-06-15glsl: Don't copy propagate from SSBO or shared variables eitherIan Romanick1-0/+2
Since SSBOs can be written by other GPU threads, copy propagating a read can cause the value to magically change. SSBO reads are also very expensive, so doing it twice will be slower. Haswell, Broadwell, and Skylake had similar results. (Skylake shown) total instructions in shared programs: 14399120 -> 14399119 (<.01%) instructions in affected programs: 684 -> 683 (-0.15%) helped: 1 HURT: 0 total cycles in shared programs: 532978931 -> 532973113 (<.01%) cycles in affected programs: 530484 -> 524666 (-1.10%) helped: 1 HURT: 0 Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106774 (cherry picked from commit 461a5c899c08064467abb635536381a5a5659280)
2018-06-15util/bitset: include util/macro.hChristian Gmeiner1-0/+1
BITSET_FFS(x) macro makes use of ARRAY_SIZE(x) macro which is defined in util/macro.h. Include it directy to make usage more straightforward. Fixes: 692bd4a1ab9 ("util: replace Elements() with ARRAY_SIZE()") Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit efae1279936112cefe9fa1753998993df81d6201)
2018-06-15meson: fix private libs when building without glxLukas Rusak1-6/+12
I noticed that the generated pkg-config files will include glx and x11 dependencies even when x11 isn't a selected platform. This fixes the private libs and was tested by building kmscube V2: - check if gallium-xlib is being used for glx Fixes: 108d257a16859898f5ce0 "meson: build libEGL" Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (cherry picked from commit 4cfc4cef80a85dea2b761efd9f6deb13198c9196)
2018-06-15meson: only build vl_winsys_dri.c when x11 platform is usedLukas Rusak1-1/+1
This seems to have been missed in the move from autotools This fixes the following build issue: ../src/gallium/auxiliary/vl/vl_winsys_dri.c:34:10: fatal error: X11/Xlib-xcb.h: No such file or directory #include <X11/Xlib-xcb.h> ^~~~~~~~~~~~~~~~ Fixes: b1b65397d0c4978e36a84c0a1c98a4bd6cb9588e ("meson: Build gallium auxiliary") Reviewed-by: Dylan Baker <dylan@pnwbakers.com> (cherry picked from commit 1d92d6486a7685762f480fb33893b3c3db1fd21a)
2018-06-15glsl: allow standalone semicolons outside main()Dave Airlie1-0/+1
GLSL 4.60 offically added this but games and older CTS suites actually had shaders that did this, we may as well enable it everywhere. Adding stable because it appears apps in the wild do this. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Cc: <mesa-stable@lists.freedesktop.org> (cherry picked from commit babd1d526be4690204964f5e0a42f5df12f7f83b)
2018-06-15ac/gpu_info: report real total memory sizesMarek Olšák1-28/+54
The change from MIN2 to MAX2 is intentional. Cc: 18.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit 95ecde42eb93b0ef1c65e60b5eeb20f9b2781fb4)
2018-06-15radeonsi/gfx9: fix si_get_buffer_from_descriptors for 48-bit pointersMarek Olšák1-2/+2
This fixes: GL45-CTS.pipeline_statistics_query_tests_ARB.functional_compute_shader_invocations Cc: 18.0 18.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (cherry picked from commit 6d671078a8eb683a4a978ca4f9d4e41cbb399bf8)