草庐IT

ios - 为什么 Apple 的 Metal 矩阵乘法示例需要填充 C

我正在学习Apple的Metal尝试进行一些GPU计算。我检查了matrixmultiplicationexample苹果给的。有一点我无法理解。在文件中MetalMatrixMult.h//NumberofrowsinmatricesAandC.@property(nonatomic)uint16_tm;//NumberofcolumnsinmatrixA;numberofrowsinmatrixB.@property(nonatomic)uint16_tn;//NumberofcolumnsinmatricesBandC.@property(nonatomic)uint16_tk;

ios - 在 iOS 13 模拟器上从源代码编译 Metal 着色器会出现 PCH 错误

我正在研究Cocos2d-xv4branch它引入了Metal后端支持并使用glsl-optimizer使用newLibraryWithSource:options:error:将GLSL转换为MSL以便在运行时进行编译.在iOS13设备上使用Xcode11beta进行编译时效果很好,但是在为iOS13Simulator进行编译时,着色器无法编译并出现以下错误:Error:PCHfilebuiltfromadifferentbranch((metalfe-902.9.49))thanthecompiler((metalfe-902.9.52))有没有人有什么想法?更多细节:在问这个问题

ios - Metal 可以在非 A7 设备上使用吗? (例如 iPhone 5 或 iPad Mini(非视网膜))

Metal可以在非A7设备上使用吗?(例如iPhone5或iPadMini(非视网膜))。如果没有,是否可以通过任何方式为仅支持Metal的设备创建应用程序? 最佳答案 适用于A7或更大尺寸。WWDC视频说“专为A7设计”,他们在整个演示过程中一直强调这一点。 关于ios-Metal可以在非A7设备上使用吗?(例如iPhone5或iPadMini(非视网膜)),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

ios - 是否可以在 iPad Swift Playground 中使用 Metal 着色器代码?

是否可以在iPadSwiftPlayground中使用自定义Metal着色器代码?如果是这样,如何将*.metal文件或代码(或其预编译对象)放到iPad上以与Playground和Swift代码一起使用?在Mac上使用Xcode是否需要帮助?(这个问题不是关于使用内置性能着色器,也不是关于在Mac上的Playground中运行东西) 最佳答案 你有两个选择:要么在Xcode中创建一个iOSPlayground,然后将它发送到你的iPad,但你不能编辑.metal文件,只能阅读它,就像thisexample中那样。;或者您可以将着色

ios - 为 iOS Metal 中的 MTLBuffer 使用的数据分配内存

作为thisanswer的后续问题.我正在尝试用Metal中的内核函数替换在CPU上运行的for循环,以并行计算并提高性能。我的函数基本上是一个卷积。由于我反复收到输入数组值的新数据(数据源自AVCaptureSession),因此使用newBufferWithBytesNoCopy:length:options:deallocator:似乎是明智的选择创建MTLBuffer对象。相关代码如下:iddataBuffer=[devicenewBufferWithBytesNoCopy:dataVectorlength:sizeof(dataVector)options:MTLResour

ios - iPhone X 上的 iOS 12 是否在 Metal 之上渲染 OpenGL ES?有什么办法可以避免吗?

所以我遇到了一个奇怪的问题。我正在移植modernsourceportiOS和tvOS的旧游戏引擎。它是使用OpenGL编写的,我发现了一个fork它使用OpenGLES并且我已经能够将两者结合到Frankenstein中,它实际上现在可以在iOS和tvOS设备上成功运行。这是奇怪的部分-部分游戏无法在我的iPhoneX上正确呈现,但它们在我的iPadAir2和AppleTV(第4代)上可以正确呈现。我在输出窗口中的一连串消息中注意到引擎输出渲染器信息的位置,在iPhoneX上它说OpenGL版本:OpenGLES2.0Metal58.4而在iPadAir2上它说OpenGL版本:Op

ios - Metal/UIKit 与 .presentsWithTransaction 同步

TheAppledocs对于CAMetalLayer声明属性presentsWithTransaction是:ABooleanvaluethatdetermineswhetherthelayerpresentsitscontentusingaCoreAnimationtransaction因为我正在使用UIKit来驱动一些Metal动画(类似于Apple在这个WWDC2012session中为OpenGL建议的方法),我假设这是启用它的正确时机。我有一个Metal“背景”View,上面覆盖了一些UIKit组件(也是动画),所以这听起来非常像适用的用例:Bydefault[.presen

ios - Metal for iOS 中的 GL_TRIANGLE_STRIP 是什么?

尝试绘制一条三角形,如下所示:完成了objc.iotutorial,他们使用两个三角形绘制四边形。三角形断开连接并单独绘制,这意味着我需要指定6个顶点而不是4个。//InterleavedvertexdataX,Y,Z,W,R,G,B,AstaticfloatvertexData[]={//Firsttriangle:Frombottomright,clockwise0.5,-0.5,0.0,1.0,1.0,0.0,0.0,1.0,//bottomright-0.5,-0.5,0.0,1.0,0.0,1.0,0.0,1.0,//bottomleft-0.5,0.5,0.0,1.0,0.

ios - Metal 计算内核与片段着色器

除了标准的vertex和fragment函数外,Metal还支持kernel。我找到了一个将图像转换为灰度的Metalkernel示例。在kernel和fragment中执行此操作到底有什么区别?计算kernel可以做什么(更好)而fragment着色器不能,反之亦然? 最佳答案 Metal有四种不同类型的命令编码器:MTLRenderCommandEncoderMTLComputeCommandEncoderMTLBlitCommandEncoderMTLParallelRenderCommandEncoder如果您只是从事图形编

ios - 层 <Metal Layer : 0x17069b850> 无可绘制对象

在运行我的应用程序时得到Nildrawableforlayer错误从MKMapViewController返回. 最佳答案 当我在我的一个ViewController中按下取消按钮时,我也有同样的情况(没有在我的应用程序中使用任何金属)。调用按钮处理程序的过程也很长.... 关于ios-层无可绘制对象,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/45796947/