nvk: Simplify alignment limit plumbing
We dont't need this whole function just for advertising alignment requirements. We now have enough #defines and helpers that they map pretty cleanly to those. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
This commit is contained in:
committed by
Marge Bot
parent
08222146ac
commit
289149ebcb
@@ -9,15 +9,15 @@
|
||||
#include "nvk_device_memory.h"
|
||||
#include "nvk_physical_device.h"
|
||||
|
||||
uint32_t
|
||||
nvk_get_buffer_alignment(UNUSED const struct nv_device_info *info,
|
||||
static uint32_t
|
||||
nvk_get_buffer_alignment(const struct nvk_physical_device *pdev,
|
||||
VkBufferUsageFlags2KHR usage_flags,
|
||||
VkBufferCreateFlags create_flags)
|
||||
{
|
||||
uint32_t alignment = 16;
|
||||
|
||||
if (usage_flags & VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR)
|
||||
alignment = MAX2(alignment, nvk_min_cbuf_alignment(info));
|
||||
alignment = MAX2(alignment, nvk_min_cbuf_alignment(&pdev->info));
|
||||
|
||||
if (usage_flags & VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR)
|
||||
alignment = MAX2(alignment, NVK_MIN_SSBO_ALIGNMENT);
|
||||
@@ -94,7 +94,7 @@ nvk_CreateBuffer(VkDevice device,
|
||||
(buffer->vk.create_flags & (VK_BUFFER_CREATE_SPARSE_BINDING_BIT |
|
||||
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT))) {
|
||||
const uint32_t alignment =
|
||||
nvk_get_buffer_alignment(&nvk_device_physical(dev)->info,
|
||||
nvk_get_buffer_alignment(nvk_device_physical(dev),
|
||||
buffer->vk.usage,
|
||||
buffer->vk.create_flags);
|
||||
assert(alignment >= 4096);
|
||||
@@ -159,7 +159,7 @@ nvk_GetDeviceBufferMemoryRequirements(
|
||||
VK_FROM_HANDLE(nvk_device, dev, device);
|
||||
|
||||
const uint32_t alignment =
|
||||
nvk_get_buffer_alignment(&nvk_device_physical(dev)->info,
|
||||
nvk_get_buffer_alignment(nvk_device_physical(dev),
|
||||
pInfo->pCreateInfo->usage,
|
||||
pInfo->pCreateInfo->flags);
|
||||
|
||||
|
||||
@@ -14,11 +14,6 @@
|
||||
struct nvk_device_memory;
|
||||
struct nvk_physical_device;
|
||||
|
||||
uint32_t ATTRIBUTE_PURE
|
||||
nvk_get_buffer_alignment(const struct nv_device_info *info,
|
||||
VkBufferUsageFlags2KHR usage_flags,
|
||||
VkBufferCreateFlags create_flags);
|
||||
|
||||
struct nvk_buffer {
|
||||
struct vk_buffer vk;
|
||||
uint64_t addr;
|
||||
|
||||
@@ -578,14 +578,9 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
||||
.viewportBoundsRange = { -65536, 65536 },
|
||||
.viewportSubPixelBits = 8,
|
||||
.minMemoryMapAlignment = 64,
|
||||
.minTexelBufferOffsetAlignment =
|
||||
nvk_get_buffer_alignment(info, VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR |
|
||||
VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,
|
||||
0),
|
||||
.minUniformBufferOffsetAlignment =
|
||||
nvk_get_buffer_alignment(info, VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR, 0),
|
||||
.minStorageBufferOffsetAlignment =
|
||||
nvk_get_buffer_alignment(info, VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR, 0),
|
||||
.minTexelBufferOffsetAlignment = NVK_MIN_TEXEL_BUFFER_ALIGNMENT,
|
||||
.minUniformBufferOffsetAlignment = nvk_min_cbuf_alignment(info),
|
||||
.minStorageBufferOffsetAlignment = NVK_MIN_SSBO_ALIGNMENT,
|
||||
.minTexelOffset = -8,
|
||||
.maxTexelOffset = 7,
|
||||
.minTexelGatherOffset = -32,
|
||||
|
||||
Reference in New Issue
Block a user