summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* i965: Solve Android native fence fd double closeRandy Xu2017-05-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The Android native fence in i965 has two fds: _EGLSync::SyncFd and brw_fence::sync_fd. The semantics of __DRI2fenceExtensionRec::create_fence_fd are unclear on whether the DRI driver takes ownership of the incoming fd (which is the same incoming fd from eglCreateSync). i965 did take ownership, but all other Mesa drivers do not; instead, they dup the incoming fd. As a result, _EGLSync::SyncFd and brw_fence::sync_fd were the same fd, and both egl_dri2 and i965 believed they owned it. On eglDestroySync, that led to a double-close. Fix the double-close by making brw_dri_create_fence_fd dup the incoming fd, just like the other drivers do. Signed-off-by: Randy Xu <[email protected]> Test: Run Vulkan and GLES stress test and no crash. Fixes: 6403e376511 ("i965/sync: Implement fences based on Linux sync_file") Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Chad Versace <[email protected]> [chadv: Polish the commit message] Cc: [email protected] (cherry picked from commit 6f21b5601cc1260eac53f65c8941b3aa66d0f5e9)
* vc4: Only build the NEON code on arm32.Eric Anholt2017-05-051-2/+2
| | | | | | | | | | | | NEON is sufficiently different on arm64 that we can't just reuse this code. Disable it on arm64 for now. v2: Use PIPE_ARCH_ARM instead, as __ARM_ARCH may be 8 for a 32-bit build for a v8 CPU. Signed-off-by: Eric Anholt <[email protected]> Cc: <[email protected]> (cherry picked from commit d884d1a6540ec0f60768c30df47f0228a37ea61c)
* Update version to 17.1.0-rc3mesa-17.1.0-rc3Emil Velikov2017-04-301-1/+1
| | | | Signed-off-by: Emil Velikov <[email protected]>
* travis: bump MAKEFLAGS to -j4Emil Velikov2017-04-301-6/+6
| | | | | | | | | The instance should have 2 cores, yet bumping the jobs to 4 should give us a minor speed improvement. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit b1d45c3366034341ce4650b0fb5b5605ae761c00)
* travis: enable wayland supportEmil Velikov2017-04-301-4/+16
| | | | | | Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 27a0b383b9edbacb177553685272408945ec630c)
* travis: add Gallium state-tracker targetsEmil Velikov2017-04-301-0/+80
| | | | | | | | | | | | | | | | Split into OpenCL and others, since the former is quite time consuming. v2: - explicitly enable/disable components - build libvdpau 1.1 requirement - enable st/vdpau - build libva 1.6.2 (API 0.38) requirement v3: Drop ubuntu-toolchain-r-test from sources (Andres) Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 0e6a36cd3f2db7208e85864d4d552f8575200fbe)
* travis: model scons check target like the make oneEmil Velikov2017-04-301-1/+7
| | | | | | | | | Should make things a bit more consistent across the board. Cc: Eric Engestrom <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit b3f2076549ec2bf13ee8bca965d3bf887abb6f20)
* travis: split the make target to three separate onesEmil Velikov2017-04-301-16/+80
| | | | | | | | | | | | | | | | | | | | | | | | | Split the target to allow faster builds for each run. The overall build time will be more, yet Travis runs multiple builds in parallel so we're limited by the slowest one. Things are split roughly as: - DRI loaders, classic DRI drivers, classic OSMesa, make check - All Gallium drivers (minus the SWR) alongside st/dri (mesa) - The Vulkan drivers - ANV and RADV, make check (anv) v2: - rework RUN_CHECK to MAKE_CHECK_COMMAND - explicitly disable DRI loaders - generate linux/memfd.h locally and enable ANV - add libedit-dev v3: Use printf to create the header (Andres). v4: Really add the libedit + printf hunks. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 7e2af374742f6f387cada8c3e1e8585be3831405)
* travis: add "make swr" to the build matrixEmil Velikov2017-04-301-3/+38
| | | | | | | | | v2: Quote OVERRIDE variables. v3: Add missplaced libedit-dev hunk (Andres). Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 8479fd8a1099c4bf37fb8cded7a3040b4d366fbc)
* travis: add "scons swr" to the build matrixEmil Velikov2017-04-301-0/+28
| | | | | | | | | | | | | | | | Requires GCC 5.0 (due to the C++14 requirement) and LLVM 3.9. v2: Enable the target, add libedit-dev, rework check target. v3: Comment the current check target, add -j4 SCONSFLAGS, quote OVERRIDE variables. v4: Keep check target as-is (Andres) Cc: Tim Rowley <[email protected]> Cc: George Kyriazis <[email protected]> Reviewed-by: George Kyriazis <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit f55d98ac85145fc35e7ee1e41520c07b6f083bb8)
* travis: add separate "scons" and "scons llvm" targetsEmil Velikov2017-04-301-16/+45
| | | | | | | | | | | | | | | | | | | The former does not require any LLVM, while the latter uses LLVM 3.3. This way we'll quickly catch any LLVM 3.3+ functionality that gets introduced where it shouldn't. Add the full list of addons for each build permutation. v2: Keep libedit-dev, rework check target. v3: Comment the current check target, add -j4 SCONSFLAGS v4: - Remove llvm-toolchain-trusty-3.3 source (Andres) - Keep check target as-is (Andres) Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 85ee2c6cfcd5deeca2ee0cf11079afccd6e7324e)
* travis: split out matrix from envEmil Velikov2017-04-301-5/+13
| | | | | | | | | | | | With next commits we'll add a couple of more options. v2: Rework check target. v3: Comment the current check target, add -j4 SCONSFLAGS v4: Keep check target as-is, will rework with later patch. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 56ba252e230dfeb93fad26cdbf5f6247524459c7)
* travis: rework "if test" blocks in the script sectionEmil Velikov2017-04-301-1/+3
| | | | | | | | | Split the "if test" blocks so that we get more sensible output in case of a failure. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit abcfea23add91ffa7013a3c862712cfdaefcf8b0)
* travis: remove unused -dev packagesEmil Velikov2017-04-301-2/+0
| | | | | | | | | We effectively override libdrm-dev and libxcb-dri2-0-dev since we build and install the package locally. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit ae713a7b79f60b45befea7c40b6d2aa3d3789441)
* travis: automatically manage ccache cachingEmil Velikov2017-04-301-3/+1
| | | | | | | | | | | | | | | | | According to the manual "If you are using ccache, use: language: c # or other C/C++ variants cache: ccache to cache $HOME/.ccache and automatically add /usr/lib/ccache to your $PATH." Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 6431b98c54ea2dc0c0f716b5f4a19af45a3b67f3)
* travis: enable apt cacheEmil Velikov2017-04-301-0/+1
| | | | | | | | | | | | Provides a small, but consistent improvement. Example numbers of the jobs added later in the series. "make loaders/classic DRI" - 1s "scons SWR" - 6s Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit 486f28ba88259cc70ee59ad67b2b4277b0da0ce4)
* travis: add the possibility of using the txc-dxtn libraryAndres Gomez2017-04-301-0/+14
| | | | | | | | | | | | | | | | The txc-dxtn library implements the patented S3 Texture Compression algorithm. By default it won't be used but we add the possibility of setting the USE_TXC_DXTN variable to yes in the travis web UI so it will be installed and used for the scons tests. Cc: Eric Anholt <[email protected]> Cc: Rhys Kidd <[email protected]> Signed-off-by: Andres Gomez <[email protected]> [Emil Velikov: keep the LIB prefix, drop the LD_LIBRARY_PATH, fold URL] Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 29322daef2b77c4d869d2945fa1226e6b433c687)
* travis: replace Trusty-based LLVM toolchain apt-get with apt addonAndres Gomez2017-04-301-11/+4
| | | | | | | | | | | | | Trusty's LLVM toochain repository was whitelisted some time ago. See: https://github.com/travis-ci/apt-source-whitelist/commit/479067c5e74cb0c1e2419209179b1afe2edce274 Signed-off-by: Andres Gomez <[email protected]> [Emil Velikov] - set sudo to false - reference the Trusty change (Rhys) - keep libedit-dev Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 7819d265c79ceb1bfcadb7b5e9c1586de5b6aac8)
* travis: explicitly LD_LIBRARY_PATH the local librariesEmil Velikov2017-04-301-0/+1
| | | | | | | | | Some of the libraries may be dlopened, which may not always work due to the non-standard prefix that we're using. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> (cherry picked from commit cb820daa3ff2dcd697144150e2a9daf1a8898117)
* anv/cmd_buffer: Use the device allocator for QueueSubmitJason Ekstrand2017-04-301-3/+3
| | | | | | | | | The command is really operating on a Queue not a command buffer and the nearest object to that with an allocator is VkDevice. Reviewed-by: Chad Versace <[email protected]> Cc: "17.0 17.1" <[email protected]> (cherry picked from commit bd3a9813b92bd2e116b58f0932bc7f1f722a9f63)
* gallium/targets: fix bool setting on BE architecturesIlia Mirkin2017-04-308-11/+11
| | | | | | | | | | | | | | val_bool and val_int are in a union. val_bool gets the first byte, which happens to work on LE when setting via the int, but breaks on BE. By setting the value properly, we are able to use DRI3 on BE architectures. Tested by running glxgears with a NV34 in a G5 PPC. Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] [Emil Velikov: squash the vmwgfx hunk] Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit 6af14778a3f68030c4ad6426c75fe25d726235d5)
* st/mesa: don't cast the incomplete framebufer to st_framebufferNicolai Hähnle2017-04-302-2/+4
| | | | | | | | | | | | | | | | | | | | The incomplete framebuffer is set for a surfaceless context. This leads to the following error in piglit spec@egl_khr_surfaceless_context@viewport: ==26703==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7f6886e43240 at pc 0x7f68854db0fd bp 0x7ffca404b3b0 sp 0x7ffca404b3a0 READ of size 8 at 0x7f6886e43240 thread T0 #0 0x7f68854db0fc in st_viewport ../../../mesa-src/src/mesa/state_tracker/st_cb_viewport.c:57 #1 0x556840176cdb in main tests/egl/spec/egl_khr_surfaceless_context/viewport.c:101 #2 0x7f688edcf3f0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x203f0) #3 0x556840176e19 in _start (/home/nha/amd/piglit/bin/egl-surfaceless-context-viewport+0xe19) 0x7f6886e43240 is located 32 bytes to the left of global variable 'DummyRenderbuffer' defined in '../../../mesa-src/src/mesa/main/fbobject.c:69:31' (0x7f6886e43260) of size 112 0x7f6886e43240 is located 8 bytes to the right of global variable 'IncompleteFramebuffer' defined in '../../../mesa-src/src/mesa/main/fbobject.c:73:30' (0x7f6886e42de0) of size 1112 SUMMARY: AddressSanitizer: global-buffer-overflow ../../../mesa-src/src/mesa/state_tracker/st_cb_viewport.c:57 in st_viewport Cc: [email protected] Reviewed-by: Marek Olšák <marek@[email protected]> (cherry picked from commit 19b61799e3d06795d783b34fdbbf8474ef1e9a7c)
* util/disk_cache: remove percentage based max cache limitTimothy Arceri2017-04-301-6/+2
| | | | | | | | | | | | | | | | | The more I think about it the more this seems like a bad idea. When we were deleting old cache dirs this wasn't so bad as it was unlikely we would ever hit the actual limit before things were cleaned up. Now that we only start cleaning up old cache items once the limit is reached the a percentage based max cache limit is more risky. For the inital release of shader cache I think its better to stick to a more conservative cache limit, at least until we have some way of cleaning up the cache more aggressively. Cc: "17.1" <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit 22fa3d90a92c1628215d0f5fccbe1116d4f5147f)
* disk_cache: use block size rather than file sizeTimothy Arceri2017-04-301-5/+11
| | | | | | | | | | | | | | | | | The majority of cache files are less than 1kb this resulted in us greatly miscalculating the amount of disk space used by the cache. Using the number of blocks allocated to the file is more conservative and less likely to cause issues. This change will result in cache sizes being miscalculated further until old items added with the previous calculation have all been removed. However I don't see anyway around that, the previous patch should help limit that problem. Cc: "17.1" <[email protected]> Reviewed-and-Tested-by: Michel Dänzer <[email protected]> (cherry picked from commit 4e1f3afea9bdeddb0d21f00d25319bce580d80c3)
* disk_cache: reduce default cache size to 5% of filesystemTimothy Arceri2017-04-301-2/+2
| | | | | | | | | | | | Modern disks are extremely large and are only going to get bigger. Usage has shown frequent Mesa upgrades can result in the cache growing very fast i.e. wasting a lot of disk space unnecessarily. 5% seems like a more reasonable default. Cc: "17.1" <[email protected]> Acked-by: Michel Dänzer <[email protected]> (cherry picked from commit ce412371513c90bf9156f22c3567ee57750ef264)
* anv: Don't place scratch buffers above the 32-bit boundaryJason Ekstrand2017-04-301-0/+19
| | | | | | | | | | | | | This fixes rendering corruptions in DOOM. Hopefully, it will also make Jenkins a bit more stable as we've been seeing some random failures and GPU hangs ever since turning on 48bit. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100620 Fixes: 651ec926fc1 "anv: Add support for 48-bit addresses" Tested-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit c43b4bc85eddba8bc31665cfee5928bed8343516)
* radeonsi: adjust ESGS ring buffer size computation on VIMarek Olšák2017-04-301-1/+4
| | | | | | Cc: 17.0 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 3f2a0649abc982fe5de647a96fbe354aa9e41a59)
* radeonsi/gfx9: don't set deprecated field PARTIAL_ES_WAVE_ONMarek Olšák2017-04-301-2/+3
| | | | | | Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 80814819c28353a38c03d4cdba39983b8cf260ac)
* radeonsi/gfx9: set MAX_PRIMGRP_IN_WAVE in the correct registerMarek Olšák2017-04-302-1/+5
| | | | | | Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 60a20e6879e4ce0911b12848ffd9e372f096590e)
* radeonsi/gfx9: add a workaround for viewing a slice of 3D as a 2D imageMarek Olšák2017-04-301-8/+22
| | | | | | Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 8e8570a9e8bae7f4d3ad623475dfadc715a828d7)
* radeonsi/gfx9: fix 1D array shader imagesMarek Olšák2017-04-301-0/+1
| | | | | | Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 482e6b07cc6ce4b2ceac8188be19dbf252eaecde)
* radeonsi/gfx9: fix most things wrong with shader imagesMarek Olšák2017-04-302-12/+24
| | | | | | | | | | | | | There are 2 major hw changes: - The address must always point to the address of level 0. GFX9 tiling modes don't allow binding to a non-0 level. - 3D must always be bound as 3D, because 2D and 3D use entirely different tiling modes, and the texture target determines which set of modes is used. Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 5c94779585e24e8bd1bd41707521584af4251de3)
* radeonsi/gfx9: fix texture buffer objects and image buffers with IDXEN==0Marek Olšák2017-04-301-1/+34
| | | | | | Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 65e0c3fba74ee98cacadbba4bd005b930609b65e)
* intel/fs: Take into account amount of data read in spilling cost heuristic.Francisco Jerez2017-04-301-1/+1
| | | | | | | | | | | | | | | | | | | | Until now the spilling cost calculation was neglecting the amount of data read from the register during the spilling cost calculation. This caused it to make suboptimal decisions in some cases leading to higher memory bandwidth usage than necessary. Improves Unigine Heaven performance by ~4% on BDW, reversing an unintended FPS regression from my previous commit 147e71242ce539ff28e282f009c332818c35f5ac with n=12 and statistical significance 5%. In addition SynMark2 OglCSDof performance is improved by an additional ~5% on SKL, and a Kerbal Space Program apitrace around the Moho planet I can provide on request improves by ~20%. Cc: <[email protected]> Reviewed-by: Plamena Manolova <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> (cherry picked from commit 58324389be7bc7c5e10093b9cc0a8efa9b4c93a9)
* intel/fs: Use regs_written() in spilling cost heuristic for improved accuracy.Francisco Jerez2017-04-301-2/+1
| | | | | | | | | | | This is what we use later on to compute the number of registers that will actually get spilled to memory, so it's more likely to match reality than the current open-coded approximation. Cc: <[email protected]> Reviewed-by: Plamena Manolova <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> (cherry picked from commit ecc19e12dca95d2571d3761dea6dec24b061013c)
* i965/vec4: Avoid reswizzling MACH instructions in opt_register_coalesce().Kenneth Graunke2017-04-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | opt_register_coalesce() was optimizing sequences such as: mul(8) acc0:D, attr18.xyyy:D, attr19.xyyy:D mach(8) vgrf5.xy:D, attr18.xyyy:D, attr19.xyyy:D mov(8) m4.zw:F, vgrf5.xxxy:F into: mul(8) acc0:D, attr18.xyyy:D, attr19.xyyy:D mach(8) m4.zw:D, attr18.xxxy:D, attr19.xxxy:D This doesn't work - if we're going to reswizzle MACH, we'd need to reswizzle the MUL as well. Here, the MUL fills the accumulator's .zw components with attr18.yy * attr19.yy. But the MACH instruction expects .z to contain attr18.x * attr19.x. Bogus results ensue. No change in shader-db on Haswell. Prevents regressions in Timothy's patches to use enhanced layouts for varying packing (which rearrange code just enough to trigger this pre-existing bug, but were fine themselves). Acked-by: Timothy Arceri <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> (cherry picked from commit 2faf227ec2e22c7a37e0a54783a3f0a0062ac852) Squashed with commit: i965/vec4: Use reads_accumulator_implicitly(), not MACH checks. Curro pointed out that I should not just check for MACH, but use the reads_accumulator_implicitly() helper, which would also prevent the same bug with MAC and SADA2 (if we ever decide to use them). Cc: [email protected] Reviewed-by: Francisco Jerez <[email protected]> (cherry picked from commit 6b10c37b9c3a73add73f444fe1aee73c9ec82c94)
* Update version to 17.1.0-rc2mesa-17.1.0-rc2Emil Velikov2017-04-241-1/+1
| | | | Signed-off-by: Emil Velikov <[email protected]>
* st/clover: add space between < and ::Emil Velikov2017-04-246-17/+17
| | | | | | | | | | | | | As pointed out by compiler ./llvm/codegen.hpp:52:22: error: ‘<::’ cannot begin a template-argument list [-fpermissive] ./llvm/codegen.hpp:52:22: note: ‘<:’ is an alternate spelling for ‘[’. Insert whitespace between ‘<’ and ‘::’ Cc: Francisco Jerez <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Vedran Miletić <[email protected]> (cherry picked from commit dd6ec78b4fc1208c9ec330642ad42361fea91678)
* configure.ac: Fix typos.Vinson Lee2017-04-241-3/+3
| | | | | | | | Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Alejandro Piñeiro <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Cc: <[email protected]> (cherry picked from commit b81d85f1754928139f9f01474495e024946aa1b4)
* mesa: validate sampler type across the whole programTimothy Arceri2017-04-243-5/+28
| | | | | | | | | | | | Currently we were only making sure types were the same within a single stage. This looks to have regressed with 953a0af8e3f73. Fixes: 953a0af8e3f73 ("mesa: validate sampler uniforms during gluniform calls") Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> https://bugs.freedesktop.org/show_bug.cgi?id=97524 (cherry picked from commit d682f8aa8e0edd166166f87fcd774dd2d57b4180)
* mesa/glthread: correctly compare thread handlesEmil Velikov2017-04-241-1/+1
| | | | | | | | | | | | | | As mentioned in the manual - comparing pthread_t handles via the C comparison operator is incorrect and pthread_equal() should be used instead. Cc: Timothy Arceri <[email protected]> Fixes: d8d81fbc316 ("mesa: Add infrastructure for a worker thread to process GL commands.") Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Plamena Manolova <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (cherry picked from commit 52df318d61f4892dbbaa8f0da4787f25caf1b0d1)
* st/mesa: automake: honour the vdpau header install locationEmil Velikov2017-04-241-0/+1
| | | | | | | | | | | | | | | If VDPAU is installed in the non-default location, we'll fail to find the headers and error at build time. ../../src/gallium/include/state_tracker/vdpau_dmabuf.h:37:25: fatal error: vdpau/vdpau.h: No such file or directory #include <vdpau/vdpau.h> ^ Fixes: faba96bc60b ("st/vdpau: add new interop interface") Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 51c0c213b7fa53b249e9fcb9004a3ba1076fe773)
* configure.ac: check require_basic_egl only if egl enabledEmil Velikov2017-04-241-1/+3
| | | | | | | Fixes: 1ac40173c2a ("configure.ac: simplify EGL requirements for drivers dependent on EGL") Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 4516bfbd309a6996c18f577de47b13e33dce0828)
* configure.ac: manually expand PKG_CHECK_VAREmil Velikov2017-04-241-1/+1
| | | | | | | | | | | The macro is introduced with pkgconfig v0.28 which isn't universally available. Thus it will error at configure stage. Reported-by: Brian Paul <[email protected]> Tested-by: Brian Paul <[email protected]> Fixes: ce562f9e3fa ("EGL: Implement the libglvnd interface for EGL (v3)") Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 179e21a72045ceb09cebf4c426bae16580fdd438)
* util/queue: don't hang at exitRob Clark2017-04-241-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So atexit() is horrible and 4aea8fe7 is probably not a good idea. But add an extra layer of duct-tape to the problem. Otherwise we hit a situation where app using an atexit() handler that runs later than ours doesn't hang when trying to tear down a context. (gdb) bt #0 util_queue_killall_and_wait (queue=queue@entry=0x52bc80) at ../../../src/util/u_queue.c:264 #1 0x0000007fb6c380c0 in atexit_handler () at ../../../src/util/u_queue.c:51 #2 0x0000007fb7730e2c in __run_exit_handlers () from /lib64/libc.so.6 #3 0x0000007fb7730e5c in exit () from /lib64/libc.so.6 #4 0x0000007fb7ce17dc in piglit_report_result (result=PIGLIT_PASS) at /home/robclark/src/piglit/tests/util/piglit-util.c:267 #5 0x0000007fb7ef99f8 in process_next_event (x11_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:139 #6 0x0000007fb7ef9a90 in enter_event_loop (winsys_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:153 #7 0x0000007fb7ef8e50 in run_test (gl_fw=0x432c20, argc=1, argv=0x7ffffff588) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:88 #8 0x0000007fb7edb890 in piglit_gl_test_run (argc=1, argv=0x7ffffff588, config=0x7ffffff400) at /home/robclark/src/piglit/tests/util/piglit-framework-gl.c:203 #9 0x0000000000401224 in main (argc=1, argv=0x7ffffff588) at /home/robclark/src/piglit/tests/bugs/drawbuffer-modes.c:46 (gdb) c Continuing. [Thread 0x7fb67580c0 (LWP 3471) exited] ^C Thread 1 "drawbuffer-mode" received signal SIGINT, Interrupt. 0x0000007fb72dda34 in pthread_cond_wait@@GLIBC_2.17 () from /lib64/libpthread.so.0 (gdb) bt #0 0x0000007fb72dda34 in pthread_cond_wait@@GLIBC_2.17 () from /lib64/libpthread.so.0 #1 0x0000007fb6c38304 in cnd_wait (mtx=0x5bdc90, cond=0x5bdcc0) at ../../../include/c11/threads_posix.h:159 #2 util_queue_fence_wait (fence=0x5bdc90) at ../../../src/util/u_queue.c:106 #3 0x0000007fb6daac70 in fd_batch_sync (batch=0x5bdc70) at ../../../../../src/gallium/drivers/freedreno/freedreno_batch.c:233 #4 batch_reset (batch=batch@entry=0x5bdc70) at ../../../../../src/gallium/drivers/freedreno/freedreno_batch.c:183 #5 0x0000007fb6daa5e0 in batch_flush (batch=0x5bdc70) at ../../../../../src/gallium/drivers/freedreno/freedreno_batch.c:290 #6 fd_batch_flush (batch=0x5bdc70, sync=<optimized out>) at ../../../../../src/gallium/drivers/freedreno/freedreno_batch.c:308 #7 0x0000007fb6daba2c in fd_bc_flush (cache=0x461220, ctx=0x52b920) at ../../../../../src/gallium/drivers/freedreno/freedreno_batch_cache.c:141 #8 0x0000007fb6dac954 in fd_context_flush (pctx=0x52b920, fence=0x0, flags=<optimized out>) at ../../../../../src/gallium/drivers/freedreno/freedreno_context.c:54 #9 0x0000007fb6b43294 in st_glFlush (ctx=<optimized out>) at ../../../src/mesa/state_tracker/st_cb_flush.c:121 #10 0x0000007fb69a84e8 in _mesa_make_current (newCtx=newCtx@entry=0x0, drawBuffer=drawBuffer@entry=0x0, readBuffer=readBuffer@entry=0x0) at ../../../src/mesa/main/context.c:1654 #11 0x0000007fb6b7ca58 in st_api_make_current (stapi=<optimized out>, stctxi=0x0, stdrawi=0x0, streadi=0x0) at ../../../src/mesa/state_tracker/st_manager.c:827 #12 0x0000007fb6cc87e8 in dri_unbind_context (cPriv=<optimized out>) at ../../../../../src/gallium/state_trackers/dri/dri_context.c:217 #13 0x0000007fb6cc80b0 in driUnbindContext (pcp=0x5271e0) at ../../../../../../src/mesa/drivers/dri/common/dri_util.c:591 #14 0x0000007fb7d1da08 in MakeContextCurrent (dpy=0x433380, draw=0, read=0, gc_user=0x0) at ../../../src/glx/glxcurrent.c:214 #15 0x0000007fb7a8d5e0 in glx_platform_make_current () from /lib64/libwaffle-1.so.0 #16 0x0000007fb7a894e4 in waffle_make_current () from /lib64/libwaffle-1.so.0 #17 0x0000007fb7ef8c60 in piglit_wfl_framework_teardown (wfl_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_wfl_framework.c:628 #18 0x0000007fb7ef939c in piglit_winsys_framework_teardown (winsys_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:238 #19 0x0000007fb7ef9c30 in destroy (gl_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:212 #20 0x0000007fb7edb7c4 in destroy () at /home/robclark/src/piglit/tests/util/piglit-framework-gl.c:184 #21 0x0000007fb7730e2c in __run_exit_handlers () from /lib64/libc.so.6 #22 0x0000007fb7730e5c in exit () from /lib64/libc.so.6 #23 0x0000007fb7ce17dc in piglit_report_result (result=PIGLIT_PASS) at /home/robclark/src/piglit/tests/util/piglit-util.c:267 #24 0x0000007fb7ef99f8 in process_next_event (x11_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:139 #25 0x0000007fb7ef9a90 in enter_event_loop (winsys_fw=0x432c20) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:153 #26 0x0000007fb7ef8e50 in run_test (gl_fw=0x432c20, argc=1, argv=0x7ffffff588) at /home/robclark/src/piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:88 #27 0x0000007fb7edb890 in piglit_gl_test_run (argc=1, argv=0x7ffffff588, config=0x7ffffff400) at /home/robclark/src/piglit/tests/util/piglit-framework-gl.c:203 #28 0x0000000000401224 in main (argc=1, argv=0x7ffffff588) at /home/robclark/src/piglit/tests/bugs/drawbuffer-modes.c:46 (gdb) r Fixes: 4aea8fe7 ("gallium/u_queue: fix random crashes when the app calls exit()") Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 6fb7935dedc87ffd767a2999f402ce1a46d18cce)
* configure.ac: print deprecation warning as neededEmil Velikov2017-04-241-1/+2
| | | | | | | | | | The warning should be printed only when one explicitly uses the deprecated configure toggle. Fixes: 7748c3f5eb1 ("configure.ac: deprecate --with-egl-platforms over --with-platforms") Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 9915753e631a203d7f22bfa308fbf688644a8a37)
* st/mesa: invalidate the readpix cache in st_indirect_draw_vboMarek Olšák2017-04-241-0/+2
| | | | | | | Cc: <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 7cd6e2df65de9e2f0d77022a64c4e48ca2ebcb33)
* winsys/sw/dri: don't use GNU void pointer arithmeticEmil Velikov2017-04-241-1/+1
| | | | | | | | | | | | | | | | Resolves build issues like the following: src/gallium/winsys/sw/dri/dri_sw_winsys.c:203:31: error: pointer of type ‘void *’ used in arithmetic [-Werror=pointer-arith] data = dri_sw_dt->data + (dri_sw_dt->stride * box->y) + box->x * blsize; ^ src/gallium/winsys/sw/dri/dri_sw_winsys.c:203:62: error: pointer of type ‘void *’ used in arithmetic [-Werror=pointer-arith] data = dri_sw_dt->data + (dri_sw_dt->stride * box->y) + box->x * blsize; ^ Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 309f4067a795219027f523bf0733692e48f2fd58)
* vbo: fix gl_DrawID handling in glMultiDrawArraysNicolai Hähnle2017-04-241-6/+15
| | | | | | | | | Fixes a bug in KHR-GL45.shader_draw_parameters_tests.ShaderMultiDrawArraysParameters. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 51deba0eb35d0d27560bb7dad24b8d39abb58be6)
* mesa: move glMultiDrawArrays to vbo and fix error handlingNicolai Hähnle2017-04-246-19/+127
| | | | | | | | | | | | | | | | | When any count[i] is negative, we must skip all draws. Moving to vbo makes the subsequent change easier. v2: - provide the function in all contexts, including GLES - adjust validation accordingly to include the xfb check v3: - fix mix-up of pre- and post-xfb prim count (Nils Wallménius) Cc: [email protected] Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 42d5465b9ba85b4918b9e6fb57994720e3c8a80b)