mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
radv: Take variable descriptor counts into account for buffer entries.
Fixes: b5e04e9217 "radv: Support allocating variable size descriptor sets."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111019
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
parent
99d04a5bd6
commit
aac492901a
1 changed files with 10 additions and 1 deletions
|
|
@ -477,8 +477,17 @@ radv_descriptor_set_create(struct radv_device *device,
|
|||
struct radv_descriptor_set **out_set)
|
||||
{
|
||||
struct radv_descriptor_set *set;
|
||||
uint32_t buffer_count = layout->buffer_count;
|
||||
if (variable_count) {
|
||||
unsigned stride = 1;
|
||||
if (layout->binding[layout->binding_count - 1].type == VK_DESCRIPTOR_TYPE_SAMPLER ||
|
||||
layout->binding[layout->binding_count - 1].type == VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT)
|
||||
stride = 0;
|
||||
buffer_count = layout->binding[layout->binding_count - 1].buffer_offset +
|
||||
*variable_count * stride;
|
||||
}
|
||||
unsigned range_offset = sizeof(struct radv_descriptor_set) +
|
||||
sizeof(struct radeon_winsys_bo *) * layout->buffer_count;
|
||||
sizeof(struct radeon_winsys_bo *) * buffer_count;
|
||||
unsigned mem_size = range_offset +
|
||||
sizeof(struct radv_descriptor_range) * layout->dynamic_offset_count;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue