/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
/* Copyright (c) 2023 Imagination Technologies Ltd. */
#ifndef PVR_ROGUE_FWIF_STREAM_H
#define PVR_ROGUE_FWIF_STREAM_H
/**
* DOC : Streams
*
* Commands are submitted to the kernel driver in the form of streams .
*
* A command stream has the following layout :
* - A 64 - bit header containing :
* * A u32 containing the length of the main stream inclusive of the length of the header .
* * A u32 for padding .
* - The main stream data .
* - The extension stream ( optional ) , which is composed of :
* * One or more headers .
* * The extension stream data , corresponding to the extension headers .
*
* The main stream provides the base command data . This has a fixed layout based on the features
* supported by a given GPU .
*
* The extension stream provides the command parameters that are required for BRNs & ERNs for the
* current GPU . This stream is comprised of one or more headers , followed by data for each given
* BRN / ERN .
*
* Each header is a u32 containing a bitmask of quirks & enhancements in the extension stream , a
* " type " field determining the set of quirks & enhancements the bitmask represents , and a
* continuation bit determining whether any more headers are present . The headers are then followed
* by command data ; this is specific to each quirk / enhancement . All unused / reserved bits in the
* header must be set to 0 .
*
* All parameters and headers in the main and extension streams must be naturally aligned .
*
* If a parameter appears in both the main and extension streams , then the extension parameter is
* used .
*/
/*
* Stream extension header definition
*/
#define PVR_STREAM_EXTHDR_TYPE_SHIFT 29 U
#define PVR_STREAM_EXTHDR_TYPE_MASK (7 U << PVR_STREAM_EXTHDR_TYPE_SHIFT)
#define PVR_STREAM_EXTHDR_TYPE_MAX 8 U
#define PVR_STREAM_EXTHDR_CONTINUATION BIT(28 U)
#define PVR_STREAM_EXTHDR_DATA_MASK ~(PVR_STREAM_EXTHDR_TYPE_MASK | PVR_STREAM_EXTHDR_CONTINUATION)
/*
* Stream extension header - Geometry 0
*/
#define PVR_STREAM_EXTHDR_TYPE_GEOM0 0 U
#define PVR_STREAM_EXTHDR_GEOM0_BRN49927 BIT(0 U)
#define PVR_STREAM_EXTHDR_GEOM0_VALID PVR_STREAM_EXTHDR_GEOM0_BRN49927
/*
* Stream extension header - Fragment 0
*/
#define PVR_STREAM_EXTHDR_TYPE_FRAG0 0 U
#define PVR_STREAM_EXTHDR_FRAG0_BRN47217 BIT(0 U)
#define PVR_STREAM_EXTHDR_FRAG0_BRN49927 BIT(1 U)
#define PVR_STREAM_EXTHDR_FRAG0_VALID PVR_STREAM_EXTHDR_FRAG0_BRN49927
/*
* Stream extension header - Compute 0
*/
#define PVR_STREAM_EXTHDR_TYPE_COMPUTE0 0 U
#define PVR_STREAM_EXTHDR_COMPUTE0_BRN49927 BIT(0 U)
#define PVR_STREAM_EXTHDR_COMPUTE0_VALID PVR_STREAM_EXTHDR_COMPUTE0_BRN49927
#endif /* PVR_ROGUE_FWIF_STREAM_H */
Messung V0.5 in Prozent C=95 H=92 G=93
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-10-12)
¤
*© Formatika GbR, Deutschland