godotengine / godotengine/godot
RAW Hazard Validation Error in FastNoiseLite
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
- master
### System information
Godot v4.5.beta (c89f5cd7d) - Ubuntu 24.04.2 LTS 24.04 on X11 - X11 display driver, Multi-window, 2 monitors - Vulkan (Mobile) - dedicated AMD Radeon RX 6800 XT (RADV NAVI21) - AMD Ryzen 9 5900X 12-Core Processor (24 threads) - 31.26 GiB memory
### Issue description
Using FastNoiseLite may result in visible glitchy artifacts on screen. The validation is correct that there is a Read after Write (RAW) hazard.
### Steps to reproduce
1. Turn on Vulkan Layer Hazard validation in vkconfig
2. Open MRP with `--gpu-validation`
3. Go to WorldEnvironment
4. Go to Environment -> Sky -> ShaderMaterial -> Shader Parameters
5. From there Clouds Sampler -> Noise -> FastNoiseLite
6. Change the Noise type from Simplex to Simplex Smooth back and forth (see attached picture on where to go to, much easier to see it there).
```
SYNC-HAZARD-READ-AFTER-WRITE(ERROR / SPEC): msgNum: -455515022 - Validation Error: [ SYNC-HAZARD-READ-AFTER-WRITE ] Object 0: handle = 0x483d000000483d, name = RID:1008093248888260 View, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0xe4d96472 | vkCmdDraw: Hazard READ_AFTER_WRITE for VkImageView 0x483d000000483d[RID:1008093248888260 View], in VkCommandBuffer 0x59b846314e50[], and VkPipeline 0x420b000000420b[RID:996733060382780], VkDescriptorSet 0x483e000000483e[RID:1008101838815309], type: VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #1, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: SYNC_VERTEX_SHADER_UNIFORM_READ|SYNC_FRAGMENT_SHADER_COLOR_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_UNIFORM_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE|SYNC_COMPUTE_SHADER_UNIFORM_READ|SYNC_COPY_TRANSFER_WRITE|SYNC_RESOLVE_TRANSFER_WRITE|SYNC_BLIT_TRANSFER_WRITE|SYNC_CLEAR_TRANSFER_WRITE|SYNC_SUBPASS_SHADER_HUAWEI_INPUT_ATTACHMENT_READ, command: vkCmdPipelineBarrier, seq_no: 1, reset_no: 198).
Objects: 1
[0] 0x483d000000483d, type: 14, name: RID:1008093248888260 View
ERROR: VALIDATION - Message Id Number: -455515022 | Message Id Name: SYNC-HAZARD-READ-AFTER-WRITE
Validation Error: [ SYNC-HAZARD-READ-AFTER-WRITE ] Object 0: handle = 0x483d000000483d, name = RID:1008093248888260 View, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0xe4d96472 | vkCmdDraw: Hazard READ_AFTER_WRITE for VkImageView 0x483d000000483d[RID:1008093248888260 View], in VkCommandBuffer 0x59b846314e50[], and VkPipeline 0x420b000000420b[RID:996733060382780], VkDescriptorSet 0x483e000000483e[RID:1008101838815309], type: VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #1, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: SYNC_VERTEX_SHADER_UNIFORM_READ|SYNC_FRAGMENT_SHADER_COLOR_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_UNIFORM_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE|SYNC_COMPUTE_SHADER_UNIFORM_READ|SYNC_COPY_TRANSFER_WRITE|SYNC_RESOLVE_TRANSFER_WRITE|SYNC_BLIT_TRANSFER_WRITE|SYNC_CLEAR_TRANSFER_WRITE|SYNC_SUBPASS_SHADER_HUAWEI_INPUT_ATTACHMENT_READ, command: vkCmdPipelineBarrier, seq_no: 1, reset_no: 198).
Objects - 1
Object[0] - VK_OBJECT_TYPE_IMAGE_VIEW, Handle 20333268532480061, Name "RID:1008093248888260 View"
at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:642)
SYNC-HAZARD-READ-AFTER-WRITE(ERROR / SPEC): msgNum: -455515022 - Validation Error: [ SYNC-HAZARD-READ-AFTER-WRITE ] Object 0: handle = 0x483d000000483d, name = RID:1008093248888260 View, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0xe4d96472 | vkCmdDraw: Hazard READ_AFTER_WRITE for VkImageView 0x483d000000483d[RID:1008093248888260 View], in VkCommandBuffer 0x59b846314e50[], and VkPipeline 0x420b000000420b[RID:996733060382780], VkDescriptorSet 0x483e000000483e[RID:1008101838815309], type: VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #1, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: SYNC_VERTEX_SHADER_UNIFORM_READ|SYNC_FRAGMENT_SHADER_COLOR_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_UNIFORM_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE|SYNC_COMPUTE_SHADER_UNIFORM_READ|SYNC_COPY_TRANSFER_WRITE|SYNC_RESOLVE_TRANSFER_WRITE|SYNC_BLIT_TRANSFER_WRITE|SYNC_CLEAR_TRANSFER_WRITE|SYNC_SUBPASS_SHADER_HUAWEI_INPUT_ATTACHMENT_READ, command: vkCmdPipelineBarrier, seq_no: 1, reset_no: 198).
Objects: 1
[0] 0x483d000000483d, type: 14, name: RID:1008093248888260 View
ERROR: VALIDATION - Message Id Number: -455515022 | Message Id Name: SYNC-HAZARD-READ-AFTER-WRITE
Validation Error: [ SYNC-HAZARD-READ-AFTER-WRITE ] Object 0: handle = 0x483d000000483d, name = RID:1008093248888260 View, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0xe4d96472 | vkCmdDraw: Hazard READ_AFTER_WRITE for VkImageView 0x483d000000483d[RID:1008093248888260 View], in VkCommandBuffer 0x59b846314e50[], and VkPipeline 0x420b000000420b[RID:996733060382780], VkDescriptorSet 0x483e000000483e[RID:1008101838815309], type: VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #1, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: SYNC_VERTEX_SHADER_UNIFORM_READ|SYNC_FRAGMENT_SHADER_COLOR_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ|SYNC_FRAGMENT_SHADER_UNIFORM_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ|SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ|SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE|SYNC_COMPUTE_SHADER_UNIFORM_READ|SYNC_COPY_TRANSFER_WRITE|SYNC_RESOLVE_TRANSFER_WRITE|SYNC_BLIT_TRANSFER_WRITE|SYNC_CLEAR_TRANSFER_WRITE|SYNC_SUBPASS_SHADER_HUAWEI_INPUT_ATTACHMENT_READ, command: vkCmdPipelineBarrier, seq_no: 1, reset_no: 198).
```

### Minimal reproduction project (MRP)
[AndroidTest.zip](https://github.com/user-attachments/files/21078775/AndroidTest.zip) (note: ignore that it says "Android", the problem is not related to any platform).
Contributor guide
Assessment
This issue has not been assessed yet.