zink: validate and log errors on vulkan calls
authorTales Lelo da Aparecida <tales.aparecida@gmail.com>
Sun, 27 Mar 2022 01:08:30 +0000 (22:08 -0300)
committerTales Lelo da Aparecida <tales.aparecida@gmail.com>
Tue, 29 Mar 2022 00:46:59 +0000 (21:46 -0300)
This commit also replaces debug_printf with mesa_loge

Signed-off-by: Tales Lelo da Aparecida <tales.aparecida@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15601>

15 files changed:
src/gallium/drivers/zink/zink_batch.c
src/gallium/drivers/zink/zink_bo.c
src/gallium/drivers/zink/zink_context.c
src/gallium/drivers/zink/zink_descriptors.c
src/gallium/drivers/zink/zink_descriptors_lazy.c
src/gallium/drivers/zink/zink_device_info.py
src/gallium/drivers/zink/zink_fence.c
src/gallium/drivers/zink/zink_instance.py
src/gallium/drivers/zink/zink_pipeline.c
src/gallium/drivers/zink/zink_program.c
src/gallium/drivers/zink/zink_query.c
src/gallium/drivers/zink/zink_render_pass.c
src/gallium/drivers/zink/zink_resource.c
src/gallium/drivers/zink/zink_screen.c
src/gallium/drivers/zink/zink_surface.c

index 9ac9404..248050b 100644 (file)
@@ -31,7 +31,7 @@ zink_reset_batch_state(struct zink_context *ctx, struct zink_batch_state *bs)
    struct zink_screen *screen = zink_screen(ctx->base.screen);
 
    if (VKSCR(ResetCommandPool)(screen->dev, bs->cmdpool, 0) != VK_SUCCESS)
-      debug_printf("vkResetCommandPool failed\n");
+      mesa_loge("ZINK: vkResetCommandPool failed");
 
    /* unref all used resources */
    set_foreach_remove(bs->resources, entry) {
@@ -315,9 +315,9 @@ zink_start_batch(struct zink_context *ctx, struct zink_batch *batch)
    cbbi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
    cbbi.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
    if (VKCTX(BeginCommandBuffer)(batch->state->cmdbuf, &cbbi) != VK_SUCCESS)
-      debug_printf("vkBeginCommandBuffer failed\n");
+      mesa_loge("ZINK: vkBeginCommandBuffer failed");
    if (VKCTX(BeginCommandBuffer)(batch->state->barrier_cmdbuf, &cbbi) != VK_SUCCESS)
-      debug_printf("vkBeginCommandBuffer failed\n");
+      mesa_loge("ZINK: vkBeginCommandBuffer failed");
 
    batch->state->fence.completed = false;
    if (ctx->last_fence) {
@@ -364,7 +364,9 @@ submit_queue(void *data, void *gdata, int thread_index)
       }
    }
 
-   VKSCR(ResetFences)(screen->dev, 1, &bs->fence.fence);
+   if (VKSCR(ResetFences)(screen->dev, 1, &bs->fence.fence) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkResetFences failed");
+   }
 
    uint64_t batch_id = bs->fence.batch_id;
    si.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -405,12 +407,12 @@ submit_queue(void *data, void *gdata, int thread_index)
    }
 
    if (VKSCR(EndCommandBuffer)(bs->cmdbuf) != VK_SUCCESS) {
-      debug_printf("vkEndCommandBuffer failed\n");
+      mesa_loge("ZINK: vkEndCommandBuffer failed");
       bs->is_device_lost = true;
       goto end;
    }
    if (VKSCR(EndCommandBuffer)(bs->barrier_cmdbuf) != VK_SUCCESS) {
-      debug_printf("vkEndCommandBuffer failed\n");
+      mesa_loge("ZINK: vkEndCommandBuffer failed");
       bs->is_device_lost = true;
       goto end;
    }
@@ -418,12 +420,14 @@ submit_queue(void *data, void *gdata, int thread_index)
    while (util_dynarray_contains(&bs->persistent_resources, struct zink_resource_object*)) {
       struct zink_resource_object *obj = util_dynarray_pop(&bs->persistent_resources, struct zink_resource_object*);
        VkMappedMemoryRange range = zink_resource_init_mem_range(screen, obj, 0, obj->size);
-       VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range);
+       if (VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range) != VK_SUCCESS) {
+          mesa_loge("ZINK: vkFlushMappedMemoryRanges failed");
+       }
    }
 
    simple_mtx_lock(&screen->queue_lock);
    if (VKSCR(QueueSubmit)(bs->queue, 1, &si, bs->fence.fence) != VK_SUCCESS) {
-      debug_printf("ZINK: vkQueueSubmit() failed\n");
+      mesa_loge("ZINK: vkQueueSubmit failed");
       bs->is_device_lost = true;
    }
    simple_mtx_unlock(&screen->queue_lock);
index 72c570c..7c7a16f 100644 (file)
@@ -668,6 +668,7 @@ zink_bo_map(struct zink_screen *screen, struct zink_bo *bo)
       if (!cpu) {
          VkResult result = VKSCR(MapMemory)(screen->dev, real->mem, 0, real->base.size, 0, &cpu);
          if (result != VK_SUCCESS) {
+            mesa_loge("ZINK: vkMapMemory failed");
             simple_mtx_unlock(&real->lock);
             return NULL;
          }
index bc9c0c3..c157939 100644 (file)
@@ -96,7 +96,7 @@ zink_context_destroy(struct pipe_context *pctx)
    if (util_queue_is_initialized(&screen->flush_queue))
       util_queue_finish(&screen->flush_queue);
    if (ctx->batch.state && !screen->device_lost && VKSCR(QueueWaitIdle)(ctx->batch.state->queue) != VK_SUCCESS)
-      debug_printf("vkQueueWaitIdle failed\n");
+      mesa_loge("ZINK: vkQueueWaitIdle failed");
 
    util_blitter_destroy(ctx->blitter);
    for (unsigned i = 0; i < ctx->fb_state.nr_cbufs; i++)
@@ -401,6 +401,7 @@ zink_create_sampler_state(struct pipe_context *pctx,
       return NULL;
 
    if (VKSCR(CreateSampler)(screen->dev, &sci, NULL, &sampler->sampler) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateSampler failed");
       FREE(sampler);
       return NULL;
    }
@@ -687,8 +688,10 @@ get_buffer_view(struct zink_context *ctx, struct zink_resource *res, VkBufferVie
       p_atomic_inc(&buffer_view->reference.count);
    } else {
       VkBufferView view;
-      if (VKSCR(CreateBufferView)(screen->dev, bvci, NULL, &view) != VK_SUCCESS)
+      if (VKSCR(CreateBufferView)(screen->dev, bvci, NULL, &view) != VK_SUCCESS) {
+         mesa_loge("ZINK: vkCreateBufferView failed");
          goto out;
+      }
       buffer_view = CALLOC_STRUCT(zink_buffer_view);
       if (!buffer_view) {
          VKSCR(DestroyBufferView)(screen->dev, view, NULL);
index 232b206..08191c9 100644 (file)
@@ -330,7 +330,7 @@ descriptor_pool_create(struct zink_screen *screen, enum zink_descriptor_type typ
    dpci.flags = 0;
    dpci.maxSets = ZINK_DEFAULT_MAX_DESCS;
    if (VKSCR(CreateDescriptorPool)(screen->dev, &dpci, 0, &pool->descpool) != VK_SUCCESS) {
-      debug_printf("vkCreateDescriptorPool failed\n");
+      mesa_loge("ZINK: vkCreateDescriptorPool failed");
       goto fail;
    }
 
@@ -374,7 +374,7 @@ descriptor_layout_create(struct zink_screen *screen, enum zink_descriptor_type t
       }
    }
    if (VKSCR(CreateDescriptorSetLayout)(screen->dev, &dcslci, 0, &dsl) != VK_SUCCESS)
-      debug_printf("vkCreateDescriptorSetLayout failed\n");
+      mesa_loge("ZINK: vkCreateDescriptorSetLayout failed");
    return dsl;
 }
 
@@ -621,7 +621,7 @@ zink_descriptor_util_alloc_sets(struct zink_screen *screen, VkDescriptorSetLayou
    dsai.pSetLayouts = layouts;
 
    if (VKSCR(AllocateDescriptorSets)(screen->dev, &dsai, sets) != VK_SUCCESS) {
-      debug_printf("ZINK: %" PRIu64 " failed to allocate descriptor set :/\n", (uint64_t)dsl);
+      mesa_loge("ZINK: %" PRIu64 " failed to allocate descriptor set :/", (uint64_t)dsl);
       return false;
    }
    return true;
@@ -1825,7 +1825,7 @@ zink_descriptors_init_bindless(struct zink_context *ctx)
    dcslci.bindingCount = num_bindings;
    dcslci.pBindings = bindings;
    if (VKSCR(CreateDescriptorSetLayout)(screen->dev, &dcslci, 0, &ctx->dd->bindless_layout) != VK_SUCCESS) {
-      debug_printf("vkCreateDescriptorSetLayout failed\n");
+      mesa_loge("ZINK: vkCreateDescriptorSetLayout failed");
       return;
    }
 
@@ -1841,7 +1841,7 @@ zink_descriptors_init_bindless(struct zink_context *ctx)
    dpci.flags = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT;
    dpci.maxSets = 1;
    if (VKSCR(CreateDescriptorPool)(screen->dev, &dpci, 0, &ctx->dd->bindless_pool) != VK_SUCCESS) {
-      debug_printf("vkCreateDescriptorPool failed\n");
+      mesa_loge("ZINK: vkCreateDescriptorPool failed");
       return;
    }
 
index c72adac..83bac2d 100644 (file)
@@ -356,7 +356,7 @@ create_pool(struct zink_screen *screen, unsigned num_type_sizes, const VkDescrip
    dpci.flags = flags;
    dpci.maxSets = MAX_LAZY_DESCRIPTORS;
    if (VKSCR(CreateDescriptorPool)(screen->dev, &dpci, 0, &pool) != VK_SUCCESS) {
-      debug_printf("vkCreateDescriptorPool failed\n");
+      mesa_loge("ZINK: vkCreateDescriptorPool failed");
       return VK_NULL_HANDLE;
    }
    return pool;
index e249fa9..ef21092 100644 (file)
@@ -350,11 +350,15 @@ zink_get_physical_device_info(struct zink_screen *screen)
    vkGetPhysicalDeviceMemoryProperties(screen->pdev, &info->mem_props);
 
    // enumerate device supported extensions
-   if (vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, NULL) == VK_SUCCESS) {
+   if (vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, NULL) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkEnumerateDeviceExtensionProperties failed");
+   } else {
       if (num_extensions > 0) {
          VkExtensionProperties *extensions = MALLOC(sizeof(VkExtensionProperties) * num_extensions);
          if (!extensions) goto fail;
-         vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, extensions);
+         if (vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, extensions) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkEnumerateDeviceExtensionProperties failed");
+         }
 
          for (uint32_t i = 0; i < num_extensions; ++i) {
          %for ext in extensions:
index a918f97..a47398a 100644 (file)
@@ -247,6 +247,7 @@ zink_create_fence_fd(struct pipe_context *pctx, struct pipe_fence_handle **pfenc
    *pfence = NULL;
 
    if (VKSCR(CreateSemaphore)(screen->dev, &sci, NULL, &mfence->sem) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateSemaphore failed");
       FREE(mfence);
       return;
    }
index a6f6998..f871b5f 100644 (file)
@@ -138,10 +138,14 @@ zink_create_instance(struct zink_instance_info *instance_info)
 
    // Build up the extensions from the reported ones but only for the unnamed layer
    uint32_t extension_count = 0;
-   if (vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL) == VK_SUCCESS) {
+   if (vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL) != VK_SUCCESS) {
+       mesa_loge("ZINK: vkEnumerateInstanceExtensionProperties failed");
+   } else {
        VkExtensionProperties *extension_props = malloc(extension_count * sizeof(VkExtensionProperties));
        if (extension_props) {
-           if (vkEnumerateInstanceExtensionProperties(NULL, &extension_count, extension_props) == VK_SUCCESS) {
+           if (vkEnumerateInstanceExtensionProperties(NULL, &extension_count, extension_props) != VK_SUCCESS) {
+              mesa_loge("ZINK: vkEnumerateInstanceExtensionProperties failed");
+           } else {
               for (uint32_t i = 0; i < extension_count; i++) {
         %for ext in extensions:
                 if (!strcmp(extension_props[i].extensionName, ${ext.extension_name_literal()})) {
@@ -157,10 +161,14 @@ zink_create_instance(struct zink_instance_info *instance_info)
     // Build up the layers from the reported ones
     uint32_t layer_count = 0;
 
-    if (vkEnumerateInstanceLayerProperties(&layer_count, NULL) == VK_SUCCESS) {
+    if (vkEnumerateInstanceLayerProperties(&layer_count, NULL) != VK_SUCCESS) {
+        mesa_loge("ZINK: vkEnumerateInstanceLayerProperties failed");
+    } else {
         VkLayerProperties *layer_props = malloc(layer_count * sizeof(VkLayerProperties));
         if (layer_props) {
-            if (vkEnumerateInstanceLayerProperties(&layer_count, layer_props) == VK_SUCCESS) {
+            if (vkEnumerateInstanceLayerProperties(&layer_count, layer_props) != VK_SUCCESS) {
+                mesa_loge("ZINK: vkEnumerateInstanceLayerProperties failed");
+            } else {
                for (uint32_t i = 0; i < layer_count; i++) {
 %for layer in layers:
                   if (!strcmp(layer_props[i].layerName, ${layer.extension_name_literal()})) {
@@ -229,8 +237,10 @@ zink_create_instance(struct zink_instance_info *instance_info)
 
    VkInstance instance = VK_NULL_HANDLE;
    VkResult err = vkCreateInstance(&ici, NULL, &instance);
-   if (err != VK_SUCCESS)
+   if (err != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateInstance failed");
       return VK_NULL_HANDLE;
+   }
 
    return instance;
 }
index a0a3ce5..b36aa00 100644 (file)
@@ -301,7 +301,7 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
    VkPipeline pipeline;
    if (vkCreateGraphicsPipelines(screen->dev, prog->base.pipeline_cache, 1, &pci,
                                  NULL, &pipeline) != VK_SUCCESS) {
-      debug_printf("vkCreateGraphicsPipelines failed\n");
+      mesa_loge("ZINK: vkCreateGraphicsPipelines failed");
       return VK_NULL_HANDLE;
    }
 
@@ -342,7 +342,7 @@ zink_create_compute_pipeline(struct zink_screen *screen, struct zink_compute_pro
    VkPipeline pipeline;
    if (vkCreateComputePipelines(screen->dev, comp->base.pipeline_cache, 1, &pci,
                                  NULL, &pipeline) != VK_SUCCESS) {
-      debug_printf("vkCreateComputePipelines failed\n");
+      mesa_loge("ZINK: vkCreateComputePipelines failed");
       return VK_NULL_HANDLE;
    }
    zink_screen_update_pipeline_cache(screen, &comp->base);
index 78c810a..bb9d495 100644 (file)
@@ -369,7 +369,7 @@ zink_pipeline_layout_create(struct zink_screen *screen, struct zink_program *pg,
 
    VkPipelineLayout layout;
    if (VKSCR(CreatePipelineLayout)(screen->dev, &plci, NULL, &layout) != VK_SUCCESS) {
-      debug_printf("vkCreatePipelineLayout failed!\n");
+      mesa_loge("vkCreatePipelineLayout failed");
       return VK_NULL_HANDLE;
    }
 
index 09b421d..3c0b3da 100644 (file)
@@ -293,8 +293,10 @@ zink_create_query(struct pipe_context *pctx,
       pool_create.pipelineStatistics = pipeline_statistic_convert(index);
 
    VkResult status = VKSCR(CreateQueryPool)(screen->dev, &pool_create, NULL, &query->query_pool);
-   if (status != VK_SUCCESS)
+   if (status != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateQueryPool failed");
       goto fail;
+   }
    if (query_type == PIPE_QUERY_PRIMITIVES_GENERATED) {
       /* if xfb is active, we need to use an xfb query, otherwise we need pipeline statistics */
       pool_create.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
@@ -302,14 +304,18 @@ zink_create_query(struct pipe_context *pctx,
       pool_create.queryCount = NUM_QUERIES;
 
       status = VKSCR(CreateQueryPool)(screen->dev, &pool_create, NULL, &query->xfb_query_pool[0]);
-      if (status != VK_SUCCESS)
+      if (status != VK_SUCCESS) {
+         mesa_loge("ZINK: vkCreateQueryPool failed");
          goto fail;
+      }
    } else if (query_type == PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE) {
       /* need to monitor all xfb streams */
       for (unsigned i = 0; i < ARRAY_SIZE(query->xfb_query_pool); i++) {
          status = VKSCR(CreateQueryPool)(screen->dev, &pool_create, NULL, &query->xfb_query_pool[i]);
-         if (status != VK_SUCCESS)
+         if (status != VK_SUCCESS) {
+            mesa_loge("ZINK: vkCreateQueryPool failed");
             goto fail;
+         }
       }
    }
    if (!qbo_append(pctx->screen, query))
@@ -1070,6 +1076,8 @@ zink_get_query_result_resource(struct pipe_context *pctx,
                                    0, size_flags | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT | flag) == VK_SUCCESS) {
             tc_buffer_write(pctx, pres, offset, result_size, (unsigned char*)u64 + src_offset);
             return;
+         } else {
+            mesa_loge("ZINK: vkGetQueryPoolResults failed");
          }
       }
       struct pipe_resource *staging = pipe_buffer_create(pctx->screen, 0, PIPE_USAGE_STAGING, src_offset + result_size);
@@ -1114,7 +1122,9 @@ zink_get_timestamp(struct pipe_context *pctx)
    VkCalibratedTimestampInfoEXT cti = {0};
    cti.sType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
    cti.timeDomain = VK_TIME_DOMAIN_DEVICE_EXT;
-   VKSCR(GetCalibratedTimestampsEXT)(screen->dev, 1, &cti, &timestamp, &deviation);
+   if (VKSCR(GetCalibratedTimestampsEXT)(screen->dev, 1, &cti, &timestamp, &deviation) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkGetCalibratedTimestampsEXT failed");
+   }
    timestamp_to_nanoseconds(screen, &timestamp);
    return timestamp;
 }
index 2251191..0506f35 100644 (file)
@@ -118,7 +118,7 @@ create_render_pass(struct zink_screen *screen, struct zink_render_pass_state *st
 
    VkRenderPass render_pass;
    if (VKSCR(CreateRenderPass)(screen->dev, &rpci, NULL, &render_pass) != VK_SUCCESS) {
-      debug_printf("vkCreateRenderPass failed\n");
+      mesa_loge("ZINK: vkCreateRenderPass failed");
       return VK_NULL_HANDLE;
    }
 
@@ -273,7 +273,7 @@ create_render_pass2(struct zink_screen *screen, struct zink_render_pass_state *s
 
    VkRenderPass render_pass;
    if (VKSCR(CreateRenderPass2)(screen->dev, &rpci, NULL, &render_pass) != VK_SUCCESS) {
-      debug_printf("vkCreateRenderPass2 failed\n");
+      mesa_loge("ZINK: vkCreateRenderPass2 failed");
       return VK_NULL_HANDLE;
    }
 
index 25b8b54..4edec5c 100644 (file)
@@ -516,14 +516,14 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
       VkBufferCreateInfo bci = create_bci(screen, templ, templ->bind);
 
       if (VKSCR(CreateBuffer)(screen->dev, &bci, NULL, &obj->buffer) != VK_SUCCESS) {
-         debug_printf("vkCreateBuffer failed\n");
+         mesa_loge("ZINK: vkCreateBuffer failed");
          goto fail1;
       }
 
       if (!(templ->bind & PIPE_BIND_SHADER_IMAGE)) {
          bci.usage |= VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
          if (VKSCR(CreateBuffer)(screen->dev, &bci, NULL, &obj->storage_buffer) != VK_SUCCESS) {
-            debug_printf("vkCreateBuffer failed\n");
+            mesa_loge("ZINK: vkCreateBuffer failed");
             goto fail2;
          }
       }
@@ -661,13 +661,15 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
          sycci.chromaFilter = VK_FILTER_LINEAR;
          sycci.forceExplicitReconstruction = VK_FALSE;
          VkResult res = VKSCR(CreateSamplerYcbcrConversion)(screen->dev, &sycci, NULL, &obj->sampler_conversion);
-         if (res != VK_SUCCESS)
+         if (res != VK_SUCCESS) {
+            mesa_loge("ZINK: vkCreateSamplerYcbcrConversion failed");
             goto fail1;
+         }
       }
 
       VkResult result = VKSCR(CreateImage)(screen->dev, &ici, NULL, &obj->image);
       if (result != VK_SUCCESS) {
-         debug_printf("vkCreateImage failed\n");
+         mesa_loge("ZINK: vkCreateImage failed");
          goto fail1;
       }
 
@@ -676,7 +678,7 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
          modprops.sType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
          result = VKSCR(GetImageDrmFormatModifierPropertiesEXT)(screen->dev, obj->image, &modprops);
          if (result != VK_SUCCESS) {
-            debug_printf("GetImageDrmFormatModifierPropertiesEXT failed\n");
+            mesa_loge("ZINK: vkGetImageDrmFormatModifierPropertiesEXT failed");
             goto fail1;
          }
          obj->modifier = modprops.drmFormatModifier;
@@ -837,10 +839,14 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
 
    if (templ->target == PIPE_BUFFER) {
       if (!(templ->flags & PIPE_RESOURCE_FLAG_SPARSE)) {
-         if (VKSCR(BindBufferMemory)(screen->dev, obj->buffer, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS)
+         if (VKSCR(BindBufferMemory)(screen->dev, obj->buffer, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkBindBufferMemory failed");
             goto fail3;
-         if (obj->storage_buffer && VKSCR(BindBufferMemory)(screen->dev, obj->storage_buffer, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS)
+         }
+         if (obj->storage_buffer && VKSCR(BindBufferMemory)(screen->dev, obj->storage_buffer, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkBindBufferMemory failed");
             goto fail3;
+         }
       }
    } else {
       if (num_planes > 1) {
@@ -858,12 +864,16 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
             planes[i].planeAspect = plane_aspects[i];
             offset += obj->plane_sizes[i];
          }
-         if (VKSCR(BindImageMemory2)(screen->dev, num_planes, infos) != VK_SUCCESS)
+         if (VKSCR(BindImageMemory2)(screen->dev, num_planes, infos) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkBindImageMemory2 failed");
             goto fail3;
+         }
       } else {
          if (!(templ->flags & PIPE_RESOURCE_FLAG_SPARSE))
-            if (VKSCR(BindImageMemory)(screen->dev, obj->image, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS)
+            if (VKSCR(BindImageMemory)(screen->dev, obj->image, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS) {
+               mesa_loge("ZINK: vkBindImageMemory failed");
                goto fail3;
+            }
       }
    }
    return obj;
@@ -1141,8 +1151,10 @@ zink_resource_get_handle(struct pipe_screen *pscreen,
       else
          fd_info.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
       VkResult result = VKSCR(GetMemoryFdKHR)(screen->dev, &fd_info, &fd);
-      if (result != VK_SUCCESS)
+      if (result != VK_SUCCESS) {
+         mesa_loge("ZINK: vkGetMemoryFdKHR failed");
          return false;
+      }
       if (whandle->type == WINSYS_HANDLE_TYPE_KMS) {
          uint32_t h;
          bool success = drmPrimeFDToHandle(screen->drm_fd, fd, &h) == 0;
@@ -1530,6 +1542,7 @@ zink_buffer_map(struct pipe_context *pctx,
       VkDeviceSize offset = res->obj->offset + trans->offset;
       VkMappedMemoryRange range = zink_resource_init_mem_range(screen, res->obj, offset, size);
       if (VKSCR(InvalidateMappedMemoryRanges)(screen->dev, 1, &range) != VK_SUCCESS) {
+         mesa_loge("ZINK: vkInvalidateMappedMemoryRanges failed");
          zink_bo_unmap(screen, res->obj->bo);
          goto fail;
       }
@@ -1644,7 +1657,9 @@ zink_image_map(struct pipe_context *pctx,
       if (!res->obj->coherent) {
          VkDeviceSize size = (VkDeviceSize)box->width * box->height * desc->block.bits / 8;
          VkMappedMemoryRange range = zink_resource_init_mem_range(screen, res->obj, res->obj->offset + offset, size);
-         VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range);
+         if (VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkFlushMappedMemoryRanges failed");
+         }
       }
       ptr = ((uint8_t *)ptr) + offset;
    }
@@ -1691,7 +1706,9 @@ zink_transfer_flush_region(struct pipe_context *pctx,
       }
       if (!m->obj->coherent) {
          VkMappedMemoryRange range = zink_resource_init_mem_range(screen, m->obj, m->obj->offset, m->obj->size);
-         VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range);
+         if (VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range) != VK_SUCCESS) {
+            mesa_loge("ZINK: vkFlushMappedMemoryRanges failed");
+         }
       }
       if (trans->staging_res) {
          struct zink_resource *staging_res = zink_resource(trans->staging_res);
index 854e86e..d25c36e 100644 (file)
@@ -183,8 +183,10 @@ cache_put_job(void *data, void *gdata, int thread_index)
    struct zink_program *pg = data;
    struct zink_screen *screen = gdata;
    size_t size = 0;
-   if (VKSCR(GetPipelineCacheData)(screen->dev, pg->pipeline_cache, &size, NULL) != VK_SUCCESS)
+   if (VKSCR(GetPipelineCacheData)(screen->dev, pg->pipeline_cache, &size, NULL) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkGetPipelineCacheData failed");
       return;
+   }
    if (pg->pipeline_cache_size == size)
       return;
    void *pipeline_data = malloc(size);
@@ -196,6 +198,8 @@ cache_put_job(void *data, void *gdata, int thread_index)
       cache_key key;
       disk_cache_compute_key(screen->disk_cache, pg->sha1, sizeof(pg->sha1), key);
       disk_cache_put_nocopy(screen->disk_cache, key, pipeline_data, size, NULL);
+   } else {
+      mesa_loge("ZINK: vkGetPipelineCacheData failed");
    }
 }
 
@@ -226,7 +230,9 @@ cache_get_job(void *data, void *gdata, int thread_index)
    disk_cache_compute_key(screen->disk_cache, pg->sha1, sizeof(pg->sha1), key);
    pcci.pInitialData = disk_cache_get(screen->disk_cache, key, &pg->pipeline_cache_size);
    pcci.initialDataSize = pg->pipeline_cache_size;
-   VKSCR(CreatePipelineCache)(screen->dev, &pcci, NULL, &pg->pipeline_cache);
+   if (VKSCR(CreatePipelineCache)(screen->dev, &pcci, NULL, &pg->pipeline_cache) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreatePipelineCache failed");
+   }
    free((void*)pcci.pInitialData);
 }
 
@@ -1252,8 +1258,10 @@ choose_pdev(struct zink_screen *screen)
    VkPhysicalDevice *pdevs;
    bool is_cpu = false;
    VkResult result = vkEnumeratePhysicalDevices(screen->instance, &pdev_count, NULL);
-   if (result != VK_SUCCESS)
+   if (result != VK_SUCCESS) {
+      mesa_loge("ZINK: vkEnumeratePhysicalDevices failed");
       return is_cpu;
+   }
 
    assert(pdev_count > 0);
 
@@ -1480,11 +1488,15 @@ check_have_device_time(struct zink_screen *screen)
 {
    uint32_t num_domains = 0;
    VkTimeDomainEXT domains[8]; //current max is 4
-   VKSCR(GetPhysicalDeviceCalibrateableTimeDomainsEXT)(screen->pdev, &num_domains, NULL);
+   if (VKSCR(GetPhysicalDeviceCalibrateableTimeDomainsEXT)(screen->pdev, &num_domains, NULL) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkGetPhysicalDeviceCalibrateableTimeDomainsEXT failed");
+   }
    assert(num_domains > 0);
    assert(num_domains < ARRAY_SIZE(domains));
 
-   VKSCR(GetPhysicalDeviceCalibrateableTimeDomainsEXT)(screen->pdev, &num_domains, domains);
+   if (VKSCR(GetPhysicalDeviceCalibrateableTimeDomainsEXT)(screen->pdev, &num_domains, domains) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkGetPhysicalDeviceCalibrateableTimeDomainsEXT failed");
+   }
 
    /* VK_TIME_DOMAIN_DEVICE_EXT is used for the ctx->get_timestamp hook and is the only one we really need */
    for (unsigned i = 0; i < num_domains; i++) {
@@ -1557,12 +1569,13 @@ create_debug(struct zink_screen *screen)
 
    VkDebugUtilsMessengerEXT vkDebugUtilsCallbackEXT = VK_NULL_HANDLE;
 
-   VKSCR(CreateDebugUtilsMessengerEXT)(
-       screen->instance,
-       &vkDebugUtilsMessengerCreateInfoEXT,
-       NULL,
-       &vkDebugUtilsCallbackEXT
-   );
+   if (VKSCR(CreateDebugUtilsMessengerEXT)(
+           screen->instance,
+           &vkDebugUtilsMessengerCreateInfoEXT,
+           NULL,
+           &vkDebugUtilsCallbackEXT) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateDebugUtilsMessengerEXT failed");
+   }
 
    screen->debugUtilsCallbackHandle = vkDebugUtilsCallbackEXT;
 
@@ -1662,6 +1675,9 @@ populate_format_props(struct zink_screen *screen)
                                                                 VK_IMAGE_TILING_OPTIMAL,
                                                                 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
                                                                 0, &image_props);
+   if (ret != VK_SUCCESS) {
+      mesa_loge("ZINK: vkGetPhysicalDeviceImageFormatProperties failed");
+   }
    screen->need_2D_zs = ret != VK_SUCCESS;
 }
 
@@ -1685,6 +1701,8 @@ zink_screen_init_semaphore(struct zink_screen *screen)
       screen->prev_sem = screen->sem;
       screen->sem = sem;
       return true;
+   } else {
+      mesa_loge("ZINK: vkCreateSemaphore failed");
    }
    screen->info.have_KHR_timeline_semaphore = false;
    return false;
@@ -1730,7 +1748,7 @@ noop_submit(void *data, void *gdata, int thread_index)
    simple_mtx_lock(&n->screen->queue_lock);
    if (n->VKSCR(QueueSubmit)(n->screen->threaded ? n->screen->thread_queue : n->screen->queue,
                      1, &si, n->fence) != VK_SUCCESS) {
-      debug_printf("ZINK: vkQueueSubmit() failed\n");
+      mesa_loge("ZINK: vkQueueSubmit failed");
       n->screen->device_lost = true;
    }
    simple_mtx_unlock(&n->screen->queue_lock);
@@ -1760,8 +1778,10 @@ zink_screen_batch_id_wait(struct zink_screen *screen, uint32_t batch_id, uint64_
    util_queue_fence_init(&fence);
    fci.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
 
-   if (VKSCR(CreateFence)(screen->dev, &fci, NULL, &n.fence) != VK_SUCCESS)
+   if (VKSCR(CreateFence)(screen->dev, &fci, NULL, &n.fence) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateFence failed");
       return false;
+   }
 
    n.screen = screen;
    if (screen->threaded) {
@@ -1801,6 +1821,8 @@ zink_get_loader_version(void)
       uint32_t loader_version_temp = VK_API_VERSION_1_0;
       if (VK_SUCCESS == (*vk_EnumerateInstanceVersion)(&loader_version_temp)) {
          loader_version = loader_version_temp;
+      } else {
+         mesa_loge("ZINK: vkEnumerateInstanceVersion failed");
       }
    }
 
@@ -1999,7 +2021,9 @@ zink_create_logical_device(struct zink_screen *screen)
    dci.ppEnabledExtensionNames = screen->info.extensions;
    dci.enabledExtensionCount = screen->info.num_extensions;
 
-   vkCreateDevice(screen->pdev, &dci, NULL, &dev);
+   if (vkCreateDevice(screen->pdev, &dci, NULL, &dev) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateDevice failed");
+   }
    return dev;
 }
 
index 9c6106f..e1386f4 100644 (file)
@@ -165,6 +165,7 @@ create_surface(struct pipe_context *pctx,
 
    if (VKSCR(CreateImageView)(screen->dev, ivci, NULL,
                          &surface->image_view) != VK_SUCCESS) {
+      mesa_loge("ZINK: vkCreateImageView failed");
       FREE(surface);
       return NULL;
    }
@@ -360,7 +361,7 @@ zink_rebind_surface(struct zink_context *ctx, struct pipe_surface **psurface)
    _mesa_hash_table_remove(&res->surface_cache, entry);
    VkImageView image_view;
    if (VKSCR(CreateImageView)(screen->dev, &ivci, NULL, &image_view) != VK_SUCCESS) {
-      debug_printf("zink: failed to create new imageview");
+      mesa_loge("ZINK: failed to create new imageview");
       simple_mtx_unlock(&res->surface_mtx);
       return false;
    }