| // Copyright 2022 The IREE Authors | |
| // | |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #include "experimental/webgpu/platform/webgpu.h" | |
| //===----------------------------------------------------------------------===// | |
| // Implementation compatibility layer | |
| //===----------------------------------------------------------------------===// | |
| #define WGPU_EMSCRIPTEN_INSTANCE ((WGPUInstance)((uintptr_t)0xABADD00Du)) | |
| WGPUInstance wgpuCreateInstance(WGPUInstanceDescriptor const* descriptor) { | |
| // Emscripten does not have instances (yet?) | |
| // We use a sentinel value here so that we can do null checks in places for | |
| // implementations that do use instances. | |
| return WGPU_EMSCRIPTEN_INSTANCE; | |
| } | |
| void iree_wgpuBindGroupDrop(WGPUBindGroup bindGroup) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuBindGroupLayoutDrop(WGPUBindGroupLayout bindGroupLayout) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuBufferDrop(WGPUBuffer buffer) { wgpuBufferDestroy(buffer); } | |
| void iree_wgpuCommandBufferDrop(WGPUCommandBuffer commandBuffer) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuCommandEncoderDrop(WGPUCommandEncoder commandEncoder) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuComputePipelineDrop(WGPUComputePipeline computePipeline) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuPipelineLayoutDrop(WGPUPipelineLayout pipelineLayout) { | |
| // Not implemented on the web / Emscripten. | |
| } | |
| void iree_wgpuQuerySetDrop(WGPUQuerySet querySet) { | |
| wgpuQuerySetDestroy(querySet); | |
| } | |
| void iree_wgpuShaderModuleDrop(WGPUShaderModule shaderModule) { | |
| // Not implemented on the web / Emscripten. | |
| } |