Bug 102710

Summary: vkCmdBlitImage with arrayLayers > 1 fails
Product: Mesa Reporter: maister
Component: Drivers/Vulkan/radeonAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: 17.2   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Hack patch

Description maister 2017-09-13 18:50:00 UTC
vkCmdBlitImage with number of layers > 1 seems to fail. The workaround is to do N individual vkCmdBlitImages.
Comment 1 Bas Nieuwenhuizen 2017-09-13 19:27:20 UTC
Do you have a testcase?

Could you also tell a bit more about what you do and what happens? Do you use VK_REMAINING_ARRAY_LAYERS? Is the result only the first layer being written to, all layers containing layer 0 of the src, or some other recognizable pattern?
Comment 2 maister 2017-09-15 20:38:27 UTC
Here's the workaround I apply. N is not REMAINING_ARRAY_LAYERS.

https://github.com/Themaister/Granite/blob/master/vulkan/command_buffer.cpp#L289

Only the first layer seems to be blitted.
Comment 3 maister 2017-09-15 21:21:36 UTC
Created attachment 134269 [details] [review]
Hack patch
Comment 4 maister 2017-09-15 21:23:31 UTC
The implementation is clearly wrong. Image views are setup incorrectly for 2D arrays. The hack patch fixes the issue, but it's probably broken for other cases.
Comment 5 maister 2017-09-15 21:27:49 UTC
This is clearly missing conformance coverage: https://github.com/KhronosGroup/VK-GL-CTS/issues/50

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.