-
Notifications
You must be signed in to change notification settings - Fork 345
Closed
Milestone
Description
The spec says:
GPURenderBundleEncoder includes GPURenderCommandsMixin;
...
interface mixin GPURenderCommandsMixin {
undefined setPipeline(GPURenderPipeline pipeline);
...
}
...
dictionary GPURenderPipelineDescriptor : GPUPipelineDescriptorBase {
...
GPUDepthStencilState depthStencil;
...
}
...
dictionary GPUDepthStencilState {
...
GPUCompareFunction depthCompare = "always";
...
};
So it needs to be possible to set new render pipelines, with new depth compare functions, in the bundle.
However, Metal has separate RenderPipelineState and DepthStencilState objects:
protocol MTLIndirectRenderCommand {
...
func setRenderPipelineState(MTLRenderPipelineState)
/* no setDepthStencilState() */
...
}
...
class MTLDepthStencilDescriptor : NSObject {
...
var depthCompareFunction: MTLCompareFunction
...
}
It's not possible to set a MTLDepthStencilState in a MTLIndirectRenderCommand.
Historically, this group has been designing GPURenderBundleEncoder to be implementable on top of MTLIndirectCommandBuffer.
Metadata
Metadata
Assignees
Labels
No labels