Swift to Metal размеры конструкций разные - требуется заполнение - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующая структура в 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;
};

Кто-нибудь может объяснить, почему это так?

...