कमांड बफर ऑब्जेक्ट पर ड्रा करने योग्य सेट करते समय मुझे संकलन समय त्रुटि मिल रही है।

निम्नलिखित मेरा कार्य है जिसे draw MTKView उपवर्ग की विधि से बुलाया जा रहा है।

fileprivate func executeMetalShader() {
        guard let pipelineState = self.pipelineState,
            let threadgroupsPerGrid = self.threadgroupsPerGrid,
            let threadsPerThreadgroup = self.threadsPerThreadgroup
        else { return }

        guard let drawable: CAMetalDrawable = self.currentDrawable else { fatalError("Failed to create drawable") }
        let commandBuffer = commandQueue?.makeCommandBuffer()
        let commandEncoder = commandBuffer?.makeComputeCommandEncoder()
        commandEncoder?.setComputePipelineState(pipelineState)

        commandEncoder?.setTexture(yTexture, index: 0)
        commandEncoder?.setTexture(uTexture, index: 1)
        commandEncoder?.setTexture(vTexture, index: 2)
        commandEncoder?.setTexture(outTexture, index: 3)

        commandEncoder?.dispatchThreadgroups(threadgroupsPerGrid,
                                             threadsPerThreadgroup: threadsPerThreadgroup)
        commandEncoder?.endEncoding()
        commandBuffer.present(drawable) //. Error: Type of expression is ambiguous without more context
        commandBuffer?.commit()
        print("shader execution finish")
    }

क्या मैं कुछ गलत कर रहा हूं या स्विफ्ट 5 में कुछ एपीआई परिवर्तन हैं?

2
Afsar edrisy 11 जिंदा 2020, 17:20

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि आप एक ? खो रहे हैं। ठीक कर:

commandBuffer?.present(drawable)
4
SurvivalMachine 11 जिंदा 2020, 14:47