Thanks for the kind words Jason, this is a superb achievement and we are very proud to had the chance to work on this with you! Iago On Wed, 2018-03-07 at 15:08 -0800, Jason Ekstrand wrote: > Hi all, > > I just wanted to give a shout out and a huge "Thank You!" to all of > the people who made this release possible. There were a large number > of features packed into the 1.1 release and implementing it all was a > hugely collaborative effort. > > I want to specially thank our friends at Igalia. They implemented > the VK_KHR_16bit_storage extension which was initially 45 patches > which ended up going through multiple review cycles and getting > expanded a bit. Less visibly, however, they've also been hard at > work on the CTS. They've implemented quite a few tests for things > such as VK_KHR_16bit_storage, VK_KHR_image_format_list, and others > I've forgotten about. They also kept on top of the CTS as new tests > were being developed and did most of the triage and bug fixing work > in anv. I seriously don't know what we would have done without > them. I think it's fair to say that, while we may have managed a > skeleton 1.1 implementation, we wouldn't have been able to ship a > full-featured 1.1 without them! Also, I probably would have gone > insane. > > I also want to thank Lionel Landwerlin on my team. He implemented a > bunch of the smaller features as well as > VK_KHR_sampler_ycbcr_conversion. He also did a large amount of code > review. > > Finally, I want to thank everyone else who was involved in helping > with the 1.1 effort in any way. We in Linux graphics have an awesome > community and I don't know what we'd do without you all. I tried to > include everyone I can think of who helped with the 1.1 effort in the > Cc. I'm sorry if I missed anyone. > > Thanks for all your help and hard work, > > --Jason Ekstrand > > > > On Wed, Mar 7, 2018 at 6:34 AM, Jason Ekstrand <ja...@jlekstrand.net> > wrote: > > This patch series adds full support for Vulkan 1.1 to the Intel > > Linux > > > > Vulkan driver. As with the initial Vulkan 1.0 drop two years ago, > > this > > > > driver is 100% Vulkan 1.1 conformant on all shipping Intel hardware > > gen8 > > > > and above. Unlike our initial Vulkan 1.0 drop two years ago which > > was > > > > missing piles of features, the Vulkan 1.1 implementation is nearly > > feature- > > > > complete. With the exception of 16-bit shader I/O (we have patches > > but > > > > they are awaiting better testing), every optional feature which was > > added > > > > to core in Vulkan 1.1 and which can reasonably be reasonably > > supported by > > > > shipping hardware has been implemented. > > > > > > > > The only significant feature implemented by this series is > > subgroups. It > > > > is part of Vulkan 1.1 core but there is no corresponding Vulkan > > extension. > > > > All of the other significant features in Vulkan 1.1 have already > > been > > > > ratified and released as extension and we have already landed > > support for > > > > them. > > > > > > > > In order to actually advertise support for Vulkan 1.1, we must be > > able to > > > > advertise VK_KHR_external_fence which requires the SYNCOBJ_WAIT > > ioctl which > > > > landed in Linux 4.14. Users may need to update their kernel before > > they > > > > will get full 1.1 support. > > > > > > > > There are also quite a few patches in here to the entrypoints > > generator > > > > and some of the other generators to handle various things required > > for > > > > reporting a Vulkan version higher than 1.0. In particular, we need > > to > > > > handle name aliasing for entrypoints and enums. > > > > > > > > All of the patches in this series have already been reviewed by > > people at > > > > Intel or Igalia. Unless there are any complaints, I plan to land > > the > > > > patches this afternoon. Dave and Bas also have some 1.1 patches > > and we're > > > > going to have to work together to land them so that neither driver > > breaks > > > > when we land the 1.1 XML. > > > > > > > > > > > > Iago Toral Quiroga (2): > > > > anv/device: GetDeviceQueue2 should only return queues with > > matching > > > > flags > > > > anv/device: fail to initialize device if we have queues with > > > > unsupported flags > > > > > > > > Jason Ekstrand (54): > > > > spirv: Add a vtn_constant_value helper > > > > spirv: Rework barriers > > > > vulkan: Rename multiview from KHX to KHR > > > > anv/entrypoints: Generalize the string map a bit > > > > anv/entrypoints_gen: A bit of refactoring > > > > anv/entrypoints_gen: Allow the string map to grow > > > > anv/entrypoints: Add an is_device_entrypoint helper > > > > anv/entrypoints: Allow an entrypoint to require multiple > > extensions > > > > anv/entrypoints_gen: Add support for aliases in the XML > > > > anv/extensions: Add support for multiple API versions > > > > anv/entrypoints: Generate #ifdef guards from platform attributes > > > > vulkan/enum_to_str: Add a add_value_from_xml helper to VkEnum > > > > vulkan/enum_to_str: Add support for aliases and new Vulkan > > versions > > > > vulkan: Update the XML and headers to 1.1.70 > > > > spirv: Update the SPIR-V headers and json to 1.3.1 > > > > anv: Add version 1.1.0 but leave it disabled > > > > Get rid of a bunch of KHR suffixes > > > > anv/entrypoints: Drop support for protect attributes > > > > anv: Support VkPhysicalDeviceShaderDrawParameterFeatures > > > > anv: Implement VK_KHR_maintenance3 > > > > nir/spirv: Add support for device groups > > > > anv: Implement vkCmdDispatchBase > > > > anv: Trivially implement VK_KHR_device_group > > > > anv: Implement GetDeviceQueue2 > > > > anv: Support querying for protected memory > > > > anv: Implement vkEnumerateInstanceVersion > > > > anv: Stop returning VK_ERROR_INCOMPATIBLE_DRIVER > > > > spirv: Handle the new OpModuleProcessed instruction > > > > nir: Add new SPIR-V ballot ALU intrinsics and lowering > > > > compiler: Add two new system values for subgroups > > > > nir: Add new SPIR-V ballot intrinsics and lowering > > > > spirv: Add initial subgroup support > > > > i965/fs: Implement basic SPIR-V subgroup intrinsics > > > > spirv: Add subgroup ballot support > > > > nir: Generalize nir_intrinsic_vote_eq > > > > spirv: Add subgroup vote support > > > > nir/lower_subgroups: Add scalarizing for vote_eq > > > > i965/fs: Support nir_intrinsic_vote_feq > > > > nir: Add subgroup shuffle intrinsics and lowering > > > > spirv: Add subgroup shuffle support > > > > i965/fs: Add support for nir_intrinsic_shuffle > > > > nir: Add quad operations and lowering > > > > spirv: Add subgroup quad support > > > > nir: Add subgroup arithmetic reduction intrinsics > > > > nir: Add a helper for getting binop identities > > > > spirv: Add support for subgroup arithmetic > > > > intel/fs: Add a couple of simple helper opcodes > > > > intel/fs: Add a helper for emitting scan operations > > > > intel/fs: Implement reduce and scan opeprations > > > > intel/fs: Add support for subgroup quad operations > > > > anv: Add support for SPIR-V 1.3 subgroup operations > > > > anv: Enable Vulkan 1.1 > > > > vulkan/util: Add a helper to get a version override > > > > anv: Support version overrides > > > > > > > > docs/envvars.html | 10 + > > > > include/vulkan/vk_platform.h | 28 - > > > > include/vulkan/vulkan.h | 7029 +------ > > ------------- > > > > include/vulkan/vulkan_android.h | 60 + > > > > include/vulkan/vulkan_core.h | 7293 > > +++++++++++++++++++++ > > > > include/vulkan/vulkan_ios.h | 58 + > > > > include/vulkan/vulkan_macos.h | 58 + > > > > include/vulkan/vulkan_mir.h | 65 + > > > > include/vulkan/vulkan_vi.h | 58 + > > > > include/vulkan/vulkan_wayland.h | 65 + > > > > include/vulkan/vulkan_win32.h | 276 + > > > > include/vulkan/vulkan_xcb.h | 66 + > > > > include/vulkan/vulkan_xlib.h | 66 + > > > > include/vulkan/vulkan_xlib_randr.h | 54 + > > > > include/vulkan/vulkan_xlib_xrandr.h | 54 + > > > > src/compiler/Makefile.sources | 1 + > > > > src/compiler/glsl/glsl_to_nir.cpp | 5 +- > > > > src/compiler/nir/meson.build | 1 + > > > > src/compiler/nir/nir.c | 76 + > > > > src/compiler/nir/nir.h | 18 + > > > > src/compiler/nir/nir_intrinsics.h | 62 +- > > > > src/compiler/nir/nir_lower_subgroups.c | 203 +- > > > > src/compiler/nir/nir_lower_system_values.c | 5 + > > > > src/compiler/nir/nir_opt_intrinsics.c | 3 +- > > > > src/compiler/nir/nir_print.c | 5 + > > > > src/compiler/shader_enums.c | 3 + > > > > src/compiler/shader_enums.h | 11 + > > > > src/compiler/shader_info.h | 7 + > > > > src/compiler/spirv/spirv.core.grammar.json | 885 ++- > > > > src/compiler/spirv/spirv.h | 60 +- > > > > src/compiler/spirv/spirv_to_nir.c | 199 +- > > > > src/compiler/spirv/vtn_private.h | 9 + > > > > src/compiler/spirv/vtn_subgroup.c | 379 ++ > > > > src/compiler/spirv/vtn_variables.c | 40 + > > > > src/intel/Makefile.sources | 1 + > > > > src/intel/compiler/brw_compiler.c | 1 + > > > > src/intel/compiler/brw_compiler.h | 11 + > > > > src/intel/compiler/brw_eu_defines.h | 27 + > > > > src/intel/compiler/brw_fs.cpp | 35 + > > > > src/intel/compiler/brw_fs.h | 5 + > > > > src/intel/compiler/brw_fs_builder.h | 141 + > > > > src/intel/compiler/brw_fs_generator.cpp | 171 + > > > > src/intel/compiler/brw_fs_nir.cpp | 272 +- > > > > src/intel/compiler/brw_ir_fs.h | 7 + > > > > src/intel/compiler/brw_nir.c | 4 +- > > > > src/intel/compiler/brw_nir_lower_cs_intrinsics.c | 18 + > > > > src/intel/compiler/brw_reg.h | 8 + > > > > src/intel/compiler/brw_shader.cpp | 9 + > > > > src/intel/vulkan/anv_batch_chain.c | 2 +- > > > > src/intel/vulkan/anv_cmd_buffer.c | 19 +- > > > > src/intel/vulkan/anv_descriptor_set.c | 63 +- > > > > src/intel/vulkan/anv_device.c | 303 +- > > > > src/intel/vulkan/anv_entrypoints_gen.py | 302 +- > > > > src/intel/vulkan/anv_extensions.py | 46 +- > > > > src/intel/vulkan/anv_extensions_gen.py | 26 +- > > > > src/intel/vulkan/anv_formats.c | 174 +- > > > > src/intel/vulkan/anv_image.c | 52 +- > > > > src/intel/vulkan/anv_nir.h | 3 + > > > > src/intel/vulkan/anv_nir_add_base_work_group_id.c | 93 + > > > > src/intel/vulkan/anv_nir_lower_ycbcr_textures.c | 20 +- > > > > src/intel/vulkan/anv_pass.c | 4 +- > > > > src/intel/vulkan/anv_pipeline.c | 9 + > > > > src/intel/vulkan/anv_private.h | 58 +- > > > > src/intel/vulkan/anv_queue.c | 78 +- > > > > src/intel/vulkan/anv_wsi.c | 22 + > > > > src/intel/vulkan/genX_cmd_buffer.c | 59 +- > > > > src/intel/vulkan/genX_pipeline.c | 2 +- > > > > src/intel/vulkan/genX_state.c | 6 +- > > > > src/intel/vulkan/meson.build | 1 + > > > > src/intel/vulkan/vk_format_info.h | 50 +- > > > > src/vulkan/registry/vk.xml | 3400 ++++++--- > > - > > > > src/vulkan/util/gen_enum_to_str.py | 49 +- > > > > src/vulkan/util/vk_util.c | 20 + > > > > src/vulkan/util/vk_util.h | 2 + > > > > 74 files changed, 13667 insertions(+), 9118 deletions(-) > > > > create mode 100644 include/vulkan/vulkan_android.h > > > > create mode 100644 include/vulkan/vulkan_core.h > > > > create mode 100644 include/vulkan/vulkan_ios.h > > > > create mode 100644 include/vulkan/vulkan_macos.h > > > > create mode 100644 include/vulkan/vulkan_mir.h > > > > create mode 100644 include/vulkan/vulkan_vi.h > > > > create mode 100644 include/vulkan/vulkan_wayland.h > > > > create mode 100644 include/vulkan/vulkan_win32.h > > > > create mode 100644 include/vulkan/vulkan_xcb.h > > > > create mode 100644 include/vulkan/vulkan_xlib.h > > > > create mode 100644 include/vulkan/vulkan_xlib_randr.h > > > > create mode 100644 include/vulkan/vulkan_xlib_xrandr.h > > > > create mode 100644 src/compiler/spirv/vtn_subgroup.c > > > > create mode 100644 > > src/intel/vulkan/anv_nir_add_base_work_group_id.c > > > > > > > > -- > > > > 2.5.0.400.gff86faf > > > > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev