From cd2ec54f7f5f93d994649e7671604eeac4a6c67d Mon Sep 17 00:00:00 2001 From: VZout Date: Fri, 1 Nov 2019 16:01:48 +0100 Subject: [PATCH 1/3] Cleaned up the createShaderBindingTable for the raytracing examples --- examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp | 9 +++++---- .../nv_ray_tracing_reflections.cpp | 1 - .../nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp | 1 - 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp index ab8b07b6..6a350a3f 100644 --- a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp +++ b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp @@ -44,6 +44,8 @@ struct GeometryInstance { #define INDEX_MISS 1 #define INDEX_CLOSEST_HIT 2 +#define NUM_SHADER_GROUPS 3 + class VulkanExample : public VulkanExampleBase { public: @@ -421,7 +423,7 @@ public: */ void createShaderBindingTable() { // Create buffer for the shader binding table - const uint32_t sbtSize = rayTracingProperties.shaderGroupHandleSize * 3; + const uint32_t sbtSize = rayTracingProperties.shaderGroupHandleSize * NUM_SHADER_GROUPS; VK_CHECK_RESULT(vulkanDevice->createBuffer( VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, @@ -431,10 +433,9 @@ public: auto shaderHandleStorage = new uint8_t[sbtSize]; // Get shader identifiers - VK_CHECK_RESULT(vkGetRayTracingShaderGroupHandlesNV(device, pipeline, 0, 3, sbtSize, shaderHandleStorage)); + VK_CHECK_RESULT(vkGetRayTracingShaderGroupHandlesNV(device, pipeline, 0, NUM_SHADER_GROUPS, sbtSize, shaderHandleStorage)); auto* data = static_cast(shaderBindingTable.mapped); // Copy the shader identifiers to the shader binding table - VkDeviceSize offset = 0; data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_RAYGEN); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_MISS); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_CLOSEST_HIT); @@ -540,7 +541,7 @@ public: /* Setup ray tracing shader groups */ - std::array groups{}; + std::array groups{}; for (auto& group : groups) { // Init all groups with some default values group.sType = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV; diff --git a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp index 020477eb..40ef233b 100644 --- a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp +++ b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp @@ -423,7 +423,6 @@ public: VK_CHECK_RESULT(vkGetRayTracingShaderGroupHandlesNV(device, pipeline, 0, NUM_SHADER_GROUPS, sbtSize, shaderHandleStorage)); auto* data = static_cast(shaderBindingTable.mapped); // Copy the shader identifiers to the shader binding table - VkDeviceSize offset = 0; data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_RAYGEN); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_MISS); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_CLOSEST_HIT); diff --git a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp index 676284e8..7065566f 100644 --- a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp +++ b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp @@ -432,7 +432,6 @@ public: VK_CHECK_RESULT(vkGetRayTracingShaderGroupHandlesNV(device, pipeline, 0, NUM_SHADER_GROUPS, sbtSize, shaderHandleStorage)); auto* data = static_cast(shaderBindingTable.mapped); // Copy the shader identifiers to the shader binding table - VkDeviceSize offset = 0; data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_RAYGEN); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_MISS); data += copyShaderIdentifier(data, shaderHandleStorage, INDEX_SHADOW_MISS); From a74849668b4ee4da2b9817111f52bdc377ddce3e Mon Sep 17 00:00:00 2001 From: VZout Date: Fri, 1 Nov 2019 16:13:23 +0100 Subject: [PATCH 2/3] Removed unnessessary increment to the shader binding table data --- examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp | 1 - .../nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp | 1 - examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp | 1 - 3 files changed, 3 deletions(-) diff --git a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp index 6a350a3f..be89c470 100644 --- a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp +++ b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp @@ -414,7 +414,6 @@ public: VkDeviceSize copyShaderIdentifier(uint8_t* data, const uint8_t* shaderHandleStorage, uint32_t groupIndex) { const uint32_t shaderGroupHandleSize = rayTracingProperties.shaderGroupHandleSize; memcpy(data, shaderHandleStorage + groupIndex * shaderGroupHandleSize, shaderGroupHandleSize); - data += shaderGroupHandleSize; return shaderGroupHandleSize; } diff --git a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp index 40ef233b..e180802a 100644 --- a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp +++ b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp @@ -401,7 +401,6 @@ public: VkDeviceSize copyShaderIdentifier(uint8_t* data, const uint8_t* shaderHandleStorage, uint32_t groupIndex) { const uint32_t shaderGroupHandleSize = rayTracingProperties.shaderGroupHandleSize; memcpy(data, shaderHandleStorage + groupIndex * shaderGroupHandleSize, shaderGroupHandleSize); - data += shaderGroupHandleSize; return shaderGroupHandleSize; } diff --git a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp index 7065566f..704d8365 100644 --- a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp +++ b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp @@ -410,7 +410,6 @@ public: VkDeviceSize copyShaderIdentifier(uint8_t* data, const uint8_t* shaderHandleStorage, uint32_t groupIndex) { const uint32_t shaderGroupHandleSize = rayTracingProperties.shaderGroupHandleSize; memcpy(data, shaderHandleStorage + groupIndex * shaderGroupHandleSize, shaderGroupHandleSize); - data += shaderGroupHandleSize; return shaderGroupHandleSize; } From ca728afa3ab10af37d03bac93efc797abf9da5a5 Mon Sep 17 00:00:00 2001 From: Hugues Evrard Date: Thu, 5 Mar 2020 14:49:01 +0000 Subject: [PATCH 3/3] Fix typo in package name vulkanDeferredmultisampling --- android/examples/deferredmultisampling/build.gradle | 2 +- .../examples/deferredmultisampling/src/main/AndroidManifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/examples/deferredmultisampling/build.gradle b/android/examples/deferredmultisampling/build.gradle index dd72972d..228d1355 100644 --- a/android/examples/deferredmultisampling/build.gradle +++ b/android/examples/deferredmultisampling/build.gradle @@ -4,7 +4,7 @@ apply from: '../gradle/outputfilename.gradle' android { compileSdkVersion 26 defaultConfig { - applicationId "de.saschawillems.vulkanDeferredmulitsampling" + applicationId "de.saschawillems.vulkanDeferredmultisampling" minSdkVersion 19 targetSdkVersion 26 versionCode 1 diff --git a/android/examples/deferredmultisampling/src/main/AndroidManifest.xml b/android/examples/deferredmultisampling/src/main/AndroidManifest.xml index a763ef48..0011ebe6 100644 --- a/android/examples/deferredmultisampling/src/main/AndroidManifest.xml +++ b/android/examples/deferredmultisampling/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="de.saschawillems.vulkanDeferredmultisampling">