VirtualBox

Changeset 102293 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Nov 24, 2023 1:15:48 PM (14 months ago)
Author:
vboxsync
Message:

Devices/Graphics: header update. bugref:10529

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/vmsvga_include/vbsvga3d_dx.h

    r102136 r102293  
    2929#include "svga3d_dx.h"
    3030
     31/* Arbitrary limits. Allows to use constant size structures.
     32 * NVIDIA supports 5 streams, AMD more, so 8 seems to be a good round number.
     33 * Both support 1 rate conversion caps set.
     34 */
     35#define VBSVGA3D_MAX_VIDEO_STREAMS 8
     36#define VBSVGA3D_MAX_VIDEO_RATE_CONVERSION_CAPS 1
     37
     38/* For 8-bit palettized formats. */
     39#define VBSVGA3D_MAX_VIDEO_PALETTE_ENTRIES 256
     40
    3141typedef uint32 VBSVGA3dVideoProcessorId;
    3242typedef uint32 VBSVGA3dVideoDecoderOutputViewId;
     
    103113#define VBSVGA3D_VP_FILTER_ANAMORPHIC_SCALING 6
    104114#define VBSVGA3D_VP_FILTER_STEREO_ADJUSTMENT  7
     115#define VBSVGA3D_VP_MAX_FILTER_COUNT          8
    105116typedef uint32 VBSVGA3dVideoProcessorFilter;
    106117
     
    111122typedef uint32 VBSVGA3dVideoProcessorRotation;
    112123
     124#define VBSVGA3D_VP_FORMAT_SUPPORT_INPUT  0x1
     125#define VBSVGA3D_VP_FORMAT_SUPPORT_OUTPUT 0x2
     126typedef uint8 VBSVGA3dVideoProcessorFormatSupport;
     127
     128#define VBSVGA3D_VP_DEVICE_CAPS_LINEAR_SPACE            0x1
     129#define VBSVGA3D_VP_DEVICE_CAPS_xvYCC                   0x2
     130#define VBSVGA3D_VP_DEVICE_CAPS_RGB_RANGE_CONVERSION    0x4
     131#define VBSVGA3D_VP_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION 0x8
     132#define VBSVGA3D_VP_DEVICE_CAPS_NOMINAL_RANGE           0x10
     133typedef uint32 VBSVGA3dVideoProcessorDeviceCaps;
     134
     135#define VBSVGA3D_VP_FEATURE_CAPS_ALPHA_FILL         0x1
     136#define VBSVGA3D_VP_FEATURE_CAPS_CONSTRICTION       0x2
     137#define VBSVGA3D_VP_FEATURE_CAPS_LUMA_KEY           0x4
     138#define VBSVGA3D_VP_FEATURE_CAPS_ALPHA_PALETTE      0x8
     139#define VBSVGA3D_VP_FEATURE_CAPS_LEGACY             0x10
     140#define VBSVGA3D_VP_FEATURE_CAPS_STEREO             0x20
     141#define VBSVGA3D_VP_FEATURE_CAPS_ROTATION           0x40
     142#define VBSVGA3D_VP_FEATURE_CAPS_ALPHA_STREAM       0x80
     143#define VBSVGA3D_VP_FEATURE_CAPS_PIXEL_ASPECT_RATIO 0x100
     144#define VBSVGA3D_VP_FEATURE_CAPS_MIRROR             0x200
     145#define VBSVGA3D_VP_FEATURE_CAPS_SHADER_USAGE       0x400
     146#define VBSVGA3D_VP_FEATURE_CAPS_METADATA_HDR10     0x800
     147typedef uint32 VBSVGA3dVideoProcessorFeatureCaps;
     148
     149#define VBSVGA3D_VP_FILTER_CAPS_BRIGHTNESS         0x1
     150#define VBSVGA3D_VP_FILTER_CAPS_CONTRAST           0x2
     151#define VBSVGA3D_VP_FILTER_CAPS_HUE                0x4
     152#define VBSVGA3D_VP_FILTER_CAPS_SATURATION         0x8
     153#define VBSVGA3D_VP_FILTER_CAPS_NOISE_REDUCTION    0x10
     154#define VBSVGA3D_VP_FILTER_CAPS_EDGE_ENHANCEMENT   0x20
     155#define VBSVGA3D_VP_FILTER_CAPS_ANAMORPHIC_SCALING 0x40
     156#define VBSVGA3D_VP_FILTER_CAPS_STEREO_ADJUSTMENT  0x80
     157typedef uint32 VBSVGA3dVideoProcessorFilterCaps;
     158
     159#define VBSVGA3D_VP_FORMAT_CAPS_RGB_INTERLACED     0x1
     160#define VBSVGA3D_VP_FORMAT_CAPS_RGB_PROCAMP        0x2
     161#define VBSVGA3D_VP_FORMAT_CAPS_RGB_LUMA_KEY       0x4
     162#define VBSVGA3D_VP_FORMAT_CAPS_PALETTE_INTERLACED 0x8
     163typedef uint32 VBSVGA3dVideoProcessorInputFormatCaps;
     164
     165#define VBSVGA3D_VP_AUTO_STREAM_CAPS_DENOISE             0x1
     166#define VBSVGA3D_VP_AUTO_STREAM_CAPS_DERINGING           0x2
     167#define VBSVGA3D_VP_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT    0x4
     168#define VBSVGA3D_VP_AUTO_STREAM_CAPS_COLOR_CORRECTION    0x8
     169#define VBSVGA3D_VP_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING  0x10
     170#define VBSVGA3D_VP_AUTO_STREAM_CAPS_IMAGE_STABILIZATION 0x20
     171#define VBSVGA3D_VP_AUTO_STREAM_CAPS_SUPER_RESOLUTION    0x40
     172#define VBSVGA3D_VP_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING  0x80
     173typedef uint32 VBSVGA3dVideoProcessorAutoStreamCaps;
     174
     175#define VBSVGA3D_VP_STEREO_CAPS_MONO_OFFSET        0x1
     176#define VBSVGA3D_VP_STEREO_CAPS_ROW_INTERLEAVED    0x2
     177#define VBSVGA3D_VP_STEREO_CAPS_COLUMN_INTERLEAVED 0x4
     178#define VBSVGA3D_VP_STEREO_CAPS_CHECKERBOARD       0x8
     179#define VBSVGA3D_VP_STEREO_CAPS_FLIP_MODE          0x10
     180typedef uint32 VBSVGA3dVideoProcessorStereoCaps;
     181
     182#define VBSVGA3D_VP_CAPS_DEINTERLACE_BLEND                 0x1
     183#define VBSVGA3D_VP_CAPS_DEINTERLACE_BOB                   0x2
     184#define VBSVGA3D_VP_CAPS_DEINTERLACE_ADAPTIVE              0x4
     185#define VBSVGA3D_VP_CAPS_DEINTERLACE_MOTION_COMPENSATION   0x8
     186#define VBSVGA3D_VP_CAPS_INVERSE_TELECINE                  0x10
     187#define VBSVGA3D_VP_CAPS_FRAME_RATE_CONVERSION             0x20
     188typedef uint32 VBSVGA3dVideoRateConversionProcessorCaps;
     189
     190#define VBSVGA3D_VP_ITELECINE_CAPS_32           0x1
     191#define VBSVGA3D_VP_ITELECINE_CAPS_22           0x2
     192#define VBSVGA3D_VP_ITELECINE_CAPS_2224         0x4
     193#define VBSVGA3D_VP_ITELECINE_CAPS_2332         0x8
     194#define VBSVGA3D_VP_ITELECINE_CAPS_32322        0x10
     195#define VBSVGA3D_VP_ITELECINE_CAPS_55           0x20
     196#define VBSVGA3D_VP_ITELECINE_CAPS_64           0x40
     197#define VBSVGA3D_VP_ITELECINE_CAPS_87           0x80
     198#define VBSVGA3D_VP_ITELECINE_CAPS_222222222223 0x100
     199#define VBSVGA3D_VP_ITELECINE_CAPS_OTHER        0x80000000
     200typedef uint32 VBSVGA3dVideoRateConversionITelecineCaps;
     201
    113202#define VBSVGA3D_VIDEO_CAPABILITY_DECODE_PROFILE 0
    114203#define VBSVGA3D_VIDEO_CAPABILITY_DECODE_CONFIG  1
     204#define VBSVGA3D_VIDEO_CAPABILITY_PROCESSOR_ENUM 2
    115205typedef uint32 VBSVGA3dVideoCapability;
    116206
     
    128218typedef struct {
    129219    VBSVGA3dVideoProcessorDesc desc;
    130     uint32 RateConversionCapsIndex;
    131     uint32 pad[5];
     220    uint32 pad[6];
    132221} VBSVGACOTableDXVideoProcessorEntry;
    133222AssertCompile(sizeof(VBSVGACOTableDXVideoProcessorEntry) == 16 * 4);
     
    137226
    138227    VBSVGA3dVideoProcessorDesc desc;
    139     uint32 RateConversionCapsIndex;
    140228} VBSVGA3dCmdDXDefineVideoProcessor;
    141229/* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR */
     
    475563/* VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_ALPHA */
    476564
    477 /** @todo palette */
     565typedef struct VBSVGA3dCmdDXVideoProcessorSetStreamPalette {
     566    VBSVGA3dVideoProcessorId videoProcessorId;
     567    uint32 streamIndex;
     568    /* uint32 entries: B8G8R8A8 or AYUV  format. */
     569} VBSVGA3dCmdDXVideoProcessorSetStreamPalette;
     570/* VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_PALETTE */
    478571
    479572typedef struct VBSVGA3dCmdDXVideoProcessorSetStreamPixelAspectRatio {
     
    537630    uint8 fAYUV;
    538631    uint8 fNV12;
    539     uint8 f420_OPAQUE;  /* For example YV12 */
     632    uint8 fYUY2;
    540633} VBSVGA3dDecodeProfileInfo;
    541634
     
    544637    VBSVGA3dVideoDecoderConfig aConfig[1]; /* [(cbDataOut - sizeof(desc)) / sizeof(aConfig[0])] */
    545638} VBSVGA3dDecodeConfigInfo;
     639
     640typedef struct {
     641    VBSVGA3dVideoProcessorDeviceCaps DeviceCaps;
     642    VBSVGA3dVideoProcessorFeatureCaps FeatureCaps;
     643    VBSVGA3dVideoProcessorFilterCaps FilterCaps;
     644    VBSVGA3dVideoProcessorInputFormatCaps InputFormatCaps;
     645    VBSVGA3dVideoProcessorAutoStreamCaps AutoStreamCaps;
     646    VBSVGA3dVideoProcessorStereoCaps StereoCaps;
     647    uint32 RateConversionCapsCount;
     648    uint32 MaxInputStreams;
     649    uint32 MaxStreamStates;
     650} VBSVGA3dVideoProcessorCaps;
     651
     652typedef struct {
     653    uint32 PastFrames;
     654    uint32 FutureFrames;
     655    VBSVGA3dVideoRateConversionProcessorCaps ProcessorCaps;
     656    VBSVGA3dVideoRateConversionITelecineCaps ITelecineCaps;
     657} VBSVGA3dVideoProcessorRateCaps;
     658
     659typedef struct {
     660    int32 Minimum;
     661    int32 Maximum;
     662    int32 Default;
     663    float Multiplier;
     664} VBSVGA3dVideoProcessorFilterRange;
     665
     666typedef struct {
     667    /* SVGA video processor formats. */
     668    VBSVGA3dVideoProcessorFormatSupport fR8_UNORM;
     669    VBSVGA3dVideoProcessorFormatSupport fR16_UNORM;
     670    VBSVGA3dVideoProcessorFormatSupport fNV12;
     671    VBSVGA3dVideoProcessorFormatSupport fYUY2;
     672    VBSVGA3dVideoProcessorFormatSupport fR16G16B16A16_FLOAT;
     673    VBSVGA3dVideoProcessorFormatSupport fB8G8R8X8_UNORM;
     674    VBSVGA3dVideoProcessorFormatSupport fB8G8R8A8_UNORM;
     675    VBSVGA3dVideoProcessorFormatSupport fR8G8B8A8_UNORM;
     676    VBSVGA3dVideoProcessorFormatSupport fR10G10B10A2_UNORM;
     677    VBSVGA3dVideoProcessorFormatSupport fR10G10B10_XR_BIAS_A2_UNORM;
     678    VBSVGA3dVideoProcessorFormatSupport fR8G8B8A8_UNORM_SRGB;
     679    VBSVGA3dVideoProcessorFormatSupport fB8G8R8A8_UNORM_SRGB;
     680
     681    VBSVGA3dVideoProcessorCaps Caps;
     682    VBSVGA3dVideoProcessorRateCaps RateCaps;
     683    VBSVGA3dVideoProcessorFilterRange aFilterRange[VBSVGA3D_VP_MAX_FILTER_COUNT];
     684} VBSVGA3dVideoProcessorEnumInfo;
     685
     686typedef struct { /* VBSVGA3D_VIDEO_CAPABILITY_PROCESSOR_ENUM */
     687    VBSVGA3dVideoProcessorDesc desc; /* In */
     688    VBSVGA3dVideoProcessorEnumInfo info;
     689} VBSVGA3dProcessorEnumInfo;
    546690
    547691/* Layout of memory object for VBSVGA3dCmdDXGetVideoCapability command. */
     
    553697        VBSVGA3dDecodeProfileInfo aDecodeProfile[1]; /* [cbDataOut / sizeof(aDecodeProfile[0])] */
    554698        VBSVGA3dDecodeConfigInfo config;
     699        VBSVGA3dProcessorEnumInfo processorEnum;
    555700    } data;
    556701} VBSVGA3dVideoCapabilityMobLayout;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette