mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-10-27 08:21:30 +00:00
ggml WebGPU: remove userdata from request adapter callback (#15527)
* ggml WebGPU: remove userdata from request adapter callback This commit removes the `userdata` parameter from the WebGPU request adapter callback in `ggml-webgpu.cpp`. Instead, the lambda function captures the `webgpu_context` directly. The motivation for this change is to simplify the code and improve readability. * inline the callback lambda into the RequestAdapter call This commit removes the callback lambda variable and inlines it directly into the RequestAdapter call.
This commit is contained in:
@@ -1154,17 +1154,15 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t
|
|||||||
webgpu_context ctx = reg_ctx->webgpu_ctx;
|
webgpu_context ctx = reg_ctx->webgpu_ctx;
|
||||||
|
|
||||||
wgpu::RequestAdapterOptions options = {};
|
wgpu::RequestAdapterOptions options = {};
|
||||||
auto callback =
|
|
||||||
[](wgpu::RequestAdapterStatus status, wgpu::Adapter adapter, const char * message, void * userdata) {
|
|
||||||
if (status != wgpu::RequestAdapterStatus::Success) {
|
|
||||||
GGML_LOG_ERROR("ggml_webgpu: Failed to get an adapter: %s\n", message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*static_cast<wgpu::Adapter *>(userdata) = std::move(adapter);
|
|
||||||
};
|
|
||||||
void * userdata = &ctx->adapter;
|
|
||||||
ctx->instance.WaitAny(
|
ctx->instance.WaitAny(
|
||||||
ctx->instance.RequestAdapter(&options, wgpu::CallbackMode::AllowSpontaneous, callback, userdata), UINT64_MAX);
|
ctx->instance.RequestAdapter(&options, wgpu::CallbackMode::AllowSpontaneous,
|
||||||
|
[&ctx](wgpu::RequestAdapterStatus status, wgpu::Adapter adapter, const char * message) {
|
||||||
|
if (status != wgpu::RequestAdapterStatus::Success) {
|
||||||
|
GGML_LOG_ERROR("ggml_webgpu: Failed to get an adapter: %s\n", message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ctx->adapter = std::move(adapter);
|
||||||
|
}), UINT64_MAX);
|
||||||
GGML_ASSERT(ctx->adapter != nullptr);
|
GGML_ASSERT(ctx->adapter != nullptr);
|
||||||
|
|
||||||
ctx->adapter.GetLimits(&ctx->limits);
|
ctx->adapter.GetLimits(&ctx->limits);
|
||||||
|
|||||||
Reference in New Issue
Block a user