| 140 | }; |
| 141 | |
| 142 | class OpticalFlowHelper { |
| 143 | private: |
| 144 | static constexpr uint32_t kResourceCount = 5u; |
| 145 | HelperParameters params_ = HelperParameters(); |
| 146 | |
| 147 | public: |
| 148 | std::vector<VkDataGraphPipelineSingleNodeConnectionARM> connections_; |
| 149 | VkDataGraphPipelineSingleNodeCreateInfoARM single_node_ci_ = {}; |
| 150 | VkDataGraphPipelineOpticalFlowCreateInfoARM optical_flow_ci_ = {}; |
| 151 | VkDataGraphOpticalFlowGridSizeFlagsARM optical_flow_grid_size_ = VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_ARM; |
| 152 | std::vector<vkt::Image> images_; |
| 153 | std::vector<vkt::ImageView> image_views_; |
| 154 | std::vector<VkDataGraphPipelineResourceInfoImageLayoutARM> image_layouts_; |
| 155 | DataGraphPipelineHelper dg_pipeline_; |
| 156 | |
| 157 | VkLayerTest &layer_test_; |
| 158 | vkt::Device *device_ = nullptr; |
| 159 | |
| 160 | explicit OpticalFlowHelper(VkLayerTest &test, const HelperParameters ¶ms = HelperParameters()); |
| 161 | |
| 162 | void QueryOpticalFlowProperties(); |
| 163 | std::vector<VkFormat> GetAllOpticalFlowFormats(VkDataGraphOpticalFlowImageUsageFlagsARM usage); |
| 164 | VkFormat GetAnyOpticalFlowFormat(VkDataGraphOpticalFlowImageUsageFlagsARM usage); |
| 165 | void CreateOpticalFlow(); |
| 166 | void SetupImageDescriptors(); |
| 167 | void InitDataGraphPipeline(); |
| 168 | VkResult CreateDataGraphPipeline(); |
| 169 | |
| 170 | VkPipelineLayout PipelineLayout() const { return dg_pipeline_.pipeline_layout_; }; |
| 171 | const VkDescriptorSet* DescriptorSet() const { return &dg_pipeline_.descriptor_set_.get()->set_; }; |
| 172 | }; |
| 173 | } // namespace of |
| 174 | } // namespace dg |
| 175 | } // namespace vkt |
nothing calls this directly
no test coverage detected