godotengine / godotengine/godot

RAW Hazard Validation Error in FastNoiseLite

Open
#108,317 1 comment 0 reactions 0 assignees View on GitHub
bug topic:core
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).
```

![Image](https://github.com/user-attachments/assets/286e02a8-a474-44b1-a117-a76cc6cb0fed)

### 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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.