Module: Mesa
Branch: staging/19.1
Commit: 8fbadb152cfb60e6b3b095e5b1e8b919707a543b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8fbadb152cfb60e6b3b095e5b1e8b919707a543b

Author: Bas Nieuwenhuizen <[email protected]>
Date:   Mon Jul 29 16:52:23 2019 +0200

radv: Take variable descriptor counts into account for buffer entries.

Fixes: b5e04e9217b "radv: Support allocating variable size descriptor sets."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111019
Reviewed-by: Samuel Pitoiset <[email protected]>
(cherry picked from commit aac492901a9c717e1c667a5313fdf7ba1b750cf2)

---

 src/amd/vulkan/radv_descriptor_set.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_descriptor_set.c 
b/src/amd/vulkan/radv_descriptor_set.c
index 9a6e9cead9c..89d451cd728 100644
--- a/src/amd/vulkan/radv_descriptor_set.c
+++ b/src/amd/vulkan/radv_descriptor_set.c
@@ -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;
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to