733 std::string architecture;
737 std::string description;
740[[nodiscard]] WGPUInstance createInstance(
741 WGPUInstanceDescriptor
const* descriptor =
nullptr);
743[[nodiscard]] WGPUAdapter createAdapter(
744 WGPUInstance instance, WGPUSurface compatible_surface =
nullptr,
745 WGPUPowerPreference power_preference = WGPUPowerPreference_Undefined,
746 WGPUBackendType backend_type = WGPUBackendType_Undefined,
747 WGPUBool force_fallback_adapter =
false);
749[[nodiscard]] WGPUDevice createDevice(WGPUAdapter adapter,
750 WGPULimits
const* required_limits =
nullptr);
752[[nodiscard]] WGPUQueue queue(WGPUDevice device);
754[[nodiscard]] std::size_t bufferPaddedSize(std::size_t size);
756[[nodiscard]] std::size_t bufferPaddedSize(std::size_t width,
757 std::size_t bytes_per_pixel);
759[[nodiscard]] WGPUBuffer createBuffer(WGPUDevice device, std::string label,
760 std::size_t size, WGPUBufferUsage usage,
761 bool mapped_at_creation =
false);
763[[nodiscard]] WGPUBuffer createBufferInit(WGPUDevice device, WGPUBufferUsage usage,
764 void* content, std::size_t content_size);
766[[nodiscard]] WGPUSurfaceCapabilities surfaceCapabilities(WGPUSurface surface,
767 WGPUAdapter adapter);
769[[nodiscard]] WGPUShaderModule loadShaderModule(WGPUDevice device,
770 std::filesystem::path
const& path);
774void release(WGPUInstance instance);
776void release(WGPUSurface surface);
778void release(WGPUAdapter adapter);
780void release(WGPUDevice device);
782void release(WGPUQueue queue);
784void release(WGPUShaderModule shader_module);
786void release(WGPUBindGroupLayout bind_group_layout);
788void release(WGPUPipelineLayout pipeline_layout);
790void release(WGPURenderPipeline render_pipeline);
792void release(WGPUTexture texture);
794void release(WGPUTextureView texture_view);
796void release(WGPURenderPassEncoder render_pass_encoder);
798void release(WGPUCommandEncoder command_encoder);
800void release(WGPUCommandBuffer command_buffer);
802void release(WGPUSampler sampler);
804[[nodiscard]]
GPUInfo gpuInfo(WGPUAdapter adapter =
nullptr);
806[[nodiscard]] std::vector<GPUInfo> gpusInfo();