metal

    2熱度

    2回答

    我試圖實現兩個截然不同的CAMetalLayers並使用一個MTLRenderCommandEncoder將同一場景渲染到兩個圖層(Metal for OS X)。 爲此,我試過創建一個MTLRenderPassDescriptor並將兩個圖層的紋理附加到它的顏色附件中。我的渲染方法如下所示: - (void)render { dispatch_semaphore_wait(_infli

    0熱度

    1回答

    我使用Apple Metal爲iPhone/iPad製作剛體仿真。要做到這一點,我需要做很多內核函數調用,而且我看到,它需要很長時間,與CUDA相反。 我實現了金屬的內核函數調用,就像蘋果教程介紹 let commandQueue = device.newCommandQueue() var commandBuffers:[MTLCommandBuffer]=[] var gpuProgra

    1熱度

    1回答

    我有一個每個實例的統一緩衝區,其中緩衝區中的每個元素都是64字節,但我只使用頂點着色器中每個元素的前16個字節(float3)。我設定了這一步來描述這一點。問題是它不跨越其他48個字節除非我向着色器中的結構添加填充以使它也是64字節。 // Particle Instance Position vertexDescriptor.attributes[2].format = .Float3 //

    1熱度

    1回答

    線程組內存問題 線程組內存是一個線程組的線程之間共享,但它的線程組完成後保存下來,讓鏈接(如果我有一個屏障比方說)? 它似乎只限於16KB在當前設備上,任何解決方法,如果我需要更多? 平鋪干擾或影響着色器中線程組內存的使用嗎?

    2熱度

    1回答

    我在寫一個對象識別程序。我使用Metal Api。問題是我需要數組列表或動態數組,但Metal中沒有動態數組。有沒有辦法申報或實施自己的?

    0熱度

    1回答

    我一直在Objective-C/OpenGL ES 2.0中維護我自己定製的2D庫,現在已經在我的個人項目中使用了(不工作)。我也曾嘗試cocos2d的和SpriteKit現在,然後,但最終解決了「重新發明輪子」,因爲 它的樂趣, 知識的角度來看,我寧願是那個誰可以編碼一個圖形庫,而不僅僅是一個可以使用它的人, 無限制的定製可能性。 現在,我轉換我的代碼基礎,雨燕(除了移動到類繼承需要後座協議語言

    5熱度

    1回答

    我想使用金屬計算着色器來計算一些位置,然後將它們饋送到金屬着色器中。聽起來很簡單,但我無法將MTLBuffer數據導入基於金屬的SCNProgram中。 計算內核如下所示,在這個人爲設計的例子中,它採用了三個3D矢量(在兩個緩衝區中)。 kernel void doSimple(const device float3 *inVector [[ buffer(0) ]], devi

    1熱度

    1回答

    我有一個形象的背景,這我想分配給屏幕 我的代碼: let image = SKSpriteNode(imageNamed: "background") func addBackground(sizeNode: CGFloat){ image.size = CGSizeMake(sizeNode, sizeNode) image.position.x = xPos i

    9熱度

    1回答

    我在SceneKit啓動器項目中看到非常不一致的幀速率。有時它會以60 fps(12ms渲染,6ms金屬沖洗)持續運行,有時會以40 fps(20ms渲染,6ms金屬沖洗)持續運行,不會更多,也不會少。 當我重新打開應用程序時,幀速率會隨機更改,並將保持該幀速率,直到下一次重新打開。我嘗試切換到OpenGL ES,雖然它似乎在啓動器項目中修復它,但我仍然在我的真實應用程序中看到這些下降。 啓動項目

    6熱度

    2回答

    空間和時間被認爲是分析算法複雜性的晴雨表。但是現在,隨着移動設備上GPU的出現,有許多可能的應用程序可以使用這種高性能在移動設備上運行復雜的算法。例如:iOS的Metal框架可用於GPGPU操作。但不用說,它消耗了大量的力量。所以,我的問題是,如果我正在移動設備上開發/實現圖表搜索算法,那麼我是否也應該考慮算法和時空的「功耗」複雜性?現在,我知道這個論點可能是權力是算法不會直接消耗的,我完全同意這