aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* mesa: Avoid leaking surface in st_renderbuffer_deleteBartosz Tomczyk2017-06-011-2/+8
| | | | | | | | | | | v2: add comment in code Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100741 Fixes: a5e733c6b52 mesa: drop current draw/read buffer when ctx is released Reviewed-by: Rob Clark <[email protected]> (v1) Reviewed-by: Emil Velikov <[email protected]> (cherry picked from commit fd6c2a3f3eb7f5f3077fb95b1441ddaa43b806fe) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* radv: Reserve space for descriptor and push constant user SGPR setting.Bas Nieuwenhuizen2017-06-011-0/+8
| | | | | | | | | | | | | | flush_compute_state doesn't reserve a large chunk, so these need their own reservation. Signed-off-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver" (cherry picked from commit 18efb404cfb38f722a16df7539390cf9a4a71929) [Juan A. Suarez: resolve trivial conflicts] Signed-off-by: Juan A. Suarez Romero <[email protected]> Conflicts: src/amd/vulkan/radv_cmd_buffer.c
* egl/wayland: select the format based on the interface usedEmil Velikov2017-06-011-1/+2
| | | | | | | | | | Rather than misleadingly depending on DRI2 for the WL_DRM vs WL_SHM formats, use the wl_drm and wl_shm interface respectively. Fixes: a1727aa75ed ("egl/wayland: Don't use DRM format codes for SHM") Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 6ef0fc400c690362b66add9c3533fae5f21d2cae) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* freedreno: fix fence creation fail if no renderingRob Clark2017-06-011-13/+1
| | | | | | | | | | | Android tries to create a FENCE_FD fence without any rendering. And then falls over when that fails. So just always create an initial batch. Fixes: e4ad8695 ("freedreno: fix crash when flush() but no rendering") Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit 8fc9702a1b7027d266121713771eafd2aa1a93b6) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* st/mesa: don't mark the program as in cache_fallback when there is cache missTimothy Arceri2017-06-013-2/+9
| | | | | | | | | | | | | | | | | | | | When we fallback currently the gl_program objects are re-allocated. This is likely to change when the i965 cache lands, but for now this fixes a crash when using MESA_GLSL=cache_fb. This env var simulates the fallback path taken when a tgsi cache item doesn't exist due to being evicted previously or some kind of error. Unlike i965 we are always falling back at link time so it's safe to just re-allocate everything. We will be unnecessarily freeing and re-allocate a bunch of things here but it's probably not a huge deal, and can be changed when the i965 code lands. Fixes: 0e9991f957e2 ("glsl: don't reference shader prog data during cache fallback") Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 80e643345ed0d8d3263b4ee23dd2998f0da170a8) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* egl/wayland: Ensure we get a back bufferDaniel Stone2017-06-011-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 9ca6711faa03 changed the Wayland winsys to only block for the frame callback inside SwapBuffers, rather than get_back_bo. get_back_bo would perform a single non-blocking Wayland event dispatch, to try to find any release events which we had pulled off the wire but not actually processed. The blocking dispatch was moved to SwapBuffers. This removed a guarantee that we would've processed all events inside get_back_bo(), and introduced a failure whereby the server could've sent a buffer release event, but we wouldn't have read it. In clients unconstrained by SwapInterval (rendering ~as fast as possible), which were being displayed directly without composition (buffer release delayed), this could lead to get_back_bo() failing because there were no free buffers available to it. The drawing rightly failed, but this was papered over because of the path in eglSwapBuffers() which attempts to guarantee a BO, in order to support calling SwapBuffers twice in a row with no rendering actually having been performed. Since eglSwapBuffers will perform a blocking dispatch of Wayland events, a buffer release would have arrived by that point, and we could then choose a buffer to post to the server. The effect was that frames were displayed out-of-order, since we grabbed a frame with random past content to display to the compositor. Ideally get_back_bo() failing should store a failure flag inside the surface and cause the next SwapBuffers to fail, but for the meantime, restore the correct behaviour such that get_back_bo() no longer fails. Signed-off-by: Daniel Stone <[email protected]> Reported-by: Eero Tamminen <[email protected]> Acked-by: Pekka Paalanen <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98833 Fixes: 9ca6711faa03 ("Revert "wayland: Block for the frame callback in get_back_bo not dri2_swap_buffers"") (cherry picked from commit 1f2d0093bf5084f65a923582881dc74153c804a4) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* radv: automake: list shared libraries after the static onesEmil Velikov2017-06-011-19/+16
| | | | | | | | | | | | Analogous to previous commit - the compiler can discard xcb + wayland libs, since there is no user (the static libraries) before it on the command line. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eduardo Lima Mitev <[email protected]> (cherry picked from commit 2b6ad89d8695c6b87c113eda198a65389bae9f3a) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv: automake: list shared libraries after the static onesEmil Velikov2017-06-011-16/+15
| | | | | | | | | | | | The compiler can discard the shared ones from the link chain, since there is no user (the static libraries) before it on the command line. Cc: [email protected] Reported-by: Laurent Carlier <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eduardo Lima Mitev <[email protected]> (cherry picked from commit 3e8790bff096a1a56bd1a3046c556a7f93b68ca8) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* i965: Round copy size to the nearest block in intel_miptree_copyJason Ekstrand2017-06-011-2/+2
| | | | | | | | | | | | | The width and height of the copy don't have to be aligned to the block size if they specify the right or bottom edges of the image. (See also the comment and asserts right above). We need to round them up when we do the division in order to get it 100% right. Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Cc: "17.0 17.1" <[email protected]> (cherry picked from commit 0901d0bc4c78313eaaf29dff74c6a7bf5514f75b) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* i965/blorp: Do and end-of-pipe sync on both sides of fast-clear opsJason Ekstrand2017-06-011-18/+38
| | | | | | | | | | | | | | | | | | We've discovered in the Vulkan driver that simply doing the end-of-pipe sync afterwards is insufficient. The specific requirement stated in the PRM is that you have to do one every time you transition between the tree modes of "clear", "render", and "resolve". This is GL, so we could track it but any attempt to do so would most likely get it wrong. For now, it's easier to just assume that every fast-clear op is an island and do the sync both before and after. This also removes the unneeded flush and stall after slow-clear operations. Reviewed-by: Topi Pohjolainen <[email protected]> Cc: "17.0 17.1" <[email protected]> (cherry picked from commit 441cd7a81d6fb90dacf8ae441b438d9fe7db19eb) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv: Set image memory types based on the type countJason Ekstrand2017-06-011-2/+4
| | | | | | | Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit 10fad58b31ee2354330152ca4072327d228fc2e7) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv: Set up memory types and heaps during physical device initJason Ekstrand2017-06-012-44/+81
| | | | | | | | | | | | Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit c1f4343807d1040bd7b5440aa2f5fccf5f12842d) [Juan A. Suarez: resolve trivial conflicts] Signed-off-by: Juan A. Suarez Romero <[email protected]> Conflicts: src/intel/vulkan/anv_device.c src/intel/vulkan/anv_private.h
* anv: Predicate 48bit support on gen >= 8Jason Ekstrand2017-05-311-1/+6
| | | | | | | | | | | This doesn't matter right now since it only affects whether or not we set the kernel bit but, if we ever do anything else based on it, we'll want it to be correct per-gen. Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit eceaf7e2340fca0079300692733206b2af555bd9) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv/image: Get rid of the memset(aux, 0, sizeof(aux)) hackJason Ekstrand2017-05-311-28/+0
| | | | | | | | | | | | | | | Up until now, we've been memsetting the auxiliary surface to 0 at BindImageMemory time to ensure that it is properly initialized. However, this isn't correct because apps are allowed to freely alias memory between different images and buffers so long as they properly track whether or not a particular image is valid and, if it isn't, transition from UNINITIALIZED to something else before using it. We now implement those transitions so we can drop the hack. Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit 4eecd534f0544b62ae831a97708ade007541bd32) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv: Handle transitioning depth from UNDEFINED to other layoutsJason Ekstrand2017-05-312-19/+19
| | | | | | | Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit cc45c4bb8072b6593812f9b68a7b3d2d00bfb9f0) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* anv: Handle color layout transitions from the UNINITIALIZED layoutJason Ekstrand2017-05-313-2/+108
| | | | | | | | | | This causes dEQP-VK.api.copy_and_blit.resolve_image.partial.* to start failing due to test bugs. See CL 1031 for a test fix. Reviewed-by: Nanley Chery <[email protected]> Cc: "17.1" <[email protected]> (cherry picked from commit 75edecf5020a9b833ff7e2929f64ceb11c9df679) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* radeonsi/gfx9: compile shaders with +xnackMarek Olšák2017-05-311-6/+7
| | | | | | | | | so that LLVM doesn't allocate SGPRs where XNACK is. Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 2beb31bd7c186641a2bb9abf6d2e13d42e43d944) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* travis: remove workarounds for the Vulkan targetEmil Velikov2017-05-311-5/+2
| | | | | | | | | | | | | | | | | Previously we required --enable-egl for the platform selection to work. Additionally due to the broken DRI3 dependency tracking we needed --enable-glx. Since both of these are now sorted now we no longer need the workarounds. While we're here, explicitly enable dri3. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 552cd5cce5ff75527d4755e1e2fb13ecf268575f) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out if building XVMC w/o supported platformEmil Velikov2017-05-311-1/+10
| | | | | | | | Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit b496fc29327a9dfb10a33ed0d6db72f1310fb88a) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out if building VDPAU w/o supported platformEmil Velikov2017-05-311-1/+10
| | | | | | | | Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 037e9d37b4985e432a48b52f413ac4ba36ab7053) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out if building OMX w/o supported platformEmil Velikov2017-05-311-1/+10
| | | | | | | | Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 1914c814a6c4aaaf03c26f6c20a9871ebc98895f) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out if building VA w/o supported platformEmil Velikov2017-05-311-1/+10
| | | | | | | | | | | A bit pedantic patch to fool proof should someone start thinkering without knowing what they do. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 63e11ac2b5c99fa351be5f61a035f72384609a1c) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* gallium/targets: link against XCB only as neededEmil Velikov2017-05-312-4/+12
| | | | | | | | | | OMX and VA can optionally use the X11 DRI2/DRI3, thus we should link only as required. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit fcbedce31012ee319d9e083a10bc44120f830e4d) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* st/omx: fix building against X11-less setupsEmil Velikov2017-05-311-0/+6
| | | | | | | | | | | | The vl_*_screen_create API properly falls back to a NOP when we're building without specific platforms. So the only thing we need is to handle the lack of X11/Xlib.h and provide a dummy Display define. Cc: <[email protected]> Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 115cb729d8feedf2d33187a5789ebc7582cc3042) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* st/omx: remove unneeded X11 includeEmil Velikov2017-05-311-2/+0
| | | | | | | | | | | En route to a X11-less builds Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nayan Deshmukh <[email protected]> Reviewed-by: Christian König <[email protected]> (cherry picked from commit d71ce62e84c588a804f457ad159c8ab94cf335b2) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* st/va: fix misplaced closing bracketEmil Velikov2017-05-311-1/+1
| | | | | | | | | | | | | It's been like this since the code was introduced. Fixes: 86eb4131a90 (st/va: add headless support, i.e. VA_DISPLAY_DRM) Cc: <[email protected]> Cc: Julien Isorce <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nayan Deshmukh <[email protected]> Reviewed-by: Christian König <[email protected]> (cherry picked from commit aaea53c2c02e4d5352ce3d08dfd43b2676d32000) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* auxiliary/vl: use vl_*_screen_create stubs when building w/o platformEmil Velikov2017-05-315-19/+35
| | | | | | | | | | | | | | | | | | | | | | Provide a dummy stub when the user has opted w/o said platform, thus we can build the binaries without unnecessarily requiring X11/other headers. In order to avoid build and link-time issues, we remove the HAVE_DRI3 guards in the VA and VDPAU state-trackers. With this change st/va will return VA_STATUS_ERROR_ALLOCATION_FAILED instead of VA_STATUS_ERROR_UNIMPLEMENTED. That is fine since upstream users of libva such as vlc and mpv do little error checking, let alone distinguish between the two. Cc: Leo Liu <[email protected]> Cc: Guttula, Suresh <[email protected]> Cc: [email protected] Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 369e5dd939b4af6c653d6cbbe9be257a9c2c950e) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out when building X11 Vulkan without DRI3Emil Velikov2017-05-311-0/+10
| | | | | | | | | | | | | Vulkan supports only DRI3 enabled X11 platforms. Make it obvious, should one consider building without it. Cc: Jason Ekstrand <[email protected]> Cc: Ville Syrjälä <[email protected]> Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 05043e0e8e0bd5e3019f480557d452b4c165f8f2) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* loader: build libloader_dri3_helper.la only with HAVE_PLATFORM_X11Emil Velikov2017-05-311-0/+2
| | | | | | | | | | Pretty much every other place does the same. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit d80d6d662e4199e9a4ec9d924007f8fb0b91b444) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: check once for DRI3 dependenciesEmil Velikov2017-05-3113-23/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we are having the XCB_DRI3 dependencies duplicated, partially. Just do a once-off check and add all of the respective CFLAGS/LIBS where needed. As a nice side effect this helps us solve a couple of FIXMEs. DRI3 is not a thing w/o X11 so disable it in such cases. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit acf3d2afab0571b74c0c0d1aee0f631b33fdc7da) Signed-off-by: Juan A. Suarez Romero <[email protected]> squashed with: configure.ac: add xcb-fixes to the XCB DRI3 list The XCB module is used by the VL targets. Thus omitting it can lead to link-time errors due to unresolved symbols. Other DRI3 users such as the Vulkan WSI and the dri3 loader helper do not use an update region in their xcb_present_pixmap() call. We will look into that at a later stage. Fixes: acf3d2afab0 ("configure: check once for DRI3 dependencies") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101110 Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 9a90d6a9d4ee1632aa357a2ac9be150e058e2c10) Signed-off-by: Juan A. Suarez Romero <[email protected]> squashed with: configure.ac: s/xcb-fixes/xcb-xfixes/ Former is not a thing, even if I have a hacked xcb-fixes.pc on my system. Thanks for spotting it Mark! Fixes: 9a90d6a9d4e ("configure.ac: add xcb-fixes to the XCB DRI3 list") Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 48cd1919ff1584c211ec7958864cac2e1cb347cf) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: error out when building GLX w/o the X11 platformEmil Velikov2017-05-311-0/+6
| | | | | | | | | | | | | | | | | | Building EGL/Vulkan/other without X11, while GLX is enabled is confusing and misleading. In practise anyone aiming at the former will also disable GLX. The inverse (some examples below) should still work: ./configure --disable-glx --with-platforms=x11 --with-vulkan-drivers=intel ./configure --disable-glx --with-platforms=x11 --enable-egl Keep in mind that the X11 platform is enabled, by default. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 8212fc95b59d0dd3cae1fe11359e0fa96d75e1bc) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: set HAVE_foo_PLATFORM as applicableEmil Velikov2017-05-313-6/+5
| | | | | | | | | | | | Rather than having multiple places that define the macros, do it just once in configure. Makes existing code a bit shorter and easier to manage as we fix the VL targets with follow-up commits. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit f353f844a08c78f2aa225165c05dae31f5700845) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: enable the surfaceless platform by defaultEmil Velikov2017-05-312-4/+3
| | | | | | | | | | | | | | | A simple platform that you want to use in a many usecases. See the spec file details. It has no special requirements plus it takes less than a second to build. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Acked-by: Tapani Pälli <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 2d35773221d63658bb764f90bd7be95f910f6309) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: loosen --with-platforms heuristicsEmil Velikov2017-05-311-7/+3
| | | | | | | | | | | Remove the enable-egl pre-requirement. Platform selection does not depend on EGL. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit edb5a65f93189472814afa97b1e3a54b2478b543) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: update remaining --with-egl-platforms referencesEmil Velikov2017-05-314-27/+25
| | | | | | | | | | Rename the remaining references to omit the egl part. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 73682f82bc8ab2b96b76ec12da9d2d130ec5e352) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: rename remaining HAVE_EGL_PLATFORM_* guardsEmil Velikov2017-05-312-6/+6
| | | | | | | | | | | Analogous to others earlier, these will be used to control the platform for more than the EGL driver. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 27737e7e84ea1fc9afb44d9294bcf9896f876cfc) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* configure: move platform handling further upEmil Velikov2017-05-311-92/+92
| | | | | | | | | | We'll need it for the Vulkan drivers and the VL targets. Cc: <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit 3208fd2e46bc627633177ebe60636c59a5684add) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* egl/wayland: Use per-surface event queuesDaniel Stone2017-05-312-27/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During display initialisation, we need a separate event queue to handle the registry events, which is correctly handled. But we also need separate per-surface event queues to handle swapchain-related events, such as surface frame events and buffer release events. This avoids two surfaces from the same EGLDisplay, both current on separate threads, dispatching each other's events. Create separate per-surface event queues, create wl_surface and wl_drm proxy wrapper objects per surface, so we eliminate the race around sending events to the wrong queue. swrast buffers do not need a dedicated proxy wrapper, as the wl_shm_pool used to create the wl_buffers, being transient, can itself be assigned to a queue. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Fixes: 36b9976e1f99 ("egl/wayland: Avoid race conditions when on non-main thread") Cc: [email protected] (cherry picked from commit 03dd9a88b0be17ff0ce91e92f6902a9a85ba584a) Signed-off-by: Juan A. Suarez Romero <[email protected]> Squashed with: egl/wayland: verify event queue was allocated We're already verified that 'window' wasn't NULL, I'm guessing this allocation error is about the newly created queue. CID: 1409754 Fixes: 03dd9a88b0b ("egl/wayland: Use per-surface event queues") Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Daniel Stone <[email protected]> (cherry picked from commit 30dc56bb5b313ae67c6e8648e23bb38c8e737488) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* egl/wayland: Don't open-code roundtripDaniel Stone2017-05-311-25/+1
| | | | | | | | | | | | wl_display_roundtrip_queue() exists and can replace roundtrip(). The API was introduced with wayland 1.6, while we currently require 1.11. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Cc: [email protected] (cherry picked from commit 8118bc269f39ea0b965752ea89b886b28094db42) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* vulkan/wsi/wayland: Use proxy wrappers for swapchainDaniel Stone2017-05-311-19/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Though most swapchain operations used a queue, they were racy in that the object was created with the queue only set later, meaning that its event could potentially be dispatched from the default queue in between these two steps. Use proxy wrappers to avoid this race, also assigning wl_buffers created for the swapchain to the event queue. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Cc: [email protected] (cherry picked from commit 5034c615582add2be9309dc1d7383fb0daba6dd3) Signed-off-by: Juan A. Suarez Romero <[email protected]> Squashed with: vulkan/wsi/wayland: Fix proxy wrappers for swapchain recreation Before the swapchain event queue is destroyed, all proxy objects that reference it must be dropped. Otherwise we risk a use-after-free if a frame callback event or buffer release events are received afterwards. This happens when an application destroys and recreates a swapchain in FIFO mode between two frames without using the VkSwapchainCreateInfoKHR::oldSwapchain mechanism to keep the old swapchain until after the next redraw. Fixes: 5034c615582a ("vulkan/wsi/wayland: Use proxy wrappers for swapchain") Signed-off-by: Philipp Zabel <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Cc: [email protected] (cherry picked from commit 1586768e7475a2732650f0ec2738b4e8429e4b40) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* vulkan/wsi/wayland: Use per-display event queueDaniel Stone2017-05-311-12/+32
| | | | | | | | | | | | Calling random callbacks on the display's event queue is hostile, as we may call into client code when it least expects it. Create our own event queue, one per wsi_wl_display, and use that for the registry. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Cc: [email protected] (cherry picked from commit c902a1957d079941823006d56b6810e1e85be4b0) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* vulkan/wsi/wayland: Remove roundtrip when creating imageDaniel Stone2017-05-311-1/+0
| | | | | | | | | | | | | | | There's no need to call wl_display_roundtrip() after trying to create a buffer through wl_drm; if it succeeds then everything is fine, and if it fails, then we get a fatal protocol error so can't recover anyway. Additionally, doing a roundtrip on the default / main application queue, is destructive anyway, so would need to be its own queue. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Cc: [email protected] (cherry picked from commit afe8c8a2997950cd63076b7c9eba39e1858fee43) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* vulkan: Fix Wayland uninitialised registryDaniel Stone2017-05-311-4/+5
| | | | | | | | | | | Untangle the exit cleanup paths so we don't try to use the registry variable before it's been initialised. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Cc: [email protected] (cherry picked from commit d9a8bba7f44f7042f0bbd659d0ed342236423dd3) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* docs: add sha256 checksums for 17.1.1Emil Velikov2017-05-251-1/+2
| | | | Signed-off-by: Emil Velikov <[email protected]>
* docs: add release notes for 17.1.1mesa-17.1.1Emil Velikov2017-05-251-0/+187
| | | | Signed-off-by: Emil Velikov <[email protected]>
* Update version to 17.1.1Emil Velikov2017-05-251-1/+1
| | | | Signed-off-by: Emil Velikov <[email protected]>
* nvc0/ir: SHLADD's middle source must be an immediateIlia Mirkin2017-05-221-0/+2
| | | | | | | | | The instruction encodings only allow for immediates. Don't try to replace a zero (which is dumb to have in that op in any case) with RZ. Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 82e77d4e4484b5d4f6a7b4751a17c882e6d2ad69)
* automake: add SWR LLVM gen_builder.hpp workaroundEmil Velikov2017-05-222-30/+15
| | | | | | | | | | | | | | | | | | | | | | As gen_builder.hpp file is generated, it contains information that is specific to the LLVM version it originates from. As suggested by Tim, the file seems to be forwards compatible. So in order to produce ship a file which will work everywhere we should be using earlies supported LLVM - 3.9. With this we're back on track and can build all of mesa without python/mako/flex and friends. In the long term we might want to see if the python generators can be updated to produce LLVM version agnostic files. At least within the range supported by SWR. Cc: <[email protected]> Cc: Chuck Atkins <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tim Rowley <[email protected]> (cherry picked from commit 5233eaf9ee85bb551ea38c1e2bbd8ac167754e50)
* nir/lower_tex: Fix minor error in YUV color conversion matrixJohnson Lin2017-05-191-3/+3
| | | | | | | | | | | | | | | | The matrix used for YCbCr to RGB is listed in: https://en.wikipedia.org/wiki/YCbCr There was an error in converting the offsets from integers to unorm values: 0.0625=16/256 should be 16.0/255,and 0.5=128.0/256 should be 128.0/255. With this fix, the CSC result is bit aligned with wikipedia's conversion result and FFMPeg's result. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100854 Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> (cherry picked from commit a6fb943f3eb86ca501a7e7b8d4621ba215f91133)
* virgl: fix virgl_bo_transfer_{put, get} box struct copyRob Herring2017-05-191-2/+12
| | | | | | | | | | | | | | Commit 3dfe61ed6ec6 ("gallium: decrease the size of pipe_box - 24 -> 16 bytes") changed the size of pipe_box, but the virgl code was relying on pipe_box and drm_virtgpu_3d_box structs having the same size/layout doing a struct copy. Copy the fields one by one instead. Cc: Marek Olšák <[email protected]> Cc: Dave Airlie <[email protected]> Fixes: 3dfe61ed6ec ("gallium: decrease the size of pipe_box - 24 -> 16 bytes") Signed-off-by: Rob Herring <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 5771ecc90ee7625564c1d3cea1a4fc382b0f58b5)