Bug 103633 - [ANV bisected] ASTROKILL broken since commit a62a97933578a813beb0d27cc8e404850f7fd302 on Haswell
Summary: [ANV bisected] ASTROKILL broken since commit a62a97933578a813beb0d27cc8e40485...
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Vulkan/intel (show other bugs)
Version: 17.3
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel 3D Bugs Mailing List
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: mesa-17.3
  Show dependency treegraph
 
Reported: 2017-11-09 02:27 UTC by Darius Spitznagel
Modified: 2017-11-10 16:03 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Darius Spitznagel 2017-11-09 02:27:44 UTC
Hello Intel Mesa team,

the Vulkan version which was introduced in version 0.9.2.1 of ASTROKILL is broken since commit...

a62a97933578a813beb0d27cc8e404850f7fd302 is the first bad commit
commit a62a97933578a813beb0d27cc8e404850f7fd302
Author: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Date:   Wed Jul 19 12:14:19 2017 +0100

    anv: enable multiple planes per image/imageView
    
    This change introduce the concept of planes for image & views. It
    matches the planes available in new formats.
    
    We also refactor depth & stencil support through the usage of planes
    for the sake of uniformity. In the backend (genX_cmd_buffer.c) we have
    to take some care though with regard to auxilliary surfaces.
    Multiplanar color buffers can have multiple auxilliary surfaces but
    depth & stencil share the same HiZ one (only store in the depth
    plane).
    
    v2: by Jason
        Remove unused aspect parameters from anv_blorp.c
        Assert when attempting to resolve YUV images
        Drop redundant logic for plane offset in make_surface()
        Rework anv_foreach_plane_aspect_bit()
    
    Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>

:040000 040000 5c821253770eb5cd901f12f586c7ccb3831efa19 4f8c726f9f95fb5b24710ed06b8cfcd0c2e6c82c M	src

Colors are wrong (bright instead of dark) and buttons in menu flicker and disappear.
Comment 1 Darius Spitznagel 2017-11-09 02:30:31 UTC
My Specs:
iGPU Haswell Iris Pro 5200
Kernel 4.9.60
Vulkan 1.0.61.1
Xorg 1.19.5
Comment 2 Lionel Landwerlin 2017-11-10 16:01:28 UTC
Looking into this problem, it seems Astrokill is using the wrong image usage flags when creating an image view for a depth/stencil image.
There is a validation error raise when using the debug layer core_validation :

DS(ERROR): object: 0x891afe8 type: 23 location: 1125 msgCode: 364905100: vkUpdateDescriptorsSets() failed write update validation for Descriptor Set 0x891afe8 with error: Write update to descriptor in set 0x891afe8 binding #0 failed with error message: Attempted write update to combined image sampler descriptor failed due to: ImageView (0x7f23b0224470) with usage mask 0x35 being used for a descriptor update of type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER does not have VK_IMAGE_USAGE_SAMPLED_BIT set.. The spec valid usage text states 'If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView and imageLayout members of each element of pImageInfo must be a valid VkImageView and VkImageLayout, respectively' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkWriteDescriptorSet-descriptorType-00326)


In debug build our driver asserts but in release mode we just carry one silently and we just put wrong data into the hardware binding table (problem explaining the corruption you're seeing).
Comment 3 Lionel Landwerlin 2017-11-10 16:03:06 UTC
Closing for now, feel free to reopen if you still have an issue after fixing Astrokill.


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.