diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2020-07-12 18:35:25 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-07-22 15:06:20 +0000 |
commit | 7a61e31d7b2e9a486686740fad11d58745fa9cc9 (patch) | |
tree | 88b4675f8c65187855f9e65850a5fb300ae8a6d3 /src/amd/vulkan/radv_sqtt.c | |
parent | 348e8b5618c9049b65f339830cac2b221efa7102 (diff) |
radv: add missing return values check for some winsys calls
Make sure to handle errors properly.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5872>
Diffstat (limited to 'src/amd/vulkan/radv_sqtt.c')
-rw-r--r-- | src/amd/vulkan/radv_sqtt.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_sqtt.c b/src/amd/vulkan/radv_sqtt.c index e135e0c02cc..669c6fb197b 100644 --- a/src/amd/vulkan/radv_sqtt.c +++ b/src/amd/vulkan/radv_sqtt.c @@ -401,10 +401,14 @@ static void radv_thread_trace_init_cs(struct radv_device *device) { struct radeon_winsys *ws = device->ws; + VkResult result; /* Thread trace start CS. */ for (int family = 0; family < 2; ++family) { device->thread_trace_start_cs[family] = ws->cs_create(ws, family); + if (!device->thread_trace_start_cs[family]) + return; + switch (family) { case RADV_QUEUE_GENERAL: radeon_emit(device->thread_trace_start_cs[family], PKT3(PKT3_CONTEXT_CONTROL, 1, 0)); @@ -434,12 +438,17 @@ radv_thread_trace_init_cs(struct radv_device *device) device->thread_trace_start_cs[family], family); - ws->cs_finalize(device->thread_trace_start_cs[family]); + result = ws->cs_finalize(device->thread_trace_start_cs[family]); + if (result != VK_SUCCESS) + return; } /* Thread trace stop CS. */ for (int family = 0; family < 2; ++family) { device->thread_trace_stop_cs[family] = ws->cs_create(ws, family); + if (!device->thread_trace_stop_cs[family]) + return; + switch (family) { case RADV_QUEUE_GENERAL: radeon_emit(device->thread_trace_stop_cs[family], PKT3(PKT3_CONTEXT_CONTROL, 1, 0)); @@ -469,7 +478,9 @@ radv_thread_trace_init_cs(struct radv_device *device) device->thread_trace_stop_cs[family], false); - ws->cs_finalize(device->thread_trace_stop_cs[family]); + result = ws->cs_finalize(device->thread_trace_stop_cs[family]); + if (result != VK_SUCCESS) + return; } } |