nvk: Improve address space and buffer size limits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25653>
This commit is contained in:
@@ -41,6 +41,9 @@ nvk_CreateBuffer(VkDevice device,
|
||||
VK_FROM_HANDLE(nvk_device, dev, device);
|
||||
struct nvk_buffer *buffer;
|
||||
|
||||
if (pCreateInfo->size > NVK_MAX_BUFFER_SIZE)
|
||||
return vk_error(dev, VK_ERROR_OUT_OF_DEVICE_MEMORY);
|
||||
|
||||
buffer = vk_buffer_create(&dev->vk, pCreateInfo, pAllocator,
|
||||
sizeof(*buffer));
|
||||
if (!buffer)
|
||||
|
@@ -396,7 +396,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
||||
.maxMemoryAllocationCount = 4096,
|
||||
.maxSamplerAllocationCount = 4000,
|
||||
.bufferImageGranularity = info->chipset >= 0x120 ? 0x400 : 0x10000,
|
||||
.sparseAddressSpaceSize = UINT32_MAX,
|
||||
.sparseAddressSpaceSize = NVK_SPARSE_ADDR_SPACE_SIZE,
|
||||
.maxBoundDescriptorSets = NVK_MAX_SETS,
|
||||
.maxPerStageDescriptorSamplers = NVK_MAX_DESCRIPTORS,
|
||||
.maxPerStageDescriptorUniformBuffers = NVK_MAX_DESCRIPTORS,
|
||||
@@ -556,7 +556,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
||||
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32,
|
||||
.maxDescriptorSetInlineUniformBlocks = 6 * 32,
|
||||
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 6 * 32,
|
||||
.maxBufferSize = UINT32_MAX,
|
||||
.maxBufferSize = NVK_MAX_BUFFER_SIZE,
|
||||
|
||||
/* VK_KHR_push_descriptor */
|
||||
.maxPushDescriptors = NVK_MAX_PUSH_DESCRIPTORS,
|
||||
|
@@ -26,6 +26,9 @@
|
||||
#define NVK_SSBO_BOUNDS_CHECK_ALIGNMENT 4
|
||||
#define NVK_MAX_MULTIVIEW_VIEW_COUNT 32
|
||||
|
||||
#define NVK_SPARSE_ADDR_SPACE_SIZE (1ull << 39)
|
||||
#define NVK_MAX_BUFFER_SIZE (1ull << 31)
|
||||
|
||||
struct nvk_addr_range {
|
||||
uint64_t addr;
|
||||
uint64_t range;
|
||||
|
Reference in New Issue
Block a user