зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1753302 - Part 2. Expose WebGPU on DOM workers. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D141492
This commit is contained in:
Родитель
3fe3f7ca98
Коммит
047df369c7
|
@ -12,7 +12,7 @@ dictionary GPUUncapturedErrorEventInit : EventInit {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUUncapturedErrorEvent: Event {
|
||||
constructor(DOMString type, GPUUncapturedErrorEventInit gpuUncapturedErrorEventInitDict);
|
||||
readonly attribute GPUError error;
|
||||
|
|
|
@ -62,7 +62,7 @@ dictionary GPUObjectDescriptorBase {
|
|||
|
||||
[
|
||||
Pref="dom.webgpu.enabled",
|
||||
Exposed=Window
|
||||
Exposed=(Window,DedicatedWorker)
|
||||
]
|
||||
interface GPU {
|
||||
// May reject with DOMException
|
||||
|
@ -72,7 +72,7 @@ interface GPU {
|
|||
|
||||
// Add a "webgpu" member to Navigator/Worker that contains the global instance of a "WebGPU"
|
||||
interface mixin GPUProvider {
|
||||
[SameObject, Replaceable, Pref="dom.webgpu.enabled", Exposed=Window] readonly attribute GPU gpu;
|
||||
[SameObject, Replaceable, Pref="dom.webgpu.enabled", Exposed=(Window,DedicatedWorker)] readonly attribute GPU gpu;
|
||||
};
|
||||
|
||||
enum GPUPowerPreference {
|
||||
|
@ -86,7 +86,7 @@ dictionary GPURequestAdapterOptions {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUSupportedFeatures {
|
||||
readonly setlike<DOMString>;
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ enum GPUFeatureName {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUSupportedLimits {
|
||||
readonly attribute unsigned long maxTextureDimension1D;
|
||||
readonly attribute unsigned long maxTextureDimension2D;
|
||||
|
@ -131,7 +131,7 @@ interface GPUSupportedLimits {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUAdapter {
|
||||
readonly attribute DOMString name;
|
||||
[SameObject] readonly attribute GPUSupportedFeatures features;
|
||||
|
@ -144,7 +144,7 @@ interface GPUAdapter {
|
|||
|
||||
// Device
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUDevice: EventTarget {
|
||||
[SameObject] readonly attribute GPUSupportedFeatures features;
|
||||
[SameObject] readonly attribute GPUSupportedLimits limits;
|
||||
|
@ -189,7 +189,7 @@ GPUDevice includes GPUObjectBase;
|
|||
// ****************************************************************************
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUDeviceLostInfo {
|
||||
readonly attribute DOMString message;
|
||||
};
|
||||
|
@ -200,13 +200,13 @@ enum GPUErrorFilter {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUOutOfMemoryError {
|
||||
//constructor();
|
||||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUValidationError {
|
||||
constructor(DOMString message);
|
||||
readonly attribute DOMString message;
|
||||
|
@ -219,7 +219,7 @@ partial interface GPUDevice {
|
|||
void pushErrorScope(GPUErrorFilter filter);
|
||||
[NewObject]
|
||||
Promise<GPUError?> popErrorScope();
|
||||
[Exposed=Window]
|
||||
[Exposed=(Window,DedicatedWorker)]
|
||||
attribute EventHandler onuncapturederror;
|
||||
};
|
||||
|
||||
|
@ -230,7 +230,7 @@ partial interface GPUDevice {
|
|||
// Buffer
|
||||
typedef [EnforceRange] unsigned long GPUBufferUsageFlags;
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUBufferUsage {
|
||||
const GPUBufferUsageFlags MAP_READ = 0x0001;
|
||||
const GPUBufferUsageFlags MAP_WRITE = 0x0002;
|
||||
|
@ -253,7 +253,7 @@ dictionary GPUBufferDescriptor : GPUObjectDescriptorBase {
|
|||
typedef [EnforceRange] unsigned long GPUMapModeFlags;
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUMapMode
|
||||
{
|
||||
const GPUMapModeFlags READ = 0x0001;
|
||||
|
@ -261,7 +261,7 @@ interface GPUMapMode
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUBuffer {
|
||||
[NewObject]
|
||||
Promise<void> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset = 0, optional GPUSize64 size);
|
||||
|
@ -363,7 +363,7 @@ enum GPUTextureFormat {
|
|||
|
||||
typedef [EnforceRange] unsigned long GPUTextureUsageFlags;
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUTextureUsage {
|
||||
const GPUTextureUsageFlags COPY_SRC = 0x01;
|
||||
const GPUTextureUsageFlags COPY_DST = 0x02;
|
||||
|
@ -382,7 +382,7 @@ dictionary GPUTextureDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUTexture {
|
||||
[NewObject]
|
||||
GPUTextureView createView(optional GPUTextureViewDescriptor descriptor = {});
|
||||
|
@ -418,7 +418,7 @@ dictionary GPUTextureViewDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUTextureView {
|
||||
};
|
||||
GPUTextureView includes GPUObjectBase;
|
||||
|
@ -460,7 +460,7 @@ dictionary GPUSamplerDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUSampler {
|
||||
};
|
||||
GPUSampler includes GPUObjectBase;
|
||||
|
@ -482,7 +482,7 @@ dictionary GPUPipelineLayoutDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUPipelineLayout {
|
||||
};
|
||||
GPUPipelineLayout includes GPUObjectBase;
|
||||
|
@ -490,7 +490,7 @@ GPUPipelineLayout includes GPUObjectBase;
|
|||
// BindGroupLayout
|
||||
typedef [EnforceRange] unsigned long GPUShaderStageFlags;
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUShaderStage {
|
||||
const GPUShaderStageFlags VERTEX = 1;
|
||||
const GPUShaderStageFlags FRAGMENT = 2;
|
||||
|
@ -557,7 +557,7 @@ dictionary GPUBindGroupLayoutDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUBindGroupLayout {
|
||||
};
|
||||
GPUBindGroupLayout includes GPUObjectBase;
|
||||
|
@ -582,7 +582,7 @@ dictionary GPUBindGroupDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUBindGroup {
|
||||
};
|
||||
GPUBindGroup includes GPUObjectBase;
|
||||
|
@ -598,7 +598,7 @@ enum GPUCompilationMessageType {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUCompilationMessage {
|
||||
readonly attribute DOMString message;
|
||||
readonly attribute GPUCompilationMessageType type;
|
||||
|
@ -609,7 +609,7 @@ interface GPUCompilationMessage {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUCompilationInfo {
|
||||
//TODO:
|
||||
//[Cached, Frozen, Pure]
|
||||
|
@ -625,7 +625,7 @@ dictionary GPUShaderModuleDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUShaderModule {
|
||||
//TODO:
|
||||
//Promise<GPUCompilationInfo> compilationInfo();
|
||||
|
@ -655,7 +655,7 @@ dictionary GPUComputePipelineDescriptor : GPUPipelineDescriptorBase {
|
|||
//TODO: Serializable
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1696219
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUComputePipeline {
|
||||
};
|
||||
GPUComputePipeline includes GPUObjectBase;
|
||||
|
@ -794,7 +794,7 @@ dictionary GPUBlendState {
|
|||
|
||||
typedef [EnforceRange] unsigned long GPUColorWriteFlags;
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUColorWrite {
|
||||
const GPUColorWriteFlags RED = 0x1;
|
||||
const GPUColorWriteFlags GREEN = 0x2;
|
||||
|
@ -860,7 +860,7 @@ dictionary GPURenderPipelineDescriptor : GPUPipelineDescriptorBase {
|
|||
//TODO: Serializable
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1696219
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPURenderPipeline {
|
||||
};
|
||||
GPURenderPipeline includes GPUObjectBase;
|
||||
|
@ -929,7 +929,7 @@ dictionary GPUCommandEncoderDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUCommandEncoder {
|
||||
[NewObject]
|
||||
GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor = {});
|
||||
|
@ -1005,7 +1005,7 @@ interface mixin GPURenderEncoderBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPURenderPassEncoder {
|
||||
void setViewport(float x, float y,
|
||||
float width, float height,
|
||||
|
@ -1039,7 +1039,7 @@ dictionary GPUComputePassDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUComputePassEncoder {
|
||||
void setPipeline(GPUComputePipeline pipeline);
|
||||
void dispatch(GPUSize32 x, optional GPUSize32 y = 1, optional GPUSize32 z = 1);
|
||||
|
@ -1056,14 +1056,14 @@ dictionary GPUCommandBufferDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUCommandBuffer {
|
||||
};
|
||||
GPUCommandBuffer includes GPUObjectBase;
|
||||
|
||||
// Render Bundle
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPURenderBundle {
|
||||
};
|
||||
GPURenderBundle includes GPUObjectBase;
|
||||
|
@ -1077,7 +1077,7 @@ dictionary GPURenderBundleEncoderDescriptor : GPURenderPassLayout {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPURenderBundleEncoder {
|
||||
GPURenderBundle finish(optional GPURenderBundleDescriptor descriptor = {});
|
||||
};
|
||||
|
@ -1117,7 +1117,7 @@ dictionary GPUQuerySetDescriptor : GPUObjectDescriptorBase {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUQuerySet {
|
||||
void destroy();
|
||||
};
|
||||
|
@ -1129,7 +1129,7 @@ GPUQuerySet includes GPUObjectBase;
|
|||
|
||||
// Queue
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUQueue {
|
||||
void submit(sequence<GPUCommandBuffer> buffers);
|
||||
|
||||
|
@ -1168,7 +1168,7 @@ enum GPUCanvasCompositingAlphaMode {
|
|||
};
|
||||
|
||||
[Pref="dom.webgpu.enabled",
|
||||
Exposed=Window]
|
||||
Exposed=(Window,DedicatedWorker)]
|
||||
interface GPUCanvasContext {
|
||||
// Calling configure() a second time invalidates the previous one,
|
||||
// and all of the textures it's produced.
|
||||
|
|
|
@ -29,3 +29,6 @@ partial interface WorkerNavigator {
|
|||
|
||||
// https://wicg.github.io/web-locks/#navigator-mixins
|
||||
WorkerNavigator includes NavigatorLocks;
|
||||
|
||||
// https://gpuweb.github.io/gpuweb/#navigator-gpu
|
||||
WorkerNavigator includes GPUProvider;
|
||||
|
|
Загрузка…
Ссылка в новой задаче