blob: ee28fadde7f5476fe4f4decbbeec03d56d1d92c1 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.sysmem;
struct FormatModifier {
/// The upper 8 bits are a vendor code as allocated in FormatModifierVendor
/// enum. The lower 56 bits are vendor-defined.
///
/// This field and the values that go in this field are defined this way for
/// compatibility reasons.
uint64 value;
};
const uint64 FORMAT_MODIFIER_NONE = 0x0000000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_NONE = 0x0000000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_INTEL = 0x0100000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_AMD = 0x0200000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_NVIDIA = 0x0300000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_SAMSUNG = 0x0400000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_QCOM = 0x0500000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_VIVANTE = 0x0600000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_BROADCOM = 0x0700000000000000;
const uint64 FORMAT_MODIFIER_VENDOR_ARM = 0x0800000000000000;
const uint64 FORMAT_MODIFIER_VALUE_RESERVED = 0x00FFFFFFFFFFFFFF;
const uint64 FORMAT_MODIFIER_INVALID = FORMAT_MODIFIER_VALUE_RESERVED;
const uint64 FORMAT_MODIFIER_LINEAR = 0x0000000000000000;
//
// Fill in (compatible) values below as needed.
//
// Intel format modifier values
const uint64 FORMAT_MODIFIER_INTEL_I915_X_TILED = 0x0100000000000001;
const uint64 FORMAT_MODIFIER_INTEL_I915_Y_TILED = 0x0100000000000002;
const uint64 FORMAT_MODIFIER_INTEL_I915_YF_TILED = 0x0100000000000003;
// AMD format modifier values
// NVIDIA format modifier values
// SAMSUNG format modifier values
// QCOM format modifier values
// VIVANTE format modifier values
// BROADCOM format modifier values
// ARM format modifier values
const uint64 FORMAT_MODIFIER_ARM_AFBC_16x16 = 0x0800000000000001;
const uint64 FORMAT_MODIFIER_ARM_AFBC_32x8 = 0x0800000000000002;