turnip: Handle some error paths in allocating CS space from a command buffer.
Fixes some release-build warnings.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7224>
diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.c
index 7c84996..3508c20 100644
--- a/src/freedreno/vulkan/tu_clear_blit.c
+++ b/src/freedreno/vulkan/tu_clear_blit.c
@@ -561,7 +561,10 @@
VkResult result = tu_cs_alloc(&cmd->sub_cs,
2, /* allocate space for a sampler too */
A6XX_TEX_CONST_DWORDS, &texture);
- assert(result == VK_SUCCESS);
+ if (result != VK_SUCCESS) {
+ cmd->record_result = result;
+ return;
+ }
memcpy(texture.map, tex_const, A6XX_TEX_CONST_DWORDS * 4);
diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index 76959ac..c8e044e 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -1010,7 +1010,10 @@
struct tu_cs_memory texture;
VkResult result = tu_cs_alloc(&cmd->sub_cs, subpass->input_count * 2,
A6XX_TEX_CONST_DWORDS, &texture);
- assert(result == VK_SUCCESS);
+ if (result != VK_SUCCESS) {
+ cmd->record_result = result;
+ return (struct tu_draw_state) {};
+ }
for (unsigned i = 0; i < subpass->input_count * 2; i++) {
uint32_t a = subpass->input_attachments[i / 2].attachment;
@@ -1722,7 +1725,10 @@
struct tu_cs_memory dynamic_desc_set;
VkResult result = tu_cs_alloc(&cmd->sub_cs, layout->dynamic_offset_count,
A6XX_TEX_CONST_DWORDS, &dynamic_desc_set);
- assert(result == VK_SUCCESS);
+ if (result != VK_SUCCESS) {
+ cmd->record_result = result;
+ return;
+ }
memcpy(dynamic_desc_set.map, descriptors_state->dynamic_descriptors,
layout->dynamic_offset_count * A6XX_TEX_CONST_DWORDS * 4);
@@ -1778,7 +1784,10 @@
VkResult result = tu_cs_alloc(&cmd->sub_cs,
DIV_ROUND_UP(layout->size, A6XX_TEX_CONST_DWORDS * 4),
A6XX_TEX_CONST_DWORDS, &set_mem);
- assert(result == VK_SUCCESS);
+ if (result != VK_SUCCESS) {
+ cmd->record_result = result;
+ return;
+ }
/* preserve previous content if the layout is the same: */
if (set->layout == layout)
@@ -1814,7 +1823,10 @@
VkResult result = tu_cs_alloc(&cmd->sub_cs,
DIV_ROUND_UP(layout->size, A6XX_TEX_CONST_DWORDS * 4),
A6XX_TEX_CONST_DWORDS, &set_mem);
- assert(result == VK_SUCCESS);
+ if (result != VK_SUCCESS) {
+ cmd->record_result = result;
+ return;
+ }
/* preserve previous content if the layout is the same: */
if (set->layout == layout)