mirror of
				https://github.com/PancakeTAS/lsfg-vk.git
				synced 2025-10-30 07:01:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			992 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			992 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include "vk/core/descriptorpool.hpp"
 | |
| #include "vk/core/device.hpp"
 | |
| #include "vk/core/instance.hpp"
 | |
| #include "vk/pool/shader_pool.hpp"
 | |
| #include "vk/registry/shader_registry.hpp"
 | |
| 
 | |
| #include <filesystem>
 | |
| #include <memory>
 | |
| 
 | |
| namespace LSFG {
 | |
| 
 | |
|     // FIXME: device picking, fp16 logic, etc.
 | |
| 
 | |
|     /// Vulkan (and related) data structure.
 | |
|     struct VKD {
 | |
|         VK::Core::Instance instance;
 | |
|         VK::Core::Device device;
 | |
|         VK::Core::DescriptorPool dpool;
 | |
| 
 | |
|         VK::Registry::ShaderRegistry registry;
 | |
| 
 | |
|         VK::Pool::ShaderPool spool;
 | |
| 
 | |
|         float flow{1.0F};
 | |
|     };
 | |
| 
 | |
|     ///
 | |
|     /// Lossless Scaling Frame Generation instance.
 | |
|     ///
 | |
|     class Instance {
 | |
|     public:
 | |
|         ///
 | |
|         /// Create an instance.
 | |
|         ///
 | |
|         /// @param dll Path to the Lossless.dll file.
 | |
|         ///
 | |
|         /// @throws LSFG::error if lsfg creation fails.
 | |
|         ///
 | |
|         Instance(const std::filesystem::path& dll);
 | |
|     private:
 | |
|         std::unique_ptr<VKD> vkd;
 | |
|     };
 | |
| 
 | |
| }
 | 
