Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VL not reporting when a VkSubpassDependency is needed in a downsampling pass #79

Closed
karl-lunarg opened this issue May 14, 2018 · 13 comments
Assignees
Labels
Incomplete Missing Validation VUs to be added
Milestone

Comments

@karl-lunarg
Copy link
Contributor

Issue by aguaviva (MIGRATED)
Wednesday Apr 18, 2018 at 13:46 GMT
Originally opened as KhronosGroup/Vulkan-LoaderAndValidationLayers#2591


This happened when generating all mipmap chain elements from a specific render target. This requires a series of back to back passes where the COLOR_ATTACHMENT_OPTIMAL of the current pass becomes the SHADER_READ_ONLY_OPTIMAL of the next.

I will update the bug as soon as I can attach a repro case.

@karl-lunarg karl-lunarg added this to the P1 milestone May 14, 2018
@karl-lunarg
Copy link
Contributor Author

Comment by aguaviva (MIGRATED)
Wednesday Apr 18, 2018 at 14:09 GMT


Hi Mark, what is the best way to provide you a repro case (I wouldnt want to make it public right now), if you have a way I can provide you the repro case right now.

@karl-lunarg
Copy link
Contributor Author

Comment by mark-lunarg (MIGRATED)
Wednesday Apr 18, 2018 at 14:11 GMT


@aguaviva, if it it is not too large, you can email it directly to mark@lunarg. If too big for email, I can arrange something on LunarXchange.

@karl-lunarg
Copy link
Contributor Author

Comment by aguaviva (MIGRATED)
Wednesday Apr 18, 2018 at 14:14 GMT


sure, let's use the LunarXchange thing

@karl-lunarg
Copy link
Contributor Author

Comment by mark-lunarg (MIGRATED)
Wednesday Apr 18, 2018 at 17:32 GMT


@aguaviva, to generate the invite, I'll need a valid email address from you. If you're uncomfortable including that here you can email it directly to me.

@karl-lunarg
Copy link
Contributor Author

Comment by mark-lunarg (MIGRATED)
Friday Apr 27, 2018 at 15:47 GMT


For tracking, including some side-band information applicable to the issue:

Raul kindly provided a repro case, I have this squirreled away on LunarShare for anyone that needs/wants it. Accompanying information:

I just uploaded a repro case, it comes with 3 exes.

  • SampleVK_0_subpass.exe, this exe doesn’t use any subpasses and it shows corruption on AMD
  • SampleVK_1_subpass.exe, this exe uses 1 subpass and works fine on AMD but shows corruption on NV
  • SampleVK_2_subpass.exe, this exe uses 2 subpasses and works fine on both AMD and NV

The validation layer doesn’t report any errors at any point. I’d be great if it would because this is a rather tricky bit and I was able to fix it only thanks to the help of a driver engineer.
The corruption happens during a bloom pass, this pass does the following:

  • Downsampling: Generates 5 mip levels of the main rendertarget.
  • Blur: Does a separable blurs to every mip element.
  • Upscaling: Starting from the smallest mip, blends it with the upper mip level using a weight.

All those passes have in common that the Color_attachment_write of one draw becomes a shader_read_texture_read of the next draw.

The corruption also shows up if you disable the upscaling in the UI but leave “Blur Bloom Stages” enabled. That should show corruption in the mip #2 and the rest should be black (although with corruption YMMV)

Please let me know if you need any additional help.
Cheers

@karl-lunarg
Copy link
Contributor Author

Comment by chrisforbes (MIGRATED)
Friday May 04, 2018 at 02:36 GMT


@mark-lunarg can you share how this downsample and blur are being achieved in terms of renderpass/subpass structure? This is tripping my spidey-sense.

@karl-lunarg
Copy link
Contributor Author

Comment by aguaviva (MIGRATED)
Friday May 04, 2018 at 15:20 GMT


I just sent you in a private email the source code that causes the issue.

@karl-lunarg
Copy link
Contributor Author

Comment by chrisforbes (MIGRATED)
Wednesday May 09, 2018 at 16:51 GMT


@aguaviva if that was directed at me, the mail didn't show up...

@karl-lunarg
Copy link
Contributor Author

Comment by mark-lunarg (MIGRATED)
Wednesday May 09, 2018 at 17:27 GMT


@chrisforbes, I have the email. If @aguaviva says it's OK I will forward it, or he can resend it to you. Either way, I am swamped for the next week or so (sorry!).

@aguaviva
Copy link

Hi Karl, yes you can share the email with Google. Thanks!

@mark-lunarg
Copy link
Contributor

@aguaviva, I have shared the email with @chrisforbes. Thanks!

@aguaviva
Copy link

Thanks! @chrisforbes feel free to ask me any questions by email, I'll be happy to help.

@mark-lunarg
Copy link
Contributor

Moved to the synchronization tracking issue, #72.

@shannon-lunarg shannon-lunarg modified the milestones: P1, sdk-1.2.135.0 Apr 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Incomplete Missing Validation VUs to be added
Projects
None yet
Development

No branches or pull requests

5 participants