radeonsi: add si_init_descriptor_list() helper
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 31 Mar 2017 14:09:24 +0000 (16:09 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 14 Jun 2017 08:04:36 +0000 (10:04 +0200)
This will be used in order to initialize resident descriptors
for bindless textures/images.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_descriptors.c

index 22888a6..66db4a8 100644 (file)
@@ -95,6 +95,21 @@ static uint32_t null_image_descriptor[8] = {
         * descriptor */
 };
 
+static void si_init_descriptor_list(uint32_t *desc_list,
+                                   unsigned element_dw_size,
+                                   unsigned num_elements,
+                                   const uint32_t *null_descriptor)
+{
+       int i;
+
+       /* Initialize the array to NULL descriptors if the element size is 8. */
+       if (null_descriptor) {
+               assert(element_dw_size % 8 == 0);
+               for (i = 0; i < num_elements * element_dw_size / 8; i++)
+                       memcpy(desc_list + i * 8, null_descriptor, 8 * 4);
+       }
+}
+
 static void si_init_descriptors(struct si_context *sctx,
                                struct si_descriptors *desc,
                                unsigned shader_userdata_index,