mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
parent
ed7d9de439
commit
c2fb18afb8
90
Cargo.lock
generated
90
Cargo.lock
generated
@ -708,6 +708,12 @@ version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
|
||||
|
||||
[[package]]
|
||||
name = "cooked-waker"
|
||||
version = "5.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f"
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.9.4"
|
||||
@ -970,26 +976,32 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deno_console"
|
||||
version = "0.125.0"
|
||||
version = "0.143.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "92543d4f4d82f2350123bd4b60e97a73aba1a9bbca8c931e827459096dedabba"
|
||||
checksum = "1f770d8deb0eb0bfd596d242d9eaef5312ef57f0130964cb53c7f6a8107d13be"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deno_core"
|
||||
version = "0.232.0"
|
||||
version = "0.272.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "229ffd108e028b148a1a5a6122f771bc7c37094170226f44b8b93b3a9b79d114"
|
||||
checksum = "07093891f2af763023614cfe2d1ce5f9ce5a7920c4fcf2f00911bd0d93083523"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bincode",
|
||||
"bit-set",
|
||||
"bit-vec",
|
||||
"bytes",
|
||||
"cooked-waker",
|
||||
"deno_core_icudata",
|
||||
"deno_ops",
|
||||
"deno_unsync",
|
||||
"futures",
|
||||
"libc",
|
||||
"log",
|
||||
"memoffset 0.9.1",
|
||||
"parking_lot",
|
||||
"pin-project",
|
||||
"serde",
|
||||
@ -997,16 +1009,23 @@ dependencies = [
|
||||
"serde_v8",
|
||||
"smallvec",
|
||||
"sourcemap",
|
||||
"static_assertions",
|
||||
"tokio",
|
||||
"url",
|
||||
"v8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deno_ops"
|
||||
version = "0.108.0"
|
||||
name = "deno_core_icudata"
|
||||
version = "0.0.73"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f7dde627916f8539f3f0d2e754dda40810c8ca4d655f2eaac1ef54785a12fd27"
|
||||
checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1"
|
||||
|
||||
[[package]]
|
||||
name = "deno_ops"
|
||||
version = "0.148.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5bc73fc07ad26e71715d5a726d1dd228587c0d121a591b1931a0fcf958a2ec3b"
|
||||
dependencies = [
|
||||
"proc-macro-rules",
|
||||
"proc-macro2",
|
||||
@ -1028,9 +1047,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deno_url"
|
||||
version = "0.125.0"
|
||||
version = "0.143.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "25ec92af225230fe4a429de0b5891f35b1ba5f143f8c1605bb7b9d1cb767ac73"
|
||||
checksum = "39d9e6ffd6a7157bfd3cf1385c59232e49587c9bbb898e64010f7f082242a203"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"serde",
|
||||
@ -1039,9 +1058,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deno_web"
|
||||
version = "0.156.0"
|
||||
version = "0.174.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3aeef7522f46b3442e24a750ef914ca54aade2110d6540a66e4ea17b4eb68bb7"
|
||||
checksum = "708666b5b346e6880c1372006615814db7fc5ef36bd1785f0b0e4f8617082999"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base64-simd 0.8.0",
|
||||
@ -1071,9 +1090,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deno_webidl"
|
||||
version = "0.125.0"
|
||||
version = "0.143.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "74b1a86e9a1dec0dc5d4dc132faee72ac50297f41e30f7cab57dd52dda380eed"
|
||||
checksum = "bddad93aa68e3c3c2d36976cd401af27a6ce750c23060e02401daf240f2acbe2"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
]
|
||||
@ -1381,9 +1400,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "fslock"
|
||||
version = "0.1.8"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57eafdd0c16f57161105ae1b98a1238f97645f2f588438b2949c99a2af9616bf"
|
||||
checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi",
|
||||
@ -1675,6 +1694,15 @@ dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gzip-header"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "half"
|
||||
version = "2.4.0"
|
||||
@ -2048,6 +2076,15 @@ dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.27.0"
|
||||
@ -2251,7 +2288,7 @@ dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2264,7 +2301,7 @@ dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -3057,12 +3094,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_v8"
|
||||
version = "0.141.0"
|
||||
version = "0.181.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bc689cb316d67b200e9f7449ce76cceb7e483e0f828d1a9c3d057c4367b6c26e"
|
||||
checksum = "fd25bb66a20a1a405fb3733aaaf8a8a77a14fd55c8f5fd9db2a2e95bbd7eeab9"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"derive_more",
|
||||
"num-bigint",
|
||||
"serde",
|
||||
"smallvec",
|
||||
@ -3656,12 +3692,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "v8"
|
||||
version = "0.81.0"
|
||||
version = "0.89.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b75f5f378b9b54aff3b10da8170d26af4cfd217f644cf671badcd13af5db4beb"
|
||||
checksum = "fe2197fbef82c98f7953d13568a961d4e1c663793b5caf3c74455a13918cdf33"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"bitflags 2.4.2",
|
||||
"fslock",
|
||||
"gzip-header",
|
||||
"home",
|
||||
"miniz_oxide",
|
||||
"once_cell",
|
||||
"which",
|
||||
]
|
||||
@ -4209,14 +4248,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "which"
|
||||
version = "4.4.2"
|
||||
version = "5.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
|
||||
checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
|
||||
dependencies = [
|
||||
"either",
|
||||
"home",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
10
Cargo.toml
10
Cargo.toml
@ -165,11 +165,11 @@ web-sys = "0.3.69"
|
||||
web-time = "0.2.4"
|
||||
|
||||
# deno dependencies
|
||||
deno_console = "0.125.0"
|
||||
deno_core = "0.232.0"
|
||||
deno_url = "0.125.0"
|
||||
deno_web = "0.156.0"
|
||||
deno_webidl = "0.125.0"
|
||||
deno_console = "0.143.0"
|
||||
deno_core = "0.272.0"
|
||||
deno_url = "0.143.0"
|
||||
deno_web = "0.174.0"
|
||||
deno_webidl = "0.143.0"
|
||||
deno_webgpu = { version = "0.85.0", path = "./deno_webgpu" }
|
||||
tokio = "1.36.0"
|
||||
termcolor = "1.4.1"
|
||||
|
||||
11
cts_runner/src/bootstrap.js
vendored
11
cts_runner/src/bootstrap.js
vendored
@ -5,8 +5,7 @@
|
||||
//
|
||||
delete Object.prototype.__proto__;
|
||||
|
||||
const core = Deno.core;
|
||||
const primordials = globalThis.__bootstrap.primordials;
|
||||
import { core, primordials } from "ext:core/mod.js";
|
||||
const {
|
||||
Error,
|
||||
ObjectDefineProperty,
|
||||
@ -25,9 +24,10 @@ import * as base64 from "ext:deno_web/05_base64.js";
|
||||
import * as encoding from "ext:deno_web/08_text_encoding.js";
|
||||
import { Console } from "ext:deno_console/01_console.js";
|
||||
import * as url from "ext:deno_url/00_url.js";
|
||||
import DOMException from "ext:deno_web/01_dom_exception.js";
|
||||
import { DOMException } from "ext:deno_web/01_dom_exception.js";
|
||||
import * as performance from "ext:deno_web/15_performance.js";
|
||||
import * as webgpu from "ext:deno_webgpu/01_webgpu.js";
|
||||
import * as imageData from "ext:deno_web/16_image_data.js";
|
||||
|
||||
// imports needed to pass module evaluation
|
||||
import "ext:deno_url/01_urlpattern.js";
|
||||
@ -42,8 +42,6 @@ import "ext:deno_web/14_compression.js";
|
||||
|
||||
let globalThis_;
|
||||
|
||||
const { BadResource, Interrupted } = core;
|
||||
|
||||
class NotFound extends Error {
|
||||
constructor(msg) {
|
||||
super(msg);
|
||||
@ -183,6 +181,7 @@ const windowOrWorkerGlobalScope = {
|
||||
clearInterval: util.writable(timers.clearInterval),
|
||||
clearTimeout: util.writable(timers.clearTimeout),
|
||||
performance: util.writable(performance.performance),
|
||||
ImageData: core.propNonEnumerable(imageData.ImageData),
|
||||
|
||||
GPU: util.nonEnumerable(webgpu.GPU),
|
||||
GPUAdapter: util.nonEnumerable(webgpu.GPUAdapter),
|
||||
@ -248,10 +247,8 @@ core.registerErrorClass("NotFound", NotFound);
|
||||
core.registerErrorClass("AlreadyExists", AlreadyExists);
|
||||
core.registerErrorClass("InvalidData", InvalidData);
|
||||
core.registerErrorClass("TimedOut", TimedOut);
|
||||
core.registerErrorClass("Interrupted", Interrupted);
|
||||
core.registerErrorClass("WriteZero", WriteZero);
|
||||
core.registerErrorClass("UnexpectedEof", UnexpectedEof);
|
||||
core.registerErrorClass("BadResource", BadResource);
|
||||
core.registerErrorClass("NotSupported", NotSupported);
|
||||
core.registerErrorBuilder(
|
||||
"DOMExceptionOperationError",
|
||||
|
||||
@ -45,13 +45,13 @@ mod native {
|
||||
],
|
||||
..Default::default()
|
||||
};
|
||||
let mut isolate = JsRuntime::new(options);
|
||||
let mut js_runtime = JsRuntime::new(options);
|
||||
let args = args_iter.collect::<Vec<String>>();
|
||||
let cfg = json!({"args": args, "cwd": env::current_dir().unwrap().to_string_lossy() });
|
||||
|
||||
{
|
||||
let context = isolate.main_context();
|
||||
let scope = &mut isolate.handle_scope();
|
||||
let context = js_runtime.main_context();
|
||||
let scope = &mut js_runtime.handle_scope();
|
||||
let context_local = v8::Local::new(scope, context);
|
||||
let global_obj = context_local.global(scope);
|
||||
let bootstrap_str = v8::String::new(scope, "bootstrap").unwrap();
|
||||
@ -65,20 +65,12 @@ mod native {
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
isolate.op_state().borrow_mut().put(Permissions {});
|
||||
js_runtime.op_state().borrow_mut().put(Permissions {});
|
||||
|
||||
let mod_id = isolate.load_main_module(&specifier, None).await?;
|
||||
let mod_rx = isolate.mod_evaluate(mod_id);
|
||||
|
||||
let rx = tokio::spawn(async move {
|
||||
match mod_rx.await {
|
||||
Ok(err @ Err(_)) => err,
|
||||
_ => Ok(()),
|
||||
}
|
||||
});
|
||||
|
||||
isolate.run_event_loop(false).await?;
|
||||
rx.await.unwrap()?;
|
||||
let mod_id = js_runtime.load_main_es_module(&specifier).await?;
|
||||
let result = js_runtime.mod_evaluate(mod_id);
|
||||
js_runtime.run_event_loop(Default::default()).await?;
|
||||
result.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -87,7 +79,7 @@ mod native {
|
||||
cts_runner,
|
||||
deps = [deno_webidl, deno_web],
|
||||
ops = [op_exit, op_read_file_sync, op_write_file_sync],
|
||||
esm_entry_point = "ext:cts_runner/bootstrap.js",
|
||||
esm_entry_point = "ext:cts_runner/src/bootstrap.js",
|
||||
esm = ["src/bootstrap.js"],
|
||||
);
|
||||
|
||||
|
||||
@ -6,12 +6,11 @@
|
||||
/// <reference path="../web/lib.deno_web.d.ts" />
|
||||
/// <reference path="./lib.deno_webgpu.d.ts" />
|
||||
|
||||
const core = globalThis.Deno.core;
|
||||
const ops = core.ops;
|
||||
const primordials = globalThis.__bootstrap.primordials;
|
||||
import { core, primordials } from "ext:core/mod.js";
|
||||
import * as ops from "ext:core/ops";
|
||||
import * as webidl from "ext:deno_webidl/00_webidl.js";
|
||||
import { EventTarget } from "ext:deno_web/02_event.js";
|
||||
import DOMException from "ext:deno_web/01_dom_exception.js";
|
||||
import { DOMException } from "ext:deno_web/01_dom_exception.js";
|
||||
import { createFilteredInspectProxy } from "ext:deno_console/01_console.js";
|
||||
const {
|
||||
ArrayBuffer,
|
||||
@ -247,8 +246,7 @@ class GPU {
|
||||
"Argument 1",
|
||||
);
|
||||
|
||||
const { err, ...data } = await core.opAsync(
|
||||
"op_webgpu_request_adapter",
|
||||
const { err, ...data } = await ops.op_webgpu_request_adapter(
|
||||
options.powerPreference,
|
||||
options.forceFallbackAdapter,
|
||||
);
|
||||
@ -338,8 +336,7 @@ class GPUAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
const { rid, features, limits } = await core.opAsync(
|
||||
"op_webgpu_request_device",
|
||||
const { rid, features, limits } = await ops.op_webgpu_request_device(
|
||||
this[_adapter].rid,
|
||||
descriptor.label,
|
||||
requiredFeatures,
|
||||
@ -377,10 +374,7 @@ class GPUAdapter {
|
||||
architecture,
|
||||
device,
|
||||
description,
|
||||
} = await core.opAsync(
|
||||
"op_webgpu_request_adapter_info",
|
||||
this[_adapter].rid,
|
||||
);
|
||||
} = await ops.op_webgpu_request_adapter_info(this[_adapter].rid);
|
||||
|
||||
const adapterInfo = webidl.createBranded(GPUAdapterInfo);
|
||||
adapterInfo[_vendor] = unmaskHints.includes("vendor") ? vendor : "";
|
||||
@ -677,6 +671,7 @@ class GPUSupportedFeatures {
|
||||
constructor() {
|
||||
webidl.illegalConstructor();
|
||||
}
|
||||
|
||||
[SymbolFor("Deno.privateCustomInspect")](inspect, inspectOptions) {
|
||||
if (ObjectPrototypeIsPrototypeOf(GPUSupportedFeaturesPrototype, this)) {
|
||||
return `${this.constructor.name} ${
|
||||
@ -687,23 +682,23 @@ class GPUSupportedFeatures {
|
||||
return `${this.constructor.name} ${inspect({}, inspectOptions)}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
const GPUSupportedFeaturesPrototype = GPUSupportedFeatures.prototype;
|
||||
|
||||
const GPUSupportedFeaturesPrototype = GPUSupportedFeatures.prototype;
|
||||
/**
|
||||
* @param {string | undefined} reason
|
||||
* @param {string} message
|
||||
* @returns {GPUDeviceLostInfo}
|
||||
*/
|
||||
function createGPUDeviceLostInfo(reason, message) {
|
||||
/** @type {GPUDeviceLostInfo} */
|
||||
const deviceLostInfo = webidl.createBranded(GPUDeviceLostInfo);
|
||||
deviceLostInfo[_reason] = reason ?? "unknown";
|
||||
deviceLostInfo[_message] = message;
|
||||
return deviceLostInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string | undefined} reason
|
||||
* @param {string} message
|
||||
* @returns {GPUDeviceLostInfo}
|
||||
*/
|
||||
function createGPUDeviceLostInfo(reason, message) {
|
||||
/** @type {GPUDeviceLostInfo} */
|
||||
const deviceLostInfo = webidl.createBranded(GPUDeviceLostInfo);
|
||||
deviceLostInfo[_reason] = reason ?? "unknown";
|
||||
deviceLostInfo[_message] = message;
|
||||
return deviceLostInfo;
|
||||
}
|
||||
|
||||
class GPUDeviceLostInfo {
|
||||
class GPUDeviceLostInfo {
|
||||
/** @type {string} */
|
||||
[_reason];
|
||||
/** @type {string} */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user