summaryrefslogtreecommitdiff
path: root/src/amd/vulkan/radv_sqtt.c
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2020-07-12 18:35:25 +0200
committerMarge Bot <eric+marge@anholt.net>2020-07-22 15:06:20 +0000
commit7a61e31d7b2e9a486686740fad11d58745fa9cc9 (patch)
tree88b4675f8c65187855f9e65850a5fb300ae8a6d3 /src/amd/vulkan/radv_sqtt.c
parent348e8b5618c9049b65f339830cac2b221efa7102 (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.c15
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;
}
}