Changeset 102293 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Nov 24, 2023 1:15:48 PM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/vmsvga_include/vbsvga3d_dx.h
r102136 r102293 29 29 #include "svga3d_dx.h" 30 30 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 31 41 typedef uint32 VBSVGA3dVideoProcessorId; 32 42 typedef uint32 VBSVGA3dVideoDecoderOutputViewId; … … 103 113 #define VBSVGA3D_VP_FILTER_ANAMORPHIC_SCALING 6 104 114 #define VBSVGA3D_VP_FILTER_STEREO_ADJUSTMENT 7 115 #define VBSVGA3D_VP_MAX_FILTER_COUNT 8 105 116 typedef uint32 VBSVGA3dVideoProcessorFilter; 106 117 … … 111 122 typedef uint32 VBSVGA3dVideoProcessorRotation; 112 123 124 #define VBSVGA3D_VP_FORMAT_SUPPORT_INPUT 0x1 125 #define VBSVGA3D_VP_FORMAT_SUPPORT_OUTPUT 0x2 126 typedef 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 133 typedef 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 147 typedef 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 157 typedef 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 163 typedef 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 173 typedef 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 180 typedef 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 188 typedef 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 200 typedef uint32 VBSVGA3dVideoRateConversionITelecineCaps; 201 113 202 #define VBSVGA3D_VIDEO_CAPABILITY_DECODE_PROFILE 0 114 203 #define VBSVGA3D_VIDEO_CAPABILITY_DECODE_CONFIG 1 204 #define VBSVGA3D_VIDEO_CAPABILITY_PROCESSOR_ENUM 2 115 205 typedef uint32 VBSVGA3dVideoCapability; 116 206 … … 128 218 typedef struct { 129 219 VBSVGA3dVideoProcessorDesc desc; 130 uint32 RateConversionCapsIndex; 131 uint32 pad[5]; 220 uint32 pad[6]; 132 221 } VBSVGACOTableDXVideoProcessorEntry; 133 222 AssertCompile(sizeof(VBSVGACOTableDXVideoProcessorEntry) == 16 * 4); … … 137 226 138 227 VBSVGA3dVideoProcessorDesc desc; 139 uint32 RateConversionCapsIndex;140 228 } VBSVGA3dCmdDXDefineVideoProcessor; 141 229 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR */ … … 475 563 /* VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_ALPHA */ 476 564 477 /** @todo palette */ 565 typedef 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 */ 478 571 479 572 typedef struct VBSVGA3dCmdDXVideoProcessorSetStreamPixelAspectRatio { … … 537 630 uint8 fAYUV; 538 631 uint8 fNV12; 539 uint8 f 420_OPAQUE; /* For example YV12 */632 uint8 fYUY2; 540 633 } VBSVGA3dDecodeProfileInfo; 541 634 … … 544 637 VBSVGA3dVideoDecoderConfig aConfig[1]; /* [(cbDataOut - sizeof(desc)) / sizeof(aConfig[0])] */ 545 638 } VBSVGA3dDecodeConfigInfo; 639 640 typedef 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 652 typedef struct { 653 uint32 PastFrames; 654 uint32 FutureFrames; 655 VBSVGA3dVideoRateConversionProcessorCaps ProcessorCaps; 656 VBSVGA3dVideoRateConversionITelecineCaps ITelecineCaps; 657 } VBSVGA3dVideoProcessorRateCaps; 658 659 typedef struct { 660 int32 Minimum; 661 int32 Maximum; 662 int32 Default; 663 float Multiplier; 664 } VBSVGA3dVideoProcessorFilterRange; 665 666 typedef 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 686 typedef struct { /* VBSVGA3D_VIDEO_CAPABILITY_PROCESSOR_ENUM */ 687 VBSVGA3dVideoProcessorDesc desc; /* In */ 688 VBSVGA3dVideoProcessorEnumInfo info; 689 } VBSVGA3dProcessorEnumInfo; 546 690 547 691 /* Layout of memory object for VBSVGA3dCmdDXGetVideoCapability command. */ … … 553 697 VBSVGA3dDecodeProfileInfo aDecodeProfile[1]; /* [cbDataOut / sizeof(aDecodeProfile[0])] */ 554 698 VBSVGA3dDecodeConfigInfo config; 699 VBSVGA3dProcessorEnumInfo processorEnum; 555 700 } data; 556 701 } VBSVGA3dVideoCapabilityMobLayout;
Note:
See TracChangeset
for help on using the changeset viewer.