| // Copyright 2018 The Fuchsia 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 LIB_ESCHER_VK_VULKAN_LIMITS_H_ |
| #define LIB_ESCHER_VK_VULKAN_LIMITS_H_ |
| |
| #include <cstdint> |
| |
| namespace escher { |
| |
| // These are limits imposed by Escher, and are constexpr so that they can be |
| // used to statically declare array sizes. The actual Vulkan limits vary from |
| // device to device, and must be queried dynamically. |
| struct VulkanLimits { |
| static constexpr uint64_t kNumColorAttachments = 8; |
| static constexpr uint64_t kNumBindings = 16; |
| static constexpr uint64_t kNumDescriptorSets = 4; |
| static constexpr uint64_t kNumVertexAttributes = 16; |
| static constexpr uint64_t kNumVertexBuffers = 4; |
| static constexpr uint64_t kPushConstantSize = 128; |
| }; |
| |
| } // namespace escher |
| |
| #endif // LIB_ESCHER_VK_VULKAN_LIMITS_H_ |