1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright 2019 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef GPU_CONFIG_VULKAN_INFO_H_
- #define GPU_CONFIG_VULKAN_INFO_H_
- #include <vulkan/vulkan_core.h>
- #include <vector>
- #include "base/strings/string_piece.h"
- #include "gpu/gpu_export.h"
- #include "ui/gfx/extension_set.h"
- namespace gpu {
- class GPU_EXPORT VulkanPhysicalDeviceInfo {
- public:
- VulkanPhysicalDeviceInfo();
- VulkanPhysicalDeviceInfo(const VulkanPhysicalDeviceInfo& other);
- ~VulkanPhysicalDeviceInfo();
- VulkanPhysicalDeviceInfo& operator=(const VulkanPhysicalDeviceInfo& other);
- // This is a local variable in GPU process, it will not be sent via IPC.
- VkPhysicalDevice device = VK_NULL_HANDLE;
- VkPhysicalDeviceProperties properties = {};
- VkPhysicalDeviceDriverProperties driver_properties = {};
- std::vector<VkExtensionProperties> extensions;
- VkPhysicalDeviceFeatures features = {};
- // Extended physical device features:
- bool feature_sampler_ycbcr_conversion = false;
- bool feature_protected_memory = false;
- std::vector<VkQueueFamilyProperties> queue_families;
- };
- class GPU_EXPORT VulkanInfo {
- public:
- VulkanInfo();
- VulkanInfo(const VulkanInfo& other);
- ~VulkanInfo();
- VulkanInfo& operator=(const VulkanInfo& other);
- std::vector<uint8_t> Serialize() const;
- void SetEnabledInstanceExtensions(const std::vector<const char*>& extensions);
- void SetEnabledInstanceExtensions(
- const std::vector<base::StringPiece>& extensions);
- uint32_t api_version = VK_MAKE_VERSION(1, 0, 0);
- uint32_t used_api_version = VK_MAKE_VERSION(1, 0, 0);
- std::vector<VkExtensionProperties> instance_extensions;
- std::vector<const char*> enabled_instance_extensions;
- std::vector<VkLayerProperties> instance_layers;
- std::vector<VulkanPhysicalDeviceInfo> physical_devices;
- };
- } // namespace gpu
- #endif // GPU_CONFIG_VULKAN_INFO_H_
|