vulkan: add some more error checks

This commit is contained in:
Wim Taymans 2022-05-31 11:33:51 +02:00
parent 6e681fc98d
commit 24fc972164

View file

@ -97,6 +97,12 @@ static int vkresult_to_errno(VkResult result)
return _res; \ return _res; \
} \ } \
} }
#define CHECK(f) \
{ \
int _res = (f); \
if (_res < 0) \
return _res; \
}
static int createInstance(struct vulkan_state *s) static int createInstance(struct vulkan_state *s)
{ {
@ -309,7 +315,8 @@ static int updateDescriptors(struct vulkan_state *s)
.pBufferInfo = &descriptorBufferInfo[i], .pBufferInfo = &descriptorBufferInfo[i],
}; };
} }
vkUpdateDescriptorSets(s->device, s->n_streams, writeDescriptorSet, 0, NULL); vkUpdateDescriptorSets(s->device, s->n_streams,
writeDescriptorSet, 0, NULL);
return 0; return 0;
} }
@ -568,12 +575,12 @@ int spa_vulkan_init_stream(struct vulkan_state *s, struct vulkan_stream *stream,
int spa_vulkan_prepare(struct vulkan_state *s) int spa_vulkan_prepare(struct vulkan_state *s)
{ {
if (!s->prepared) { if (!s->prepared) {
createInstance(s); CHECK(createInstance(s));
findPhysicalDevice(s); CHECK(findPhysicalDevice(s));
createDevice(s); CHECK(createDevice(s));
createDescriptors(s); CHECK(createDescriptors(s));
createComputePipeline(s, "spa/plugins/vulkan/shaders/main.spv"); CHECK(createComputePipeline(s, "spa/plugins/vulkan/shaders/main.spv"));
createCommandBuffer(s); CHECK(createCommandBuffer(s));
s->prepared = true; s->prepared = true;
} }
return 0; return 0;
@ -642,8 +649,8 @@ int spa_vulkan_ready(struct vulkan_state *s)
int spa_vulkan_process(struct vulkan_state *s) int spa_vulkan_process(struct vulkan_state *s)
{ {
updateDescriptors(s); CHECK(updateDescriptors(s));
runCommandBuffer(s); CHECK(runCommandBuffer(s));
return 0; return 0;
} }