mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
panvk: Fix nullDescriptor for dynamic descriptors
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com> Fixes:a789867cb4("panvk/v10+: Implement nullDescriptor support") Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36198> (cherry picked from commitaf5fb42080)
This commit is contained in:
parent
b550d78635
commit
d4201626c5
2 changed files with 11 additions and 8 deletions
|
|
@ -1754,7 +1754,7 @@
|
|||
"description": "panvk: Fix nullDescriptor for dynamic descriptors",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a789867cb452a6062cdd2ae7f5d77e0ea443cd00",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -194,22 +194,25 @@ write_dynamic_buffer_desc(struct panvk_descriptor_set *set,
|
|||
const VkDescriptorBufferInfo *const info,
|
||||
uint32_t binding, uint32_t elem)
|
||||
{
|
||||
if (info->buffer == VK_NULL_HANDLE) {
|
||||
write_nulldesc(set, binding, elem, NO_SUBDESC);
|
||||
return;
|
||||
/* Default to memory sink (OOB address) */
|
||||
uint64_t dev_addr = 0x8ull << 60;
|
||||
uint64_t range = 0;
|
||||
|
||||
if (info->buffer != VK_NULL_HANDLE) {
|
||||
VK_FROM_HANDLE(panvk_buffer, buffer, info->buffer);
|
||||
|
||||
dev_addr = panvk_buffer_gpu_ptr(buffer, info->offset);
|
||||
range = panvk_buffer_range(buffer, info->offset, info->range);
|
||||
}
|
||||
|
||||
VK_FROM_HANDLE(panvk_buffer, buffer, info->buffer);
|
||||
const struct panvk_descriptor_set_binding_layout *binding_layout =
|
||||
&set->layout->bindings[binding];
|
||||
uint32_t dyn_buf_idx = binding_layout->desc_idx + elem;
|
||||
const uint64_t range = panvk_buffer_range(buffer, info->offset, info->range);
|
||||
|
||||
assert(range <= UINT32_MAX);
|
||||
assert(dyn_buf_idx < ARRAY_SIZE(set->dyn_bufs));
|
||||
|
||||
set->dyn_bufs[dyn_buf_idx].dev_addr =
|
||||
panvk_buffer_gpu_ptr(buffer, info->offset);
|
||||
set->dyn_bufs[dyn_buf_idx].dev_addr = dev_addr;
|
||||
set->dyn_bufs[dyn_buf_idx].size = range;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue