nvk: Return a VkResult from nvk_shader_upload()
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Tue, 31 Jan 2023 02:12:00 +0000 (20:12 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:32:00 +0000 (21:32 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/vulkan/nvk_compute_pipeline.c
src/nouveau/vulkan/nvk_graphics_pipeline.c
src/nouveau/vulkan/nvk_shader.c
src/nouveau/vulkan/nvk_shader.h

index 0fc6b86..a8a053c 100644 (file)
@@ -108,7 +108,11 @@ nvk_compute_pipeline_create(struct nvk_device *device,
    if (result != VK_SUCCESS)
       goto fail;
 
-   nvk_shader_upload(device, &pipeline->base.shaders[MESA_SHADER_COMPUTE]);
+   result = nvk_shader_upload(device,
+                              &pipeline->base.shaders[MESA_SHADER_COMPUTE]);
+   if (result != VK_SUCCESS)
+      goto fail;
+
    gv100_compute_setup_launch_desc_template(pipeline->qmd_template, &pipeline->base.shaders[MESA_SHADER_COMPUTE]);
    *pPipeline = nvk_pipeline_to_handle(&pipeline->base);
    return VK_SUCCESS;
index 4e4d89b..dc620ce 100644 (file)
@@ -239,7 +239,9 @@ nvk_graphics_pipeline_create(struct nvk_device *device,
       if (result != VK_SUCCESS)
          goto fail;
 
-      nvk_shader_upload(device, &pipeline->base.shaders[stage]);
+      result = nvk_shader_upload(device, &pipeline->base.shaders[stage]);
+      if (result != VK_SUCCESS)
+         goto fail;
    }
 
    struct nv_push push;
index 514a0b1..0353908 100644 (file)
@@ -711,7 +711,7 @@ nvk_compile_nir(struct nvk_physical_device *device, nir_shader *nir,
    return VK_SUCCESS;
 }
 
-void
+VkResult
 nvk_shader_upload(struct nvk_device *dev, struct nvk_shader *shader)
 {
    uint32_t hdr_size = 0;
@@ -741,4 +741,6 @@ nvk_shader_upload(struct nvk_device *dev, struct nvk_shader *shader)
    if (debug_get_bool_option("NV50_PROG_DEBUG", false))
       nvk_shader_dump(shader);
 #endif
+
+   return VK_SUCCESS;
 }
index b649dee..35c4584 100644 (file)
@@ -102,6 +102,6 @@ VkResult
 nvk_compile_nir(struct nvk_physical_device *device, nir_shader *nir,
                 struct nvk_shader *shader);
 
-void
+VkResult
 nvk_shader_upload(struct nvk_device *dev, struct nvk_shader *shader);
 #endif