2016-09-23 17 views
0

私はカーネルの外側で任意の関数にアクセスできるように、私はグローバル定数としてそれを行うことができますどのようにメタル - グローバル変数としてバッファ

kernel void compute(texture2d<float, access::write> output [[texture(0)]], 
        constant float2 &mouse [[buffer(1)]],//<-- mouse buffer 
        uint2 gid [[thread_position_in_grid]]) 
{ 
... 
} 

にマウスの位置を渡すバッファがありますか?例:

float abc(float p){ 

float a = p * globalmouseposition.x; 

return a; 

} 

答えて

1

メタルは可変グローバル変数をサポートしていません。必要な値をパラメータとして使用するすべての関数に渡す必要があります。構造体やクラスにすべての関数をラップし、グローバル変数をシミュレートするためにメンバー変数を使用するなど、他の方法もありますが、必要な値を関数から関数に渡すことをお勧めします。

関連する問題