Many vulkan tests regressed due to: cbea91eb57a501bebb1ca256a4ba7d15cb91c511 Author: Francisco Jerez <currojerez@riseup.net> intel/fs: Remove nasty open-coded CHV/BXT 64-bit workarounds. --------------------------------------------------------------- Failures: dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_int_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_int_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec4_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uint_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uint_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec4_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_int_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_int_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec4_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uint_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uint_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec4_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_int_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_int_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_ivec4_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uint_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uint_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec2_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec2_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec3_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec3_vertex_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec4_geometry_framebuffer dEQP-VK.subgroups.arithmetic.subgroupmul_uvec4_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_int_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_int_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec2_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec2_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec3_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec3_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec4_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec4_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uint_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uint_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec2_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec2_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec3_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec3_vertex_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec4_geometry_framebuffer dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec4_vertex_framebuffer eg: dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec2_geometry_framebuffer Standard Output: 6 / 1023 values passed ---------------------------------------------------------------------- Crashing tests: dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_int_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_int_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_ivec4_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uint_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uint_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_uvec4_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_int_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_int_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec2_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec2_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec3_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec3_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec4_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_ivec4_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uint_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uint_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec2_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec3_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec4_compute dEQP-VK.subgroups.arithmetic.subgroupinclusivemul_uvec4_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_int_compute dEQP-VK.subgroups.arithmetic.subgroupmul_int_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_ivec2_compute dEQP-VK.subgroups.arithmetic.subgroupmul_ivec2_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_ivec3_compute dEQP-VK.subgroups.arithmetic.subgroupmul_ivec3_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_ivec4_compute dEQP-VK.subgroups.arithmetic.subgroupmul_ivec4_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_uint_compute dEQP-VK.subgroups.arithmetic.subgroupmul_uint_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_uvec2_compute dEQP-VK.subgroups.arithmetic.subgroupmul_uvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_uvec3_compute dEQP-VK.subgroups.arithmetic.subgroupmul_uvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupmul_uvec4_compute dEQP-VK.subgroups.arithmetic.subgroupmul_uvec4_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_int_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_int_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec2_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec2_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec3_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec3_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec4_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_ivec4_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_uint_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_uint_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec2_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec2_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec3_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec3_graphic dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec4_compute dEQP-VK.subgroups.clustered.subgroupclusteredmul_uvec4_graphic eg: deqp-vk: ../src/intel/compiler/brw_fs_generator.cpp:2496: int fs_generator::generate_code(const cfg_t*, int): Assertion `validated' failed. ------------------------------------------------------------------ The following assertions bisected to: efa4e4bc5fc39cccc6d7103e9f15b795de3ee07c Author: Francisco Jerez <currojerez@riseup.net> intel/fs: Introduce regioning lowering pass. This legalization pass is meant to handle situations where the source or destination regioning controls of an instruction are unsupported by the hardware and need to be lowered away into separate instructions. This should be more reliable and future-proof than the current approach of handling CHV/BXT restrictions manually all over the visitor. The same mechanism is leveraged to lower unsupported type conversions easily, which obsoletes the lower_conversions pass. v2: Give conditional modifiers the same treatment as predicates for SEL instructions in lower_dst_modifiers() (Iago). Special-case a couple of other instructions with inconsistent conditional mod semantics in lower_dst_modifiers() (Curro). dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_double_compute dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_double_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusiveadd_dvec4_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_double_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_double_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemax_dvec4_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_double_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_double_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemin_dvec4_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_double_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_double_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec2_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec2_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec3_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec3_graphic dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec4_compute dEQP-VK.subgroups.arithmetic.subgroupexclusivemul_dvec4_graphic dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_double_compute dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_double_graphic dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec2_compute dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec2_graphic dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec3_compute dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec3_graphic dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec4_compute dEQP-VK.subgroups.quad.subgroupquadswapdiagonal_dvec4_graphic dEQP-VK.subgroups.quad.subgroupquadswapvertical_double_compute dEQP-VK.subgroups.quad.subgroupquadswapvertical_double_graphic dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec2_compute dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec2_graphic dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec3_compute dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec3_graphic dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec4_compute dEQP-VK.subgroups.quad.subgroupquadswapvertical_dvec4_graphic eg: deqp-vk: ../src/intel/compiler/brw_fs_generator.cpp:2496: int fs_generator::generate_code(const cfg_t*, int): Assertion `validated' failed. Because these regressions occurred on atom platforms, i965 Mesa CI did not provide pre-merge warning to the developer.
I see what's going on. Apparently the SHUFFLE virtual instruction used by Vulkan 1.1 subgroups operations doesn't behave correctly when its sources are aligned in a way that complies with the CHV/BXT restrictions for double-precision datatypes, and it's going to have to be special-cased in the regioning lowering pass. Mark, is there some way I can force the CI to run on these "slow" platforms when I foresee potential regressions, so this doesn't happen again in the future?
You can re-execute your CI build with type "daily" to target atom systems.
The problem should be fixed by this series: https://lists.freedesktop.org/archives/mesa-dev/2019-January/213802.html Thanks for reporting!
Should be fixed in master now.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.