diharaw / hybrid-rendering Goto Github PK
View Code? Open in Web Editor NEWA Vulkan sample that demonstrates a Rasterization and Ray Tracing Hybrid Rendering Pipeline.
License: MIT License
A Vulkan sample that demonstrates a Rasterization and Ray Tracing Hybrid Rendering Pipeline.
License: MIT License
I cloned this repository and built the project successfully with VS2019. When I started to run the project, I met the same validation errors as #16 mentioned. Then I uninstalled the latest version of Vulkan SDK and installed the version 1.2.189.2 same with that in readme. However, program still crashed at submit command buffer , the result of vkQueSubmit is VK_ERROR_DEVICE_LOST. I dont know what to do next to solve this problem. Any advice would be grateful !
[ 19:24:42 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-VkGraphicsPipelineCreateInfo-layout-07987 ] Object 0: handle = 0xb6c14b000000060c, type = VK_OBJECT_TYPE_SHADER_MODULE; Object 1: handle = 0xb1d799000000060e, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; | MessageID = 0xfbdd4d2e | vkCreateGraphicsPipelines(): pCreateInfos[0] VK_SHADER_STAGE_VERTEX_BIT has a push constant buffer Block with range [0, 136] which outside the pipeline layout range of [0, 76]. The Vulkan spec states: If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-layout-07987) , FILE : vk.cpp , LINE : 156
[ 19:24:42 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-VkGraphicsPipelineCreateInfo-layout-07987 ] Object 0: handle = 0x68aaa000000060d, type = VK_OBJECT_TYPE_SHADER_MODULE; Object 1: handle = 0xb1d799000000060e, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; | MessageID = 0xfbdd4d2e | vkCreateGraphicsPipelines(): pCreateInfos[0] VK_SHADER_STAGE_FRAGMENT_BIT has a push constant buffer Block with range [0, 140] which outside the pipeline layout range of [0, 76]. The Vulkan spec states: If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-layout-07987) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xdc9b430000000625, name = Shadows Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xbef9ee0000000611, name = Shadows Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xdc9b430000000625[Shadows Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xbef9ee0000000611[Shadows Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xb64738000000065c, name = AO Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xda70bf000000064a, name = AO Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xb64738000000065c[AO Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xda70bf000000064a[AO Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xdc9b430000000625, name = Shadows Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xbef9ee0000000611, name = Shadows Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xdc9b430000000625[Shadows Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xbef9ee0000000611[Shadows Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xb64738000000065c, name = AO Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xda70bf000000064a, name = AO Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xb64738000000065c[AO Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xda70bf000000064a[AO Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xdc9b430000000625, name = Shadows Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xbef9ee0000000611, name = Shadows Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xdc9b430000000625[Shadows Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xbef9ee0000000611[Shadows Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xb64738000000065c, name = AO Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xda70bf000000064a, name = AO Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xb64738000000065c[AO Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xda70bf000000064a[AO Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xdc9b430000000625, name = Shadows Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xbef9ee0000000611, name = Shadows Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xdc9b430000000625[Shadows Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xbef9ee0000000611[Shadows Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdDispatch-mipmapMode-04770 ] Object 0: handle = 0xb64738000000065c, name = AO Ray Trace Read, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0xda6ce50000000156, name = Nearest Sampler, type = VK_OBJECT_TYPE_SAMPLER; Object 2: handle = 0xda70bf000000064a, name = AO Ray Trace, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x3019e15a | vkCmdDispatch: Descriptor set VkDescriptorSet 0xb64738000000065c[AO Ray Trace Read] Sampler (VkSampler 0xda6ce50000000156[Nearest Sampler]) is set to use VK_SAMPLER_MIPMAP_MODE_LINEAR with compareEnable is set to VK_FALSE, but image view's (VkImageView 0xda70bf000000064a[AO Ray Trace]) format (VK_FORMAT_R32_UINT) does not contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in its format features. The Vulkan spec states: If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT (https://vulkan.lunarg.com/doc/view/1.3.250.1/windows/1.3-extensions/vkspec.html#VUID-vkCmdDispatch-mipmapMode-04770) , FILE : vk.cpp , LINE : 156
[ 19:24:43 | FATAL ] : (Vulkan) Failed to submit command buffer! , FILE : vk.cpp , LINE : 3813
Hi,
I am having the following error on when launching the released app
[ 01:19:12 | ERROR ] : Vulkan - Validation : Validation Error: [ VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710 ] Object 0: handle = 0x2651808f510, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x63ff8904 | vkCmdBuildAccelerationStructuresKHR:For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment. The Vulkan spec states: For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710) , FILE : vk.cpp , LINE : 156
Vulkan sdk version 1.3.216.0
Win10
AMD 6900xt
$ make
[ 0%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/context.c.obj
[ 1%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/init.c.obj
[ 1%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/input.c.obj
[ 1%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/monitor.c.obj
[ 2%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/vulkan.c.obj
[ 2%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/window.c.obj
[ 2%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_init.c.obj
[ 3%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_joystick.c.obj
[ 3%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_monitor.c.obj
[ 3%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_time.c.obj
[ 4%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_thread.c.obj
[ 4%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/win32_window.c.obj
[ 4%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/wgl_context.c.obj
[ 5%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/egl_context.c.obj
[ 5%] Building C object external/dwSampleFramework/external/glfw/src/CMakeFiles/glfw.dir/osmesa_context.c.obj
[ 6%] Linking C static library /C/msys64/home/Administrator/hybrid-rendering/lib/libglfw3.a
[ 6%] Built target glfw
[ 7%] Building CXX object external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/Common/Assimp.cpp.obj
[ 7%] Building CXX object external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/CApi/CInterfaceIOWrapper.cpp.obj
[ 7%] Building CXX object external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/Common/BaseImporter.cpp.obj
[ 8%] Building CXX object external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/Common/BaseProcess.cpp.obj
In file included from C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/include/assimp/GenericProperty.h:52,
from C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/BaseProcess.h:46,
from C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/BaseProcess.cpp:44:
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/include/assimp/Importer.hpp:505:16: error: 'exception_ptr' in namespace 'std' does not name a type
505 | const std::exception_ptr& GetException() const;
| ^~~~~~~~~~~~~
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/include/assimp/Importer.hpp:61:1: note: 'std::exception_ptr' is defined in header '<exception>'; did you forget to '#include <exception>'?
60 | #include <assimp/types.h>
+++ |+#include <exception>
61 |
In file included from C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/BaseProcess.cpp:45:
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/Importer.h:104:10: error: 'exception_ptr' in namespace 'std' does not name a type
104 | std::exception_ptr mException;
| ^~~~~~~~~~~~~
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/Importer.h:49:1: note: 'std::exception_ptr' is defined in header '<exception>'; did you forget to '#include <exception>'?
48 | #include <vector>
+++ |+#include <exception>
49 | #include <string>
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/Importer.h: In constructor 'Assimp::ImporterPimpl::ImporterPimpl()':
C:/msys64/home/Administrator/hybrid-rendering/external/dwSampleFramework/external/assimp/code/Common/Importer.h:139:9: error: class 'Assimp::ImporterPimpl' does not have any field named 'mException'
139 | mException(),
| ^~~~~~~~~~
make[2]: *** [external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/build.make:118: external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/Common/BaseProcess.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:224: external/dwSampleFramework/external/assimp/code/CMakeFiles/assimp.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
I guess the external submodules are too old to build with modern C++ compilers?
Hey! I am trying to build this fantastic project on my local machine but encountered some abnormal visuals in the final executable. I am using RTX 3060 laptop graphics card, and the debug log output has been attached below (all setting parameters are used asis):
Attempting to run the Release version on my RX 6800 on Windows using the newest available drivers (21.10.1) fails during the allocation of a descriptor set.
>HybridRendering.exe
********************************************************************************************************
Tue Oct 5 14:32:53 2021
Log Started.
********************************************************************************************************
[ 14:32:53 | INFO ] : Successfully initialized platform! , FILE : application.cpp , LINE : 232
[ 14:32:53 | INFO ] : (Vulkan) Vendor : AMD , FILE : vk.cpp , LINE : 4285
[ 14:32:53 | INFO ] : (Vulkan) Name : AMD Radeon RX 6800 , FILE : vk.cpp , LINE : 4286
[ 14:32:53 | INFO ] : (Vulkan) Type : VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU , FILE : vk.cpp , LINE : 4287
[ 14:32:53 | INFO ] : (Vulkan) Driver : 8388806 , FILE : vk.cpp , LINE : 4288
[ 14:32:53 | INFO ] : (Vulkan) Number of Queue families: 3 , FILE : vk.cpp , LINE : 4325
[ 14:32:53 | INFO ] : (Vulkan) Family 0 , FILE : vk.cpp , LINE : 4334
[ 14:32:53 | INFO ] : (Vulkan) Supported Bits: , FILE : vk.cpp , LINE : 4335
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_GRAPHICS_BIT: 1 , FILE : vk.cpp , LINE : 4336
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_COMPUTE_BIT: 1 , FILE : vk.cpp , LINE : 4337
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_TRANSFER_BIT: 1 , FILE : vk.cpp , LINE : 4338
[ 14:32:53 | INFO ] : (Vulkan) Number of Queues: 1 , FILE : vk.cpp , LINE : 4339
[ 14:32:53 | INFO ] : (Vulkan) Family 1 , FILE : vk.cpp , LINE : 4334
[ 14:32:53 | INFO ] : (Vulkan) Supported Bits: , FILE : vk.cpp , LINE : 4335
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_GRAPHICS_BIT: 0 , FILE : vk.cpp , LINE : 4336
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_COMPUTE_BIT: 1 , FILE : vk.cpp , LINE : 4337
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_TRANSFER_BIT: 1 , FILE : vk.cpp , LINE : 4338
[ 14:32:53 | INFO ] : (Vulkan) Number of Queues: 2 , FILE : vk.cpp , LINE : 4339
[ 14:32:53 | INFO ] : (Vulkan) Family 2 , FILE : vk.cpp , LINE : 4334
[ 14:32:53 | INFO ] : (Vulkan) Supported Bits: , FILE : vk.cpp , LINE : 4335
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_GRAPHICS_BIT: 0 , FILE : vk.cpp , LINE : 4336
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_COMPUTE_BIT: 0 , FILE : vk.cpp , LINE : 4337
[ 14:32:53 | INFO ] : (Vulkan) VK_QUEUE_TRANSFER_BIT: 1 , FILE : vk.cpp , LINE : 4338
[ 14:32:53 | INFO ] : (Vulkan) Number of Queues: 2 , FILE : vk.cpp , LINE : 4339
[ 14:32:55 | FATAL ] : (Vulkan) Failed to allocate descriptor set. , FILE : vk.cpp , LINE : 2
Vulkaninfo for this system:
vkinfo.txt
Just as in the title of this pull request.
Hi, thanks for making the sample freely available!
I haven't ran it yet, so sorry if this is a question that would be explained by doing so. I'm curious about what method you're using for shadow denoising here. It appears that you're doing some temporal reprojection stuff and then running it the output through an A Trous filter? Is there a reference that you used for this method? It seems familiar to the AMD FidelityFX shadow denoiser which unfortunately is a bit un-documented as well.
Shadow denoising seems to be an aspect of ray-tracing that doesn't have many good implementation guides, so any recommendations would be appreciated! Thanks in advance!
thanks for sharing hybrid ray tracing rendering work combining rasterization and ray tracing together.
can you also please share the assets accompany to generate the rendering result?
Hi, this was a good read and interesting to see. One thing that might be interesting reading about is https://www.khronos.org/blog/vulkan-subgroup-tutorial, it basically allows to get rid of the atomicOr and barrier. Since you're executing 1 warp (32 threads), you can exchange it using subgroupOr (GL_KHR_shader_subgroup_arithmetic). Basically uint x = subgroupOr(result << gl_LocalInvocationIndex) in https://github.com/diharaw/HybridRendering/blob/master/src/shaders/ao/ao_ray_trace.comp#L120 and also the shadow pass from what I've read. I'm not sure if this is already done by the driver or compiler, but it might be interesting to check out anyways (if this wasn't done for reducing the extensions required to run the sample).
Could you make a short tutorial regarding how to make the test scenes? I want to make some additional scenes for this project but don't know where shall I start.
Many thanks.
Could you please provide the blue noise texture files you have used or point to where to get them?
Please re-check your CMakeLists.txt
. The configuration is done and the ninja build script is generated but there are errors on the ninja build script:
CMake Error:
Running
'C:/msys64/ucrt64/bin/ninja.exe' '-C' 'C:/msys64/home/Administrator/hybrid-rendering/build' '-t' 'recompact'
failed with:
ninja: error: build.ninja:3122: bad $-escape (literal $ must be written as $$)
CMake Generate step failed. Build files cannot be regenerated correctly.
Update: if I use "MSYS Makefiles" or "MinGW Makefiles" generator then it could generate the build script without any errors!
Hello,
When I run HybridRendering.exe (v1.0.0), I get this fatal error:
(Vulkan) Failed to find a suitable GPU. , FILE : vk.cpp , LINE : 3442
Here are some system informations:
OS : Windows 10.0.19043 Build 19043
GPU : NVIDIA GeForce GTX 1060 6GB
I have also an integrated Intel GPU...
GeForce Game Ready Driver 511.23
Hi, and thanks for sharing your work!
The compilation went well but I have this runtime issue at launch:
I have the exact same error when I run the built version in your release package.
Do you have any idea?
I have built the application using default CMake options.
When running the renderer, it is missing PNGs in the texture folder. Could you kindly provide the texture files or point to where to get them?
texture/LDR_RGBA_0.png
texture/LDR_RGBA_1.png
texture/blue_noise/sobol_256_4d.png
texture/blue_noise/scrambling_ranking_128x128_2d_1spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_2spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_4spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_8spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_16spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_32spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_64spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_128spp.png
texture/blue_noise/scrambling_ranking_128x128_2d_256spp.png
Thank you very much!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.