radv: rename record_fail to record_result and use VkResult
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 25 Aug 2017 14:10:30 +0000 (16:10 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 28 Aug 2017 09:25:44 +0000 (11:25 +0200)
This will allow to propagate VK_ERROR_OUT_OF_HOST_MEMORY to
vkEndCommandBuffer() when necessary.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_private.h

index e1249641917808b2e8a37fe9fdf52e9c1bd77725..7642ec497df689c96d7f81e82b1ad1dafd953854 100644 (file)
@@ -231,7 +231,7 @@ static void  radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
                                                      cmd_buffer->upload.upload_bo, 8);
        cmd_buffer->upload.offset = 0;
 
-       cmd_buffer->record_fail = false;
+       cmd_buffer->record_result = VK_SUCCESS;
 
        cmd_buffer->ring_offsets_idx = -1;
 
@@ -262,7 +262,7 @@ radv_cmd_buffer_resize_upload_buf(struct radv_cmd_buffer *cmd_buffer,
                                       RADEON_FLAG_CPU_ACCESS);
 
        if (!bo) {
-               cmd_buffer->record_fail = true;
+               cmd_buffer->record_result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
                return false;
        }
 
@@ -271,7 +271,7 @@ radv_cmd_buffer_resize_upload_buf(struct radv_cmd_buffer *cmd_buffer,
                upload = malloc(sizeof(*upload));
 
                if (!upload) {
-                       cmd_buffer->record_fail = true;
+                       cmd_buffer->record_result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
                        device->ws->buffer_destroy(bo);
                        return false;
                }
@@ -286,7 +286,7 @@ radv_cmd_buffer_resize_upload_buf(struct radv_cmd_buffer *cmd_buffer,
        cmd_buffer->upload.map = device->ws->buffer_map(cmd_buffer->upload.upload_bo);
 
        if (!cmd_buffer->upload.map) {
-               cmd_buffer->record_fail = true;
+               cmd_buffer->record_result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
                return false;
        }
 
@@ -2136,7 +2136,7 @@ static bool radv_init_push_descriptor_set(struct radv_cmd_buffer *cmd_buffer,
 
                if (!set->mapped_ptr) {
                        cmd_buffer->push_descriptors.capacity = 0;
-                       cmd_buffer->record_fail = true;
+                       cmd_buffer->record_result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
                        return false;
                }
 
@@ -2252,10 +2252,10 @@ VkResult radv_EndCommandBuffer(
                si_emit_cache_flush(cmd_buffer);
        }
 
-       if (!cmd_buffer->device->ws->cs_finalize(cmd_buffer->cs) ||
-           cmd_buffer->record_fail)
+       if (!cmd_buffer->device->ws->cs_finalize(cmd_buffer->cs))
                return VK_ERROR_OUT_OF_DEVICE_MEMORY;
-       return VK_SUCCESS;
+
+       return cmd_buffer->record_result;
 }
 
 static void
index 0e297f5b6eaeb54f908f30fc9ad6f2726fac4261..cf5c8532789924fd5983e6ab664770f80ff6f1e0 100644 (file)
@@ -833,7 +833,7 @@ struct radv_cmd_buffer {
        bool tess_rings_needed;
        bool sample_positions_needed;
 
-       bool record_fail;
+       VkResult record_result;
 
        int ring_offsets_idx; /* just used for verification */
        uint32_t gfx9_fence_offset;