diff --git a/spa/plugins/vulkan/vulkan-compute-source.c b/spa/plugins/vulkan/vulkan-compute-source.c index 2c8615582..3e9e6e1f3 100644 --- a/spa/plugins/vulkan/vulkan-compute-source.c +++ b/spa/plugins/vulkan/vulkan-compute-source.c @@ -399,12 +399,8 @@ static int impl_node_send_command(void *object, const struct spa_command *comman spa_vulkan_start(&this->state); break; } + case SPA_NODE_COMMAND_Suspend: case SPA_NODE_COMMAND_Pause: - if (!port->have_format) - return -EIO; - if (port->n_buffers == 0) - return -EIO; - if (!this->started) return 0; diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 6532125af..9e3b05de1 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -469,6 +469,15 @@ static int client_node_command(void *object, const struct spa_command *command) pw_proxy_error(proxy, res, "start failed"); } break; + + case SPA_NODE_COMMAND_Suspend: + pw_log_debug("node %p: suspend", proxy); + if ((res = pw_node_set_state(data->node, PW_NODE_STATE_SUSPENDED)) < 0) { + pw_log_warn("node %p: suspend failed", proxy); + pw_proxy_error(proxy, res, "suspend failed"); + } + break; + default: pw_log_warn("unhandled node command %d", SPA_NODE_COMMAND_ID(command)); res = -ENOTSUP;