.travis.yml | 7 Android.common.mk | 4 VERSION | 2 bin/.cherry-ignore | 4 bin/get-extra-pick-list.sh | 10 bin/get-fixes-pick-list.sh | 59 - configure.ac | 290 ++--- debian/README.source | 6 debian/changelog | 16 debian/patches/egl-platform-mir.patch | 34 debian/patches/egl-platform-rs.patch | 34 debian/patches/vulkan-mir.patch | 52 debian/upstream/signing-key.asc | 580 ++++++++++ docs/egl.html | 12 docs/releasing.html | 2 docs/relnotes/17.1.0.html | 3 docs/relnotes/17.1.1.html | 188 +++ docs/relnotes/17.1.2.html | 186 +++ include/pci_ids/radeonsi_pci_ids.h | 4 src/amd/Makefile.common.am | 2 src/amd/addrlib/gfx9/gfx9addrlib.cpp | 57 src/amd/addrlib/gfx9/gfx9addrlib.h | 8 src/amd/common/amd_family.h | 1 src/amd/common/amdgpu_id.h | 10 src/amd/vulkan/Makefile.am | 38 src/amd/vulkan/radv_cmd_buffer.c | 8 src/compiler/glsl/shader_cache.cpp | 2 src/compiler/nir/nir_lower_tex.c | 6 src/egl/Makefile.am | 14 src/egl/drivers/dri2/egl_dri2.h | 4 src/egl/drivers/dri2/platform_android.c | 13 src/egl/drivers/dri2/platform_wayland.c | 130 +- src/egl/main/eglapi.c | 19 src/egl/main/egldisplay.c | 2 src/gallium/auxiliary/Makefile.am | 20 src/gallium/auxiliary/Makefile.sources | 10 src/gallium/auxiliary/gallivm/lp_bld_init.c | 34 src/gallium/auxiliary/renderonly/renderonly.c | 1 src/gallium/auxiliary/vl/vl_winsys.h | 21 src/gallium/drivers/etnaviv/etnaviv_resource.c | 2 src/gallium/drivers/etnaviv/etnaviv_translate.h | 2 src/gallium/drivers/freedreno/freedreno_context.c | 8 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 2 src/gallium/drivers/radeon/Makefile.am | 6 src/gallium/drivers/radeon/r600_pipe_common.c | 2 src/gallium/drivers/radeon/r600_texture.c | 16 src/gallium/drivers/radeonsi/si_pipe.c | 20 src/gallium/drivers/radeonsi/si_state.c | 3 src/gallium/drivers/radeonsi/si_state_draw.c | 14 src/gallium/drivers/radeonsi/si_state_shaders.c | 29 src/gallium/drivers/swr/Makefile.am | 41 src/gallium/drivers/swr/rasterizer/memory/StoreTile.h | 75 + src/gallium/drivers/swr/swr_context.cpp | 77 - src/gallium/drivers/swr/swr_screen.cpp | 10 src/gallium/drivers/vc4/vc4_resource.c | 3 src/gallium/state_trackers/omx/Makefile.am | 1 src/gallium/state_trackers/omx/entrypoint.c | 6 src/gallium/state_trackers/omx/vid_dec.h | 2 src/gallium/state_trackers/va/Makefile.am | 1 src/gallium/state_trackers/va/context.c | 4 src/gallium/state_trackers/vdpau/Makefile.am | 1 src/gallium/state_trackers/vdpau/device.c | 2 src/gallium/state_trackers/xvmc/Makefile.am | 3 src/gallium/targets/dri/Android.mk | 3 src/gallium/targets/omx/Makefile.am | 7 src/gallium/targets/va/Makefile.am | 7 src/gallium/targets/vdpau/Makefile.am | 1 src/gallium/targets/xvmc/Makefile.am | 1 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 4 src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 14 src/gbm/Makefile.am | 1 src/gbm/backends/dri/gbm_dri.c | 2 src/glx/g_glxglvnddispatchfuncs.c | 14 src/glx/g_glxglvnddispatchindices.h | 1 src/intel/Android.vulkan.mk | 2 src/intel/Makefile.vulkan.am | 34 src/intel/compiler/brw_vec4.cpp | 107 + src/intel/compiler/brw_vec4_gs_visitor.cpp | 26 src/intel/compiler/brw_vec4_nir.cpp | 15 src/intel/isl/isl_gen7.c | 28 src/intel/vulkan/anv_allocator.c | 14 src/intel/vulkan/anv_blorp.c | 67 + src/intel/vulkan/anv_device.c | 203 ++- src/intel/vulkan/anv_formats.c | 4 src/intel/vulkan/anv_image.c | 52 src/intel/vulkan/anv_private.h | 39 src/intel/vulkan/anv_wsi.c | 1 src/intel/vulkan/genX_cmd_buffer.c | 51 src/intel/vulkan/genX_query.c | 7 src/intel/vulkan/tests/block_pool_no_free.c | 5 src/intel/vulkan/tests/state_pool.c | 5 src/intel/vulkan/tests/state_pool_free_list_only.c | 5 src/intel/vulkan/tests/state_pool_no_free.c | 5 src/loader/Makefile.am | 2 src/mesa/drivers/dri/Android.mk | 3 src/mesa/drivers/dri/i965/brw_blorp.c | 67 - src/mesa/drivers/dri/i965/brw_surface_formats.c | 15 src/mesa/drivers/dri/i965/brw_tex_layout.c | 100 + src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 4 src/mesa/drivers/dri/i965/gen6_depth_state.c | 4 src/mesa/drivers/dri/i965/intel_blit.c | 4 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 11 src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 37 src/mesa/drivers/dri/r200/r200_context.c | 1 src/mesa/drivers/dri/radeon/radeon_common_context.c | 2 src/mesa/drivers/dri/radeon/radeon_context.c | 1 src/mesa/drivers/dri/radeon/radeon_fbo.c | 2 src/mesa/drivers/dri/radeon/radeon_texstate.c | 14 src/mesa/main/context.c | 10 src/mesa/main/mtypes.h | 7 src/mesa/state_tracker/st_cb_eglimage.c | 32 src/mesa/state_tracker/st_cb_viewport.c | 4 src/mesa/state_tracker/st_manager.c | 9 src/mesa/state_tracker/st_shader_cache.c | 2 src/util/Android.mk | 1 src/vulkan/Makefile.am | 3 src/vulkan/wsi/wsi_common_wayland.c | 119 +- 117 files changed, 2555 insertions(+), 847 deletions(-)
New commits: commit 293d1d5ca67cf7eac5fcd9a10a4a7a646ad35d76 Author: Timo Aaltonen <tjaal...@debian.org> Date: Wed Jun 7 13:24:21 2017 +0300 release to artful diff --git a/debian/changelog b/debian/changelog index 19632b4..eb4acd7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ -mesa (17.1.2-1ubuntu1) UNRELEASED; urgency=medium +mesa (17.1.2-1ubuntu1) artful; urgency=medium * Merge from Debian. * Refresh patches. - -- Timo Aaltonen <tjaal...@debian.org> Wed, 07 Jun 2017 10:46:27 +0300 + -- Timo Aaltonen <tjaal...@debian.org> Wed, 07 Jun 2017 13:24:07 +0300 mesa (17.1.2-1) experimental; urgency=medium commit e28c49c045578ce95ec71b62aa1cab2d3a3ba8b8 Author: Timo Aaltonen <tjaal...@debian.org> Date: Wed Jun 7 13:21:51 2017 +0300 Refresh patches. diff --git a/debian/changelog b/debian/changelog index 55c5ed6..19632b4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mesa (17.1.2-1ubuntu1) UNRELEASED; urgency=medium + + * Merge from Debian. + * Refresh patches. + + -- Timo Aaltonen <tjaal...@debian.org> Wed, 07 Jun 2017 10:46:27 +0300 + mesa (17.1.2-1) experimental; urgency=medium * New upstream release. diff --git a/debian/patches/egl-platform-mir.patch b/debian/patches/egl-platform-mir.patch index 2fd2f8d..d1fbc1b 100644 --- a/debian/patches/egl-platform-mir.patch +++ b/debian/patches/egl-platform-mir.patch @@ -1,24 +1,24 @@ --- a/configure.ac +++ b/configure.ac -@@ -2214,7 +2214,9 @@ for plat in $egl_platforms; do - android) +@@ -1701,7 +1701,9 @@ for plat in $platforms; do PKG_CHECK_MODULES([ANDROID], [cutils hardware sync]) + DEFINES="$DEFINES -DHAVE_ANDROID_PLATFORM" ;; - + mir) + PKG_CHECK_MODULES([MIR], [mirclient mir-client-platform-mesa]) + ;; *) - AC_MSG_ERROR([EGL platform '$plat' does not exist]) + AC_MSG_ERROR([platform '$plat' does not exist]) ;; -@@ -2241,6 +2243,7 @@ AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, ec - AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android') -+AM_CONDITIONAL(HAVE_EGL_PLATFORM_MIR, echo "$egl_platforms" | grep -q 'mir') +@@ -1732,6 +1734,7 @@ AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, ec + AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo "$platforms" | grep -q 'drm') + AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless') + AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android') ++AM_CONDITIONAL(HAVE_PLATFORM_MIR, echo "$egl_platforms" | grep -q 'mir') - AC_SUBST([EGL_NATIVE_PLATFORM]) - AC_SUBST([EGL_CFLAGS]) + dnl + dnl More DRI setup --- a/include/EGL/eglplatform.h +++ b/include/EGL/eglplatform.h @@ -105,6 +105,13 @@ typedef struct ANativeWindow* @@ -113,7 +113,7 @@ }; struct dri2_egl_context -@@ -265,7 +273,7 @@ struct dri2_egl_surface +@@ -269,7 +277,7 @@ struct dri2_egl_surface struct gbm_dri_surface *gbm_surf; #endif @@ -122,7 +122,7 @@ __DRIbuffer *dri_buffers[__DRI_BUFFER_COUNT]; struct { #ifdef HAVE_WAYLAND_PLATFORM -@@ -277,9 +285,13 @@ struct dri2_egl_surface +@@ -281,9 +289,13 @@ struct dri2_egl_surface void *data; int data_size; #endif @@ -137,7 +137,7 @@ int locked; int age; } color_buffers[4], *back, *current; -@@ -308,6 +320,10 @@ struct dri2_egl_surface +@@ -312,6 +324,10 @@ struct dri2_egl_surface __DRIimage *front; unsigned int visual; #endif @@ -148,7 +148,7 @@ }; struct dri2_egl_config -@@ -397,6 +413,9 @@ dri2_initialize_android(_EGLDriver *drv, +@@ -401,6 +417,9 @@ dri2_initialize_android(_EGLDriver *drv, EGLBoolean dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp); @@ -810,7 +810,7 @@ +#endif /** - * Map --with-egl-platforms names to platform types. + * Map --with-platforms names to platform types. @@ -73,6 +76,7 @@ static const struct { { _EGL_PLATFORM_ANDROID, "android" }, { _EGL_PLATFORM_HAIKU, "haiku" }, @@ -1031,11 +1031,11 @@ dri_use |= __DRI_IMAGE_USE_SCANOUT; --- a/src/egl/Makefile.am +++ b/src/egl/Makefile.am -@@ -88,6 +88,12 @@ libEGL_common_la_LIBADD += $(ANDROID_LIB +@@ -83,6 +83,12 @@ libEGL_common_la_LIBADD += $(ANDROID_LIB dri2_backend_FILES += drivers/dri2/platform_android.c endif -+if HAVE_EGL_PLATFORM_MIR ++if HAVE_PLATFORM_MIR +AM_CFLAGS += -DHAVE_MIR_PLATFORM +AM_CFLAGS += $(MIR_CFLAGS) +dri2_backend_FILES += drivers/dri2/platform_mir.c diff --git a/debian/patches/egl-platform-rs.patch b/debian/patches/egl-platform-rs.patch index 6ca1ab4..9a1c887 100644 --- a/debian/patches/egl-platform-rs.patch +++ b/debian/patches/egl-platform-rs.patch @@ -8,9 +8,9 @@ dnl LLVM versions LLVM_REQUIRED_GALLIUM=3.3.0 -@@ -2214,9 +2215,15 @@ for plat in $egl_platforms; do - android) +@@ -1701,9 +1702,15 @@ for plat in $platforms; do PKG_CHECK_MODULES([ANDROID], [cutils hardware sync]) + DEFINES="$DEFINES -DHAVE_ANDROID_PLATFORM" ;; - mir) - PKG_CHECK_MODULES([MIR], [mirclient mir-client-platform-mesa]) @@ -25,16 +25,16 @@ + ;; + *) - AC_MSG_ERROR([EGL platform '$plat' does not exist]) + AC_MSG_ERROR([platform '$plat' does not exist]) ;; -@@ -2244,6 +2251,7 @@ AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, ec - AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_MIR, echo "$egl_platforms" | grep -q 'mir') -+AM_CONDITIONAL(HAVE_EGL_PLATFORM_RS, echo "$egl_platforms" | grep -q 'rs') +@@ -1735,6 +1742,7 @@ AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo " + AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless') + AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android') + AM_CONDITIONAL(HAVE_PLATFORM_MIR, echo "$egl_platforms" | grep -q 'mir') ++AM_CONDITIONAL(HAVE_PLATFORM_RS, echo "$egl_platforms" | grep -q 'rs') - AC_SUBST([EGL_NATIVE_PLATFORM]) - AC_SUBST([EGL_CFLAGS]) + dnl + dnl More DRI setup --- a/include/EGL/eglplatform.h +++ b/include/EGL/eglplatform.h @@ -112,6 +112,13 @@ typedef MirEGLNativeDisplayType EGLNativ @@ -53,11 +53,11 @@ #if defined(MESA_EGL_NO_X11_HEADERS) --- a/src/egl/Makefile.am +++ b/src/egl/Makefile.am -@@ -94,6 +94,13 @@ AM_CFLAGS += $(MIR_CFLAGS) +@@ -89,6 +89,13 @@ AM_CFLAGS += $(MIR_CFLAGS) dri2_backend_FILES += drivers/dri2/platform_mir.c endif -+if HAVE_EGL_PLATFORM_RS ++if HAVE_PLATFORM_RS +AM_CFLAGS += -DHAVE_RS_PLATFORM +AM_CFLAGS += $(RS_CFLAGS) +libEGL_common_la_LIBADD += $(RS_LIBS) @@ -130,7 +130,7 @@ }; struct dri2_egl_context -@@ -285,10 +294,10 @@ struct dri2_egl_surface +@@ -289,10 +298,10 @@ struct dri2_egl_surface void *data; int data_size; #endif @@ -143,7 +143,7 @@ int fd; int buffer_age; #endif -@@ -316,6 +325,10 @@ struct dri2_egl_surface +@@ -320,6 +329,10 @@ struct dri2_egl_surface } color_buffers[3], *back; #endif @@ -154,7 +154,7 @@ #if defined(HAVE_SURFACELESS_PLATFORM) __DRIimage *front; unsigned int visual; -@@ -416,6 +429,9 @@ dri2_initialize_surfaceless(_EGLDriver * +@@ -420,6 +433,9 @@ dri2_initialize_surfaceless(_EGLDriver * EGLBoolean dri2_initialize_mir(_EGLDriver *drv, _EGLDisplay *disp); @@ -164,7 +164,7 @@ void dri2_flush_drawable_for_swapbuffers(_EGLDisplay *disp, _EGLSurface *draw); -@@ -446,5 +462,4 @@ dri2_set_WL_bind_wayland_display(_EGLDri +@@ -450,5 +466,4 @@ dri2_set_WL_bind_wayland_display(_EGLDri } #endif } @@ -1146,7 +1146,7 @@ +#endif /** - * Map --with-egl-platforms names to platform types. + * Map --with-platforms names to platform types. @@ -76,7 +79,8 @@ static const struct { { _EGL_PLATFORM_ANDROID, "android" }, { _EGL_PLATFORM_HAIKU, "haiku" }, diff --git a/debian/patches/vulkan-mir.patch b/debian/patches/vulkan-mir.patch index decdbcc..db0eab5 100644 --- a/debian/patches/vulkan-mir.patch +++ b/debian/patches/vulkan-mir.patch @@ -1,16 +1,6 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -2247,6 +2247,7 @@ fi - - AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11') - AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland') -+AM_CONDITIONAL(HAVE_PLATFORM_RS, echo "$egl_platforms" | grep -q 'rs') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless') - AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android') --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c -@@ -293,6 +293,12 @@ static const VkExtensionProperties globa +@@ -400,6 +400,12 @@ static const VkExtensionProperties globa .specVersion = 5, }, #endif @@ -23,7 +13,7 @@ { .extensionName = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, .specVersion = 1, -@@ -357,6 +363,69 @@ static const VkAllocationCallbacks defau +@@ -464,6 +470,67 @@ static const VkAllocationCallbacks defau .pfnFree = default_free_func, }; @@ -51,6 +41,7 @@ + VkDeviceMemory* pMem) +{ + ANV_FROM_HANDLE(anv_device, device, _device); ++ struct anv_physical_device *pdevice = &device->instance->physicalDevice; + struct anv_device_memory *mem; + VkResult result; + @@ -62,10 +53,6 @@ + return VK_SUCCESS; + } + -+ /* We support exactly one memory heap. */ -+ assert(pAllocateInfo->memoryTypeIndex == 0 || -+ (!device->info.has_llc && pAllocateInfo->memoryTypeIndex < 2)); -+ + mem = vk_alloc2(&device->alloc, pAllocator, sizeof(*mem), 8, + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + if (mem == NULL) @@ -78,7 +65,8 @@ + if (result != VK_SUCCESS) + goto fail; + -+ mem->type_index = pAllocateInfo->memoryTypeIndex; ++ assert(pAllocateInfo->memoryTypeIndex < pdevice->memory.type_count); ++ mem->type = &pdevice->memory.types[pAllocateInfo->memoryTypeIndex]; + + *pMem = anv_device_memory_to_handle(mem); + @@ -167,7 +155,7 @@ result = anv_AllocateMemory(anv_device_to_handle(device), &(VkMemoryAllocateInfo) { .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, -@@ -199,18 +228,26 @@ x11_anv_wsi_image_create(VkDevice device +@@ -199,19 +228,27 @@ x11_anv_wsi_image_create(VkDevice device }, NULL /* XXX: pAllocator */, &memory_h); @@ -181,11 +169,12 @@ - * know we're writing to them and synchronize uses on other rings (eg if - * the display server uses the blitter ring). - */ +- memory->bo.flags &= ~EXEC_OBJECT_ASYNC; - memory->bo.flags |= EXEC_OBJECT_WRITE; + if (import_fd) { -+ // Do we need to do more of what anv_BindImageMemory() does here? -+ image->bo = &memory->bo; -+ image->offset = 0; ++ // Do we need to do more of what anv_BindImageMemory() does here? ++ image->bo = &memory->bo; ++ image->offset = 0; + } + else { + anv_BindImageMemory(device_h, image_h, memory_h, 0); @@ -195,12 +184,13 @@ + * know we're writing to them and synchronize uses on other rings (eg if + * the display server uses the blitter ring). + */ ++ memory->bo.flags &= ~EXEC_OBJECT_ASYNC; + memory->bo.flags |= EXEC_OBJECT_WRITE; + } struct anv_surface *surface = &image->color_surface; assert(surface->isl.tiling == ISL_TILING_X); -@@ -225,13 +262,18 @@ x11_anv_wsi_image_create(VkDevice device +@@ -226,13 +263,18 @@ x11_anv_wsi_image_create(VkDevice device goto fail_alloc_memory; } @@ -225,7 +215,7 @@ *image_p = image_h; *memory_p = memory_h; -@@ -250,12 +292,14 @@ fail_create_image: +@@ -251,12 +293,14 @@ fail_create_image: static void x11_anv_wsi_image_free(VkDevice device, const VkAllocationCallbacks* pAllocator, @@ -956,7 +946,7 @@ +#endif --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c -@@ -654,6 +654,7 @@ wsi_wl_image_init(struct wsi_wl_swapchai +@@ -677,6 +677,7 @@ wsi_wl_image_init(struct wsi_wl_swapchai pAllocator, false, false, @@ -964,7 +954,7 @@ &image->image, &image->memory, &size, -@@ -683,7 +684,7 @@ wsi_wl_image_init(struct wsi_wl_swapchai +@@ -704,7 +705,7 @@ wsi_wl_image_init(struct wsi_wl_swapchai return VK_SUCCESS; fail_image: @@ -973,15 +963,15 @@ image->image, image->memory); return result; -@@ -697,7 +698,7 @@ wsi_wl_swapchain_destroy(struct wsi_swap - +@@ -719,7 +720,7 @@ wsi_wl_swapchain_destroy(struct wsi_swap for (uint32_t i = 0; i < chain->base.image_count; i++) { - if (chain->images[i].buffer) + if (chain->images[i].buffer) { + wl_buffer_destroy(chain->images[i].buffer); - chain->base.image_fns->free_wsi_image(chain->base.device, pAllocator, + chain->base.image_fns->free_wsi_image(chain->base.device, pAllocator, false, chain->images[i].image, chain->images[i].memory); - } + } --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -939,6 +939,7 @@ x11_image_init(VkDevice device_h, struct @@ -1049,7 +1039,7 @@ --- a/src/intel/Makefile.vulkan.am +++ b/src/intel/Makefile.vulkan.am -@@ -136,6 +137,17 @@ VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_F +@@ -149,6 +149,17 @@ VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_F VULKAN_LIB_DEPS += $(WAYLAND_LIBS) endif @@ -1069,7 +1059,7 @@ vulkan_libvulkan_common_la_CFLAGS = $(VULKAN_CFLAGS) --- a/src/vulkan/Makefile.am +++ b/src/vulkan/Makefile.am -@@ -75,4 +75,16 @@ VULKAN_LIB_DEPS += \ +@@ -74,4 +74,16 @@ VULKAN_LIB_DEPS += \ $(WAYLAND_LIBS) endif commit 96c85d0a4c55fad62b139e424b6db17daa3984a6 Author: Timo Aaltonen <tjaal...@debian.org> Date: Wed Jun 7 10:32:22 2017 +0300 release to experimental diff --git a/debian/changelog b/debian/changelog index 53fa59b..5297f1f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,11 @@ -mesa (17.1.2-1) UNRELEASED; urgency=medium +mesa (17.1.2-1) experimental; urgency=medium * New upstream release. * Update d/upstream/signing-key.asc with key from Juan A. Suarez Romero. * README.source: Add documentation about how to update d/u/signing- key.asc. - -- Timo Aaltonen <tjaal...@debian.org> Tue, 06 Jun 2017 11:52:09 +0300 + -- Timo Aaltonen <tjaal...@debian.org> Wed, 07 Jun 2017 10:32:08 +0300 mesa (17.1.0-1) experimental; urgency=medium commit e6893b20c21d673937921c18fc34045c1953e037 Author: Timo Aaltonen <tjaal...@debian.org> Date: Wed Jun 7 09:44:34 2017 +0300 README.source: Add documentation about how to update d/u/signing- key.asc. diff --git a/debian/README.source b/debian/README.source index 85ab8b3..091789b 100644 --- a/debian/README.source +++ b/debian/README.source @@ -39,3 +39,9 @@ are involved: * Otherwise, the patch is added to debian/patches/ which is managed with quilt as documented in /usr/share/doc/quilt/README.source. Thus, the patching system requires a build dependency on quilt. + +Updating debian/upstream/signing-key.asc with new keys requires the following steps: +* fetch the key: + gpg [--keyserver $server] --recv-keys $keyid +* export it to the file: + gpg --export-options export-minimal --export -a $keyid >> debian/upstream/signing-key.asc diff --git a/debian/changelog b/debian/changelog index 7146220..53fa59b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ mesa (17.1.2-1) UNRELEASED; urgency=medium * New upstream release. * Update d/upstream/signing-key.asc with key from Juan A. Suarez Romero. + * README.source: Add documentation about how to update d/u/signing- + key.asc. -- Timo Aaltonen <tjaal...@debian.org> Tue, 06 Jun 2017 11:52:09 +0300 commit f2878f1c77ba932e0ba0d51a3625c339d74b96a5 Author: Timo Aaltonen <tjaal...@debian.org> Date: Wed Jun 7 09:39:24 2017 +0300 Update d/upstream/signing-key.asc with key from Juan A. Suarez Romero. diff --git a/debian/changelog b/debian/changelog index e48498b..7146220 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mesa (17.1.2-1) UNRELEASED; urgency=medium + + * New upstream release. + * Update d/upstream/signing-key.asc with key from Juan A. Suarez Romero. + + -- Timo Aaltonen <tjaal...@debian.org> Tue, 06 Jun 2017 11:52:09 +0300 + mesa (17.1.0-1) experimental; urgency=medium * New upstream release. diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc index 797c071..a425745 100644 --- a/debian/upstream/signing-key.asc +++ b/debian/upstream/signing-key.asc @@ -692,3 +692,583 @@ OLtkGL9E+0n7qvCcp0yjw5d3DdCrCnhHtsGCJyMpRJVkNdpRyAEk17Sbt8g36TSV yc3LzJA+b6/cPamySsetyO6jSkApaLbAOl99 =FK/k -----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mI4EU55zrQEEALwTUVZuY6cxd1MUVydvgefcFhlbrG4bhkIt820llf/RwvyurXUS +wyMxVKSNTcF/kEbDqeo8rlk2a3/EZ+aaznV5LWuFxfQ9F8rq9zp7SJM/eH9ArVh0 +cH2NTar2IBljMpaFOZzNDNGjQjamkC7bH4Yg/JLA7HF33tnkgjHC393PACCJJVZD +iQE3BCABAgChBQJXsqAymh0CVGhpcyBrZXkgd2FzIGdlbmVyYXRlZCBhcyBwYXJ0 +IG9mIHRoZSBFdmlsMzIgcHJvamVjdC4KSXQgaXMgbm90IG93bmVkIGJ5IHRoZSB1 +c2VyIGRlc2NyaWJlZCBpbiB0aGUgVUlELgpTZWUgaHR0cHM6Ly9ldmlsMzIuY29t +L3Jldm9rZWQgZm9yIG1vcmUgZGV0YWlscy4ACgkQSmWNK9fXCJXt9AP+Io8NDdE6 +H8NqT13u5+aXUM+Ynac5zthCwzxc+LpsbjNhDQWKcVX8o/cR54ouitoa0a6qkMYx +cs+XNeeQe95YG/jOQVpz7crO6165ATfBgBZaCPfzgVTQa129Wq8TE8K3sXevbS60 +Wshm+gw+2HPLagygtUTXvGcO7gjgzsPAnwS0QEp1YW4gQW50b25pbyBTdcOhcmV6 +IFJvbWVybyAoSWdhbGlhLCBTLkwuKSA8amFzdWFyZXpAaWdhbGlhLmNvbT6IuAQT +AQIAIgUCU+A6bQIbLwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQSmWNK9fX +CJV2MQP9FJNTuuxcg5d6jww+/hTxdP5lM4EGizGHjWUxnEdImHtBTJ9H8PykngkR +tannjRrZ42idcT1xc+tFtTHIpVWRt+kk/ohQJQurop9U2Z2AlRsrtZiKrCDUW8NS +KyGWRjHz5giqiWIrf0sdEye/6goY4D4CQJOBiN6w89W2v1piDQiZAaIERaTL5REE +ANJJYsXfDU1eGN1nfXUEdXo3aKun8Gelf676U4z2TOWrXkO2ykkwucjOkWDKYqTt +UqELe4Kv6vblRWDI7fFoQWF3FiPQcswrSUK1Y8gNQ/Uh0/0H3Z+5zsUoMA7svWzO +BiaHai0dKDqjc9COoXkQDYpCJJNlm8PqlG9q3NOXA0GbAKDfKJcMpE7XuiIs8dOP +ERLjk5d3NQP+KRu+yM3FYReVnEv132gI3rUhb9j/hpZKh4vl66ur9iqohMXdM6Mr +zVVtrh2h1gdAwja3p2PXkQK+nP986rMdWyit/ohahTMPdMOyeuHFxsHQcj/eqFQe +IOcpUYc1pOKD0iNviw6j1TE2l+Hjy1IcQnJIbhqarRdMfloAMicc8fQD/Rbo/wzy +84bK/VeVBLjCtFiD7LkykfLH5PrZPZvu6EpwGEiucbKsFgJkN+c6l5zQnpMMTzWt +JSDEynHWTbIQJG7bhmVmkRlUD0kUaeWm++H20XXqfpM0ZsRJpLWPcq7inoHqM5s7 +n6x11QNLehRAG9qyyuc6Ddzl/lv9N+2GPVrAtCtKdWFuIEEuIFN1YXJleiBSb21l +cm8gPGphc3VhcmV6QGlnYWxpYS5jb20+iGAEExECACACGwMGCwkIBwMCBBUCCAME +FgIDAQIeAQIXgAUCVS5C2QAKCRDh7L4H19cIlWBhAKCefTZLx2JxrnMwBvTElR31 +BuADYACfecvJt9jqe8f79GNMXJ5lPKldgwW0QEp1YW4gQW50b25pbyBTdcOhcmV6 +IFJvbWVybyAoSWdhbGlhLCBTLkwuKSA8amFzdWFyZXpAaWdhbGlhLmNvbT6IYQQT +EQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAIZAQUCVS5C0gAKCRDh7L4H19cI +lXPjAKDNvtFHTWy/4Tp0gI0MZ044SGxi1wCfWEnrsjVa7R2UC/KY60kWmfAgeMvR +x3vHeQEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgG +BgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx +NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABzAJoDASIA +AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgED +AwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jy +ggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 +dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJ +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 +0ctby1kBEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAI +BgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSww +MTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAlgCWAwEi +AAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIB +AwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi +coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 +dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfI +ycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEA +AAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS +QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD +REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZ +mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz +9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKACiitbw/4cv/El61vZCNFQZknmYrHH +6ZODycYA/oCQAZNT2Vlc6jeRWlpC01xK21EXqf8AAdye1ew6b8LdAs0DX002oy4I +b5jHH14IC8jjj7xHX8OkF1o+iWzx25srOItl4oSqZPqVXqeB+VVy9yOfsecaH8LZ +Zn8zW7s28QA/c24y+SDwWI2rg46bs8/Wu7v/AA/pdroEsNhZQWzKoKskQydoIBJ6 +k4Zhk88n1NZGp+PCd0enfKuMb2XJNc5NrWpTOZZLt5B0OT0/Ci6QKLerMi60vz5W +32xDMP4kIY/1qD+x4TgiFdx45P8AStG+vblsb5yX9z1FVApOGBIB9Tk5rM1KD6RB +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 +XtdcARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklGAAEBAAABAAEAAP/bAEMACAYG +BwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0 +NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAMgAvgMBIgAC +EQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMD +AgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKC +CQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2 +d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK +0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAA +AAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFR +B2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RF +RkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqi +o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T1 +9vf4+fr/2gAMAwEAAhEDEQA/APn+iiigAorQ0bQ9U8Q6ilhpFhPe3TYOyFM7QSBu +Y9FXJGWOAM8mvZfDn7OkrW0d74r1lbNAC8traAFkXZn5pW+VSGznCsMDhucgA8Kr +cg8F+Krq3iuLfw1rM0EqB45I7CVldSMgghcEEc5r6i0vwx4C+HIFzZWMTahGqIZp +H864J2kFhuPyEhjnaFBzjHQVHqfxAkvLO5trOzkh81GRLjzcFAeM8YIbHoeD61lO +tTh8TNI0py2R8yHwL4vAyfCuuAf9g6X/AOJpv/CE+LMZ/wCEY1r/AMAJf/ia+i4f +EevSsnnavCqn7xMcZP8AKn3GuyyR+XdeItoDZBiKRE/iv8q5p5hRjobRwlRnzj/w +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