// Copyright 2020 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.sysmem2;

/// The upper 8 bits are a vendor code.  The lower 56 bits are
/// vendor-defined.  See format_modifier.fidl for potentially-valid values.
///
/// These values can be valid values for the |format_modifier_value| field.
///
/// The values are defined this way for compatibility reasons.
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
// bit 0x10 is for using the YUV transform.
const uint64 FORMAT_MODIFIER_ARM_YUV_BIT = 0x10;
// bit 0x20 is for split-block formats.
const uint64 FORMAT_MODIFIER_ARM_SPLIT_BLOCK_BIT = 0x20;
// bit 0x40 is for sparse formats.
const uint64 FORMAT_MODIFIER_ARM_SPARSE_BIT = 0x40;
// bit 0x800 is for variants with buffer content hints.
const uint64 FORMAT_MODIFIER_ARM_BCH_BIT = 0x800;
// bit 0x1000 is for variants with a transaction elimination buffer allocated.
const uint64 FORMAT_MODIFIER_ARM_TE_BIT = 0x1000;
// bit 0x2000 is for variants with tiled headers.
const uint64 FORMAT_MODIFIER_ARM_TILED_HEADER_BIT = 0x2000;
// Not all values are equally useful, so we only have format modifiers for some particularly interesting ones.

// To make the variants with bits set more consistent 0x0800000000000000 is reserved for linear.
const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16 = 0x0800000000000001;
const uint64 FORMAT_MODIFIER_ARM_AFBC_32X8 = 0x0800000000000002;
// Variations with transaction elimination support 0x1000 should be set for these formats.
const uint64 FORMAT_MODIFIER_ARM_LINEAR_TE = 0x0800000000001000;
const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_TE = 0x0800000000001001;
const uint64 FORMAT_MODIFIER_ARM_AFBC_32X8_TE = 0x0800000000001002;

const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_YUV_TILED_HEADER = 0x0800000000002011;

const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV = 0x0800000000000071;
const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE = 0x0800000000001071;

const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TILED_HEADER = 0x0800000000002071;
const uint64 FORMAT_MODIFIER_ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE_TILED_HEADER = 0x0800000000003071;
