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);
|
VK_FROM_HANDLE(nvk_device, dev, device);
|
||||||
struct nvk_buffer *buffer;
|
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,
|
buffer = vk_buffer_create(&dev->vk, pCreateInfo, pAllocator,
|
||||||
sizeof(*buffer));
|
sizeof(*buffer));
|
||||||
if (!buffer)
|
if (!buffer)
|
||||||
|
@@ -396,7 +396,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||||||
.maxMemoryAllocationCount = 4096,
|
.maxMemoryAllocationCount = 4096,
|
||||||
.maxSamplerAllocationCount = 4000,
|
.maxSamplerAllocationCount = 4000,
|
||||||
.bufferImageGranularity = info->chipset >= 0x120 ? 0x400 : 0x10000,
|
.bufferImageGranularity = info->chipset >= 0x120 ? 0x400 : 0x10000,
|
||||||
.sparseAddressSpaceSize = UINT32_MAX,
|
.sparseAddressSpaceSize = NVK_SPARSE_ADDR_SPACE_SIZE,
|
||||||
.maxBoundDescriptorSets = NVK_MAX_SETS,
|
.maxBoundDescriptorSets = NVK_MAX_SETS,
|
||||||
.maxPerStageDescriptorSamplers = NVK_MAX_DESCRIPTORS,
|
.maxPerStageDescriptorSamplers = NVK_MAX_DESCRIPTORS,
|
||||||
.maxPerStageDescriptorUniformBuffers = NVK_MAX_DESCRIPTORS,
|
.maxPerStageDescriptorUniformBuffers = NVK_MAX_DESCRIPTORS,
|
||||||
@@ -556,7 +556,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||||||
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32,
|
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32,
|
||||||
.maxDescriptorSetInlineUniformBlocks = 6 * 32,
|
.maxDescriptorSetInlineUniformBlocks = 6 * 32,
|
||||||
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 6 * 32,
|
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 6 * 32,
|
||||||
.maxBufferSize = UINT32_MAX,
|
.maxBufferSize = NVK_MAX_BUFFER_SIZE,
|
||||||
|
|
||||||
/* VK_KHR_push_descriptor */
|
/* VK_KHR_push_descriptor */
|
||||||
.maxPushDescriptors = NVK_MAX_PUSH_DESCRIPTORS,
|
.maxPushDescriptors = NVK_MAX_PUSH_DESCRIPTORS,
|
||||||
|
@@ -26,6 +26,9 @@
|
|||||||
#define NVK_SSBO_BOUNDS_CHECK_ALIGNMENT 4
|
#define NVK_SSBO_BOUNDS_CHECK_ALIGNMENT 4
|
||||||
#define NVK_MAX_MULTIVIEW_VIEW_COUNT 32
|
#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 {
|
struct nvk_addr_range {
|
||||||
uint64_t addr;
|
uint64_t addr;
|
||||||
uint64_t range;
|
uint64_t range;
|
||||||
|
Reference in New Issue
Block a user