radv/winsys: use alloca() for semaphore dependencies
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 12 Jul 2018 14:26:34 +0000 (16:26 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 17 Jul 2018 08:53:45 +0000 (10:53 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c

index 5824a29b9e48ce7a950a02927e90a12841268908..c94c0f339fde1b7841d12648ba2fe42536c78e55 100644 (file)
@@ -1376,12 +1376,9 @@ static int radv_amdgpu_cs_submit(struct radv_amdgpu_ctx *ctx,
        }
 
        if (sem_info->wait.sem_count && sem_info->cs_emit_wait) {
-               sem_dependencies = malloc(sizeof(struct drm_amdgpu_cs_chunk_dep) * sem_info->wait.sem_count);
-               if (!sem_dependencies) {
-                       r = -ENOMEM;
-                       goto error_out;
-               }
+               sem_dependencies = alloca(sizeof(struct drm_amdgpu_cs_chunk_dep) * sem_info->wait.sem_count);
                int sem_count = 0;
+
                for (unsigned j = 0; j < sem_info->wait.sem_count; j++) {
                        sem = (struct amdgpu_cs_fence *)sem_info->wait.sem[j];
                        if (!sem->context)
@@ -1420,7 +1417,6 @@ static int radv_amdgpu_cs_submit(struct radv_amdgpu_ctx *ctx,
                                 chunks,
                                 &request->seq_no);
 error_out:
-       free(sem_dependencies);
        free(wait_syncobj);
        free(signal_syncobj);
        return r;