// 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_VENDOR_GOOGLE = 0x0900000000000000;

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;

// GOOGLE format modifier values
const uint64 FORMAT_MODIFIER_GOOGLE_GOLDFISH_OPTIMAL = 0x0900000000000001;
