diff --git a/dist/index.d.ts b/dist/index.d.ts index 3ed49db..0e6f86e 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -261,7 +261,10 @@ type GPUStencilOperation = | "increment-wrap" | "decrement-wrap"; type GPUStorageTextureAccess = - "write-only"; + + | "write-only" + | "read-only" + | "read-write"; type GPUStoreOp = | "store" @@ -1116,6 +1119,11 @@ interface GPURenderPassColorAttachment { * color attachment. */ view: GPUTextureView; + /** + * Indicates the depth slice index of {@link GPUTextureViewDimension#"3d"} {@link GPURenderPassColorAttachment#view} + * that will be output to for this color attachment. + */ + depthSlice?: GPUIntegerCoordinate; /** * A {@link GPUTextureView} describing the texture subresource that will receive the resolved * output for this color attachment if {@link GPURenderPassColorAttachment#view} is @@ -1382,6 +1390,7 @@ interface GPUSamplerDescriptor } interface GPUShaderModuleCompilationHint { + entryPoint: string; /** * A {@link GPUPipelineLayout} that the {@link GPUShaderModule} may be used with in a future * {@link GPUDevice#createComputePipeline()} or {@link GPUDevice#createRenderPipeline} call. @@ -1407,25 +1416,31 @@ interface GPUShaderModuleDescriptor * WGSL names (identifiers) in source maps follow the rules defined in WGSL identifier * comparison. */ - sourceMap?: object; + sourceMap?: any; /** - * If defined maps an entry point name from the shader to a {@link GPUShaderModuleCompilationHint}. - * No validation is performed with any of these {@link GPUShaderModuleCompilationHint}. - * Implementations should use any information present in the {@link GPUShaderModuleCompilationHint} + * A list of {@link GPUShaderModuleCompilationHint}s. + * Any hint provided by an application **should** contain information about one entry point of + * a pipeline that will eventually be created from the entry point. + * Implementations **should** use any information present in the {@link GPUShaderModuleCompilationHint} * to perform as much compilation as is possible within {@link GPUDevice#createShaderModule}. - * Entry point names follow the rules defined in WGSL identifier comparison. - * Note: Supplying information in {@link GPUShaderModuleDescriptor#hints} does not have any - * observable effect, other than performance. Because a single shader module can hold + * Aside from type-checking, these hints are not validated in any way. + *
+ * Supplying information in {@link GPUShaderModuleDescriptor#compilationHints} does not have any + * observable effect, other than performance. It may be detrimental to performance to + * provide hints for pipelines that never end up being created. + * Because a single shader module can hold * multiple entry points, and multiple pipelines can be created from a single shader * module, it can be more performant for an implementation to do as much compilation as * possible once in {@link GPUDevice#createShaderModule} rather than multiple times in - * the multiple calls to {@link GPUDevice#createComputePipeline} / + * the multiple calls to {@link GPUDevice#createComputePipeline} or * {@link GPUDevice#createRenderPipeline}. + *
+ * Note: + * Hints are not validated in an observable way, but user agents **may** surface identifiable + * errors (like unknown entry point names or incompatible pipeline layouts) to developers, + * for example in the browser developer console. */ - hints?: Record< - string, - GPUShaderModuleCompilationHint - >; + compilationHints?: Array; } interface GPUStencilFaceState { @@ -1454,9 +1469,6 @@ interface GPUStencilFaceState { interface GPUStorageTextureBindingLayout { /** * The access mode for this binding, indicating readability and writability. - * Note: - * There is currently only one access mode, {@link GPUStorageTextureAccess#"write-only"}, - * but this will expand in the future. */ access?: GPUStorageTextureAccess; /** @@ -1517,8 +1529,7 @@ interface GPUTextureDescriptor * Specifies what view {@link GPUTextureViewDescriptor#format} values will be allowed when calling * {@link GPUTexture#createView} on this texture (in addition to the texture's actual * {@link GPUTextureDescriptor#format}). - *
- * Note: + *
* Adding a format to this list may have a significant performance impact, so it is best * to avoid adding formats unnecessarily. * The actual performance impact is highly dependent on the target system; developers must @@ -2144,17 +2155,6 @@ interface GPUCommandEncoder offset?: GPUSize64, size?: GPUSize64 ): undefined; - /** - * Writes a timestamp value into a querySet when all previous commands have completed executing. - * Note: Timestamp query values are written in nanoseconds, but how the value is determined is - * implementation-defined and may not increase monotonically. See [[#timestamp]] for details. - * @param querySet - The query set that will store the timestamp values. - * @param queryIndex - The index of the query in the query set. - */ - writeTimestamp( - querySet: GPUQuerySet, - queryIndex: GPUSize32 - ): undefined; /** * Resolves query results from a {@link GPUQuerySet} out into a range of a {@link GPUBuffer}. * querySet: @@ -2211,7 +2211,7 @@ interface GPUCompilationMessage { * Note: The {@link GPUCompilationMessage#message} should follow the best practices for language * and direction information. This includes making use of any future standards which may * emerge regarding the reporting of string language and direction metadata. - *

Editorial: + *

Editorial note: * At the time of this writing, no language/direction recommendation is available that provides * compatibility and consistency with legacy APIs, but when there is, adopt it formally. */ @@ -2541,7 +2541,7 @@ interface GPUError { * Note: The {@link GPUError#message} should follow the best practices for language and * direction information. This includes making use of any future standards which may emerge * regarding the reporting of string language and direction metadata. - *

Editorial: + *

Editorial note: * At the time of this writing, no language/direction recommendation is available that provides * compatibility and consistency with legacy APIs, but when there is, adopt it formally. */ diff --git a/generated/index.d.ts b/generated/index.d.ts index 58502c0..7c3abb9 100644 --- a/generated/index.d.ts +++ b/generated/index.d.ts @@ -207,7 +207,10 @@ type GPUStencilOperation = | "increment-wrap" | "decrement-wrap"; type GPUStorageTextureAccess = - "write-only"; + + | "write-only" + | "read-only" + | "read-write"; type GPUStoreOp = | "store" @@ -1104,6 +1107,11 @@ interface GPURenderPassColorAttachment { * color attachment. */ view: GPUTextureView; + /** + * Indicates the depth slice index of {@link GPUTextureViewDimension#"3d"} {@link GPURenderPassColorAttachment#view} + * that will be output to for this color attachment. + */ + depthSlice?: GPUIntegerCoordinate; /** * A {@link GPUTextureView} describing the texture subresource that will receive the resolved * output for this color attachment if {@link GPURenderPassColorAttachment#view} is @@ -1341,6 +1349,7 @@ interface GPUSamplerDescriptor } interface GPUShaderModuleCompilationHint { + entryPoint: string; /** * A {@link GPUPipelineLayout} that the {@link GPUShaderModule} may be used with in a future * {@link GPUDevice#createComputePipeline()} or {@link GPUDevice#createRenderPipeline} call. @@ -1368,23 +1377,29 @@ interface GPUShaderModuleDescriptor */ sourceMap?: any; /** - * If defined maps an entry point name from the shader to a {@link GPUShaderModuleCompilationHint}. - * No validation is performed with any of these {@link GPUShaderModuleCompilationHint}. - * Implementations should use any information present in the {@link GPUShaderModuleCompilationHint} + * A list of {@link GPUShaderModuleCompilationHint}s. + * Any hint provided by an application **should** contain information about one entry point of + * a pipeline that will eventually be created from the entry point. + * Implementations **should** use any information present in the {@link GPUShaderModuleCompilationHint} * to perform as much compilation as is possible within {@link GPUDevice#createShaderModule}. - * Entry point names follow the rules defined in WGSL identifier comparison. - * Note: Supplying information in {@link GPUShaderModuleDescriptor#hints} does not have any - * observable effect, other than performance. Because a single shader module can hold + * Aside from type-checking, these hints are not validated in any way. + *

+ * Supplying information in {@link GPUShaderModuleDescriptor#compilationHints} does not have any + * observable effect, other than performance. It may be detrimental to performance to + * provide hints for pipelines that never end up being created. + * Because a single shader module can hold * multiple entry points, and multiple pipelines can be created from a single shader * module, it can be more performant for an implementation to do as much compilation as * possible once in {@link GPUDevice#createShaderModule} rather than multiple times in - * the multiple calls to {@link GPUDevice#createComputePipeline} / + * the multiple calls to {@link GPUDevice#createComputePipeline} or * {@link GPUDevice#createRenderPipeline}. + *
+ * Note: + * Hints are not validated in an observable way, but user agents **may** surface identifiable + * errors (like unknown entry point names or incompatible pipeline layouts) to developers, + * for example in the browser developer console. */ - hints?: Record< - string, - GPUShaderModuleCompilationHint - >; + compilationHints?: Array; } interface GPUStencilFaceState { @@ -1413,9 +1428,6 @@ interface GPUStencilFaceState { interface GPUStorageTextureBindingLayout { /** * The access mode for this binding, indicating readability and writability. - * Note: - * There is currently only one access mode, {@link GPUStorageTextureAccess#"write-only"}, - * but this will expand in the future. */ access?: GPUStorageTextureAccess; /** @@ -1476,8 +1488,7 @@ interface GPUTextureDescriptor * Specifies what view {@link GPUTextureViewDescriptor#format} values will be allowed when calling * {@link GPUTexture#createView} on this texture (in addition to the texture's actual * {@link GPUTextureDescriptor#format}). - *
- * Note: + *
* Adding a format to this list may have a significant performance impact, so it is best * to avoid adding formats unnecessarily. * The actual performance impact is highly dependent on the target system; developers must @@ -2051,17 +2062,6 @@ interface GPUCommandEncoder offset?: GPUSize64, size?: GPUSize64 ): undefined; - /** - * Writes a timestamp value into a querySet when all previous commands have completed executing. - * Note: Timestamp query values are written in nanoseconds, but how the value is determined is - * implementation-defined and may not increase monotonically. See [[#timestamp]] for details. - * @param querySet - The query set that will store the timestamp values. - * @param queryIndex - The index of the query in the query set. - */ - writeTimestamp( - querySet: GPUQuerySet, - queryIndex: GPUSize32 - ): undefined; /** * Resolves query results from a {@link GPUQuerySet} out into a range of a {@link GPUBuffer}. * querySet: @@ -2116,7 +2116,7 @@ interface GPUCompilationMessage { * Note: The {@link GPUCompilationMessage#message} should follow the best practices for language * and direction information. This includes making use of any future standards which may * emerge regarding the reporting of string language and direction metadata. - *

Editorial: + *

Editorial note: * At the time of this writing, no language/direction recommendation is available that provides * compatibility and consistency with legacy APIs, but when there is, adopt it formally. */ @@ -2436,7 +2436,7 @@ interface GPUError { * Note: The {@link GPUError#message} should follow the best practices for language and * direction information. This includes making use of any future standards which may emerge * regarding the reporting of string language and direction metadata. - *

Editorial: + *

Editorial note: * At the time of this writing, no language/direction recommendation is available that provides * compatibility and consistency with legacy APIs, but when there is, adopt it formally. */ diff --git a/gpuweb b/gpuweb index be0515f..56a0db1 160000 --- a/gpuweb +++ b/gpuweb @@ -1 +1 @@ -Subproject commit be0515f355e1ba9cf2f3c79f4c03d9eced802948 +Subproject commit 56a0db1669c7e4fe1d45e476e7800e4953f04bf9