Browse Source

Finalize AS building

Panagiotis Christopoulos Charitos 5 years ago
parent
commit
59feac7b4d
2 changed files with 13 additions and 1 deletions
  1. 9 0
      src/anki/gr/Enums.h
  2. 4 1
      src/anki/gr/vulkan/AccelerationStructureImpl.cpp

+ 9 - 0
src/anki/gr/Enums.h

@@ -660,6 +660,15 @@ enum class AccelerationStructureType : U8
 	BOTTOM_LEVEL,
 	COUNT
 };
+
+enum class AccelerationStructureUsageBit : U8
+{
+	NONE = 0,
+	BUILD = 1 << 0,
+	COMPUTE_READ = 1 << 1,
+	RAY_GEN_READ = 1 << 2
+};
+ANKI_ENUM_ALLOW_NUMERIC_OPERATIONS(AccelerationStructureUsageBit, inline)
 /// @}
 
 } // end namespace anki

+ 4 - 1
src/anki/gr/vulkan/AccelerationStructureImpl.cpp

@@ -200,7 +200,10 @@ void AccelerationStructureImpl::initBuildInfo()
 			m_topLevelInfo.m_instancesBuff->unmap();
 		}
 
-		// TODO geometry
+		VkAccelerationStructureGeometryInstancesDataKHR& inst = m_geometry.geometry.instances;
+		inst.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
+		inst.arrayOfPointers = false;
+		inst.data.deviceAddress = m_topLevelInfo.m_instancesBuff->getGpuAddress();
 	}
 
 	m_buildInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;