Swift到Metal结构的大小不同-需要填充

时间:2018-10-16 14:05:50

标签: swift metal

我在Swift中有以下结构

public struct PointWithValue2D {
    let x: uint!
    let y: uint!
    let value: Float!

    public init(_ x: uint, _ y: uint, _ value: Float) {
        self.x = x
        self.y = y
        self.value = value
    }
}

此结构的大小为24个字节。当我拥有此结构的Metal版本时,据我了解,大小将相同。

但是,要使我的结构在Metal中工作,我必须将属性填充到此:

struct PointWithValue2D {
    uint x;
    uint xPad;
    uint y;
    uint yPad;
    float value;
    float valuePad;
};

有人能解释为什么吗?

0 个答案:

没有答案