我使用func drawIndexedPrimitives(type primiveType:MTLPrimitiveType,indexType:MTLIndexType,indexBuffer:MTLBuffer,indexBufferOffset:Int,indirectBuffer:MTLBuffer,indirectBufferOffset:Int),当我使用参数缓冲区来设置纹理(例如到fragnent shader),一切都很好。但是有没有一种方法可以在没有参数缓冲区的情况下设置纹理?参数缓冲区是唯一的方法吗?
当与参数缓冲器一起使用时,事情进展顺利。
1条答案
按热度按时间ljo96ir51#
不,没有别的办法。如果使用间接命令缓冲区,则必须通过参数缓冲区获取纹理。
如果您查看CPU上的API:
MTLIndirectRenderCommand
只有setVertexBuffer
和setFragmentBuffer
。MTLIndirectComputeCommand
只有setKernelBuffer
在GPU上:
render_command
只有set_vertex_bufer
和set_fragment_buffer
compute_command
只有set_kernel_bufer
。