diff options
author | Je06jm <jeremymoyes3@gmail.com> | 2021-11-23 14:16:03 -0700 |
---|---|---|
committer | Je06jm <jeremymoyes3@gmail.com> | 2021-11-23 14:16:03 -0700 |
commit | 20deb0917d466ca9dd1bf435dfb326c72f73e3c0 (patch) | |
tree | ba031db5386d2d86baffc8a7ded444b2ac441a7c /drivers/vulkan/vulkan_context.cpp | |
parent | 5efe80f3085c8c6451363fe4c743bf3d7fc20b6c (diff) | |
download | redot-engine-20deb0917d466ca9dd1bf435dfb326c72f73e3c0.tar.gz |
Implemented AMD's FSR as a computer shader for upscaling 3D scenes
Diffstat (limited to 'drivers/vulkan/vulkan_context.cpp')
-rw-r--r-- | drivers/vulkan/vulkan_context.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp index c178a68236..5912f481ec 100644 --- a/drivers/vulkan/vulkan_context.cpp +++ b/drivers/vulkan/vulkan_context.cpp @@ -535,6 +535,24 @@ Error VulkanContext::_check_capabilities() { multiview_capabilities.is_supported = multiview_features.multiview; multiview_capabilities.geometry_shader_is_supported = multiview_features.multiviewGeometryShader; multiview_capabilities.tessellation_shader_is_supported = multiview_features.multiviewTessellationShader; + + VkPhysicalDeviceShaderFloat16Int8FeaturesKHR shader_features; + shader_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR; + shader_features.pNext = NULL; + + device_features.pNext = &shader_features; + + device_features_func(gpu, &device_features); + shader_capabilities.shader_float16_is_supported = shader_features.shaderFloat16; + + VkPhysicalDevice16BitStorageFeaturesKHR storage_feature; + storage_feature.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR; + storage_feature.pNext = NULL; + + device_features.pNext = &storage_feature; + + device_features_func(gpu, &device_features); + storage_buffer_capabilities.storage_buffer_16_bit_access_is_supported = storage_feature.storageBuffer16BitAccess; } // check extended properties |