metal

    2热度

    1回答

    TL; DR:金属似乎并没有检测一下我的顶点着色器返回 我已经写在MSL这两个功能: vertex float4 base_image_rect(constant float4 *pos [[buffer(0)]], uint vid [[vertex_id]]) { return pos[vid]; } fragment float4 fragmen

    1热度

    1回答

    根据Apple文档,当为OSX应用程序的Info.plist文件添加值为“YES”(或true)的关键字“NSSupportsAutomaticGraphicsSwitching”时,将在双GPU系统上调用集成GPU(与独立GPU)。这对集成GPU非常有用 - 虽然性能较低 - 足以满足我们应用的需求,并且消耗更少的能源。 不幸的是,根据上面的介绍和随后检查活动监视器(能源标签:“需要高性能GPU

    3热度

    1回答

    我可以创建一个新的MTLTexture尺寸w2/h2现有的MTLTexture区域x1/y1/w1/h1? PS:我想过使用MTLTexture.buffer?.makeTexture,但偏移量需要为64个字节。为什么?

    2热度

    2回答

    在使用可见性结果功能(通过在命令编码器上调用setVisibilityResultMode)时,我使用MTLVisibilityResultModeBoolean模式获取布尔值,告诉我是否有任何片段通过了可见性测试。 经过这一点摔跤后,我注意到,我实际上并没有使用此API获取布尔值。我似乎得到了一个uint计数通过可见性测试的片段(像素??)的数量。我也不确定这个计数器的长度:它是32位的吗? 6

    4热度

    1回答

    金属支持除标准vertex和fragment功能kernel。我发现了一个金属kernel的例子,将图像转换为灰度。 究竟是在kernel VS fragment这样的区别?什么可以计算kernel做(好)一个fragment着色器不能,反之亦然?

    2热度

    1回答

    使用MPSImageGaussianBlur时,我注意到它初始化为A7设备返回nil(在2个iPad Airs和iPhone 5S上测试),但在其他新的gen设备(测试的iPad Pro [大],和iPhone 6)。这仅仅是一个无证的限制,还是我在这里做错了什么? 帮助将不胜感激!

    2热度

    1回答

    我用Swift格式.bgra8Unorm声明金属质感。现在在金属计算机kernel我使用half数据类型访问它(我相信苹果公司的一个例子是这样做的)。 texture2d<half, access::sample> inTexture [[ texture(0) ]] 将访问bgra8Unorm质地这种方式(通过采样器)和/或写回自动打包和解包half值和8个整数?当我为纹理写入一个负half

    1热度

    1回答

    我已经将这个着色器从一个shadertoy移植到了iOS的金属着色器中。原来的工作正常,但我现在已经把它移到iOS上了一些奇怪的行为。基本上,在着色器运行的前几秒,一切都没有对齐。我认为这是因为在X轴上有镜像,这是正确的,但垂直坐标也在某种程度上被翻转过来。任何人都可以告诉我该如何解决这个问题? 原始Shadertoy: https://www.shadertoy.com/view/ltl3Dj

    0热度

    1回答

    似乎我必须在每个渲染过程中调用RenderCommandEncoder.setFragmentTexture,即使我总是将相同的纹理绑定到索引0.为什么每个渲染过程都需要从头开始执行绑定?

    1热度

    2回答

    我正在创建一个简单的纹理显示,通过金属显示实质上呈现BGRA格式的视频帧。我遵循金属WWDC会话中所述的相同步骤。但是我在创建渲染编码器时遇到了问题。我的代码是 id <MTLDevice> device = MTLCreateSystemDefaultDevice(); id<MTLCommandQueue> commandQueue = [device newCommandQueue];