From bba814fa3b7d221afe82d54c1148fef8db878690 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Wed, 1 Sep 2021 16:00:47 +0200
Subject: [PATCH] [#92] Moved optional features for FSR to projects

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 projects/rtx/.gitignore            |  2 +-
 projects/voxelization/src/main.cpp | 16 ++++++++++++++--
 src/vkcv/Context.cpp               | 15 ---------------
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/projects/rtx/.gitignore b/projects/rtx/.gitignore
index b0d80266..8b485be2 100644
--- a/projects/rtx/.gitignore
+++ b/projects/rtx/.gitignore
@@ -1 +1 @@
-first_scene
+rtx
diff --git a/projects/voxelization/src/main.cpp b/projects/voxelization/src/main.cpp
index fe962ff3..68e3679c 100644
--- a/projects/voxelization/src/main.cpp
+++ b/projects/voxelization/src/main.cpp
@@ -81,8 +81,20 @@ int main(int argc, const char** argv) {
 	
 	vkcv::Features features;
 	features.requireExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
-	features.requireExtension(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME);
-	features.requireExtension(VK_KHR_16BIT_STORAGE_EXTENSION_NAME);
+	
+	features.tryExtensionFeature<vk::PhysicalDevice16BitStorageFeatures>(
+			VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME,
+			[](vk::PhysicalDevice16BitStorageFeatures& features) {
+				features.setStorageBuffer16BitAccess(true);
+			}
+	);
+	
+	features.tryExtensionFeature<vk::PhysicalDeviceShaderFloat16Int8Features>(
+			VK_KHR_16BIT_STORAGE_EXTENSION_NAME,
+			[](vk::PhysicalDeviceShaderFloat16Int8Features& features) {
+				features.setShaderFloat16(true);
+			}
+	);
 	
 	vkcv::Core core = vkcv::Core::create(
 		window,
diff --git a/src/vkcv/Context.cpp b/src/vkcv/Context.cpp
index 179ee740..78230aea 100644
--- a/src/vkcv/Context.cpp
+++ b/src/vkcv/Context.cpp
@@ -260,21 +260,6 @@ namespace vkcv
 		vk::PhysicalDevice physicalDevice = pickPhysicalDevice(instance);
 		
 		FeatureManager featureManager (physicalDevice);
-
-		// TODO, FIXME: nach Tobi duerfen wir das hier auskommentieren. Es wird ein Fix benoetigt!
-//		if (featureManager.useExtension(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, false)) {
-//			featureManager.useFeatures<vk::PhysicalDeviceShaderFloat16Int8Features>(
-//					[](vk::PhysicalDeviceShaderFloat16Int8Features& features) {
-//				features.setShaderFloat16(true);
-//			}, false);
-//		}
-//
-//		if (featureManager.useExtension(VK_KHR_16BIT_STORAGE_EXTENSION_NAME, false)) {
-//			featureManager.useFeatures<vk::PhysicalDevice16BitStorageFeatures>(
-//					[](vk::PhysicalDevice16BitStorageFeatures& features) {
-//				features.setStorageBuffer16BitAccess(true);
-//			}, false);
-//		}
 		
 		featureManager.useFeatures([](vk::PhysicalDeviceFeatures& features) {
 			features.setFragmentStoresAndAtomics(true);
-- 
GitLab