blob: c0f2612453e8db231fa2dec5286216df51aea1d5 [file] [log] [blame]
// 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.
#ifndef SRC_GRAPHICS_DISPLAY_DRIVERS_COORDINATOR_PREFERRED_SCANOUT_IMAGE_TYPE_H_
#define SRC_GRAPHICS_DISPLAY_DRIVERS_COORDINATOR_PREFERRED_SCANOUT_IMAGE_TYPE_H_
#include <cstdint>
// display-controller.fidl states that IMAGE_TILING_TYPE_LINEAR is the only universally-supported
// image type defined by the API, and that any other value must be agreed upon by all parties (e.g.
// the image producer, the display driver, etc.) through some other means, perhaps a future
// negotiation API. For now, this header serves the role of "some other means".
#if defined(__x86_64__)
// `fuchsia.hardware.intelgpucore/IMAGE_TILING_TYPE_X_TILED` from the Banjo API.
constexpr uint32_t IMAGE_TILING_TYPE_PREFERRED_SCANOUT = 1;
#elif defined(__aarch64__)
// `fuchsia.hardware.display.types/IMAGE_TILING_TYPE_LINEAR` from the FIDL API.
// `fuchsia.hardware.display.controller/ImageTilingType.SIMPLE` from the Banjo API.
constexpr uint32_t IMAGE_TILING_TYPE_PREFERRED_SCANOUT = 0;
#elif defined(__riscv)
// `fuchsia.hardware.display.types/IMAGE_TILING_TYPE_LINEAR` from the FIDL API.
// `fuchsia.hardware.display.controller/ImageTilingType.SIMPLE` from the Banjo API.
//
// This may be revisited, depending on the hardware that we end supporting.
constexpr uint32_t IMAGE_TILING_TYPE_PREFERRED_SCANOUT = 0;
#else
#error "Preferred scanout image format not defined for this platform."
#endif
#endif // SRC_GRAPHICS_DISPLAY_DRIVERS_COORDINATOR_PREFERRED_SCANOUT_IMAGE_TYPE_H_