Many thanks to you Jason!
On Wed, Mar 7, 2018 at 11:08 PM, Jason Ekstrand <[email protected]> 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 <[email protected]> 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 [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
