1 /* 2 * Copyright © 2022 Collabora, Ltd. 3 * SPDX-License-Identifier: MIT 4 */ 5 #ifndef NVK_PRIVATE_H 6 #define NVK_PRIVATE_H 1 7 8 #include <assert.h> 9 10 #include "vk_log.h" 11 #include "vk_util.h" 12 13 #define NVK_MAX_SETS 32 14 #define NVK_MAX_PUSH_SIZE 128 15 #define NVK_MAX_DYNAMIC_BUFFERS 64 16 #define NVK_MAX_RTS 8 17 #define NVK_MAX_SAMPLES 8 18 #define NVK_MIN_SSBO_ALIGNMENT 16 19 #define NVK_MIN_TEXEL_BUFFER_ALIGNMENT 16 20 #define NVK_MIN_UBO_ALIGNMENT 64 21 #define NVK_MAX_VIEWPORTS 16 22 #define NVK_MAX_DESCRIPTOR_SIZE 16 23 #define NVK_MAX_PUSH_DESCRIPTORS 32 24 #define NVK_MAX_DESCRIPTOR_SET_SIZE (1u << 30) 25 #define NVK_MAX_DESCRIPTORS (1 << 20) 26 #define NVK_PUSH_DESCRIPTOR_SET_SIZE \ 27 (NVK_MAX_PUSH_DESCRIPTORS * NVK_MAX_DESCRIPTOR_SIZE) 28 #define NVK_SSBO_BOUNDS_CHECK_ALIGNMENT 4 29 #define NVK_MAX_MULTIVIEW_VIEW_COUNT 32 30 31 #define NVK_SPARSE_ADDR_SPACE_SIZE (1ull << 39) 32 #define NVK_MAX_BUFFER_SIZE (1ull << 31) 33 #define NVK_MAX_SHARED_SIZE (48 * 1024) 34 35 /* Max size of a bound cbuf */ 36 #define NVK_MAX_CBUF_SIZE (1u << 16) 37 38 struct nvk_addr_range { 39 uint64_t addr; 40 uint64_t range; 41 }; 42 43 #endif 44