blob: bc0608656434edf7c1e7eedf71fe17649ff07136 [file] [log] [blame]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use bitflags::bitflags;
use crate::constants;
bitflags! {
/// Gives the driver a hint of intended usage to optimize allocation (e.g. tiling).
pub struct UsageHint: u32 {
/// Surface used by video decoder.
const USAGE_HINT_DECODER = constants::VA_SURFACE_ATTRIB_USAGE_HINT_DECODER;
/// Surface used by video encoder.
const USAGE_HINT_ENCODER = constants::VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER;
/// Surface read by video post-processing.
const USAGE_HINT_VPP_READ = constants::VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ;
/// Surface written by video post-processing.
const USAGE_HINT_VPP_WRITE = constants::VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE;
/// Surface used for display.
const USAGE_HINT_DISPLAY = constants::VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY;
/// Surface used for export to third-party APIs, e.g. via `vaExportSurfaceHandle()`.
const USAGE_HINT_EXPORT = constants::VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT;
}
}