Changeset 93670 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Video/common/wddm
- Timestamp:
- Feb 9, 2022 9:14:34 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 149835
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/common/wddm/VBoxMPIf.h
r93115 r93670 902 902 } 903 903 904 #if defined(VBOX_WITH_VMSVGA3D_DX) 905 DECLINLINE(UINT) vboxWddmCalcBitsPerPixelDXGI(DXGI_FORMAT enmFormat) 906 { 907 switch (enmFormat) 908 { 909 case DXGI_FORMAT_UNKNOWN: 910 return 8; 911 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 912 case DXGI_FORMAT_R32G32B32A32_FLOAT: 913 case DXGI_FORMAT_R32G32B32A32_UINT: 914 case DXGI_FORMAT_R32G32B32A32_SINT: 915 return 128; 916 case DXGI_FORMAT_R32G32B32_TYPELESS: 917 case DXGI_FORMAT_R32G32B32_FLOAT: 918 case DXGI_FORMAT_R32G32B32_UINT: 919 case DXGI_FORMAT_R32G32B32_SINT: 920 return 96; 921 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 922 case DXGI_FORMAT_R16G16B16A16_FLOAT: 923 case DXGI_FORMAT_R16G16B16A16_UNORM: 924 case DXGI_FORMAT_R16G16B16A16_UINT: 925 case DXGI_FORMAT_R16G16B16A16_SNORM: 926 case DXGI_FORMAT_R16G16B16A16_SINT: 927 case DXGI_FORMAT_R32G32_TYPELESS: 928 case DXGI_FORMAT_R32G32_FLOAT: 929 case DXGI_FORMAT_R32G32_UINT: 930 case DXGI_FORMAT_R32G32_SINT: 931 return 64; 932 case DXGI_FORMAT_R32G8X24_TYPELESS: 933 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 934 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 935 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 936 return 64; 937 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 938 case DXGI_FORMAT_R10G10B10A2_UNORM: 939 case DXGI_FORMAT_R10G10B10A2_UINT: 940 return 32; 941 case DXGI_FORMAT_R11G11B10_FLOAT: 942 return 32; 943 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 944 case DXGI_FORMAT_R8G8B8A8_UNORM: 945 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 946 case DXGI_FORMAT_R8G8B8A8_UINT: 947 case DXGI_FORMAT_R8G8B8A8_SNORM: 948 case DXGI_FORMAT_R8G8B8A8_SINT: 949 return 32; 950 case DXGI_FORMAT_R16G16_TYPELESS: 951 case DXGI_FORMAT_R16G16_FLOAT: 952 case DXGI_FORMAT_R16G16_UNORM: 953 case DXGI_FORMAT_R16G16_UINT: 954 case DXGI_FORMAT_R16G16_SNORM: 955 case DXGI_FORMAT_R16G16_SINT: 956 return 32; 957 case DXGI_FORMAT_R32_TYPELESS: 958 case DXGI_FORMAT_D32_FLOAT: 959 case DXGI_FORMAT_R32_FLOAT: 960 case DXGI_FORMAT_R32_UINT: 961 case DXGI_FORMAT_R32_SINT: 962 case DXGI_FORMAT_R24G8_TYPELESS: 963 case DXGI_FORMAT_D24_UNORM_S8_UINT: 964 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 965 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 966 return 32; 967 case DXGI_FORMAT_R8G8_TYPELESS: 968 case DXGI_FORMAT_R8G8_UNORM: 969 case DXGI_FORMAT_R8G8_UINT: 970 case DXGI_FORMAT_R8G8_SNORM: 971 case DXGI_FORMAT_R8G8_SINT: 972 case DXGI_FORMAT_R16_TYPELESS: 973 case DXGI_FORMAT_R16_FLOAT: 974 case DXGI_FORMAT_D16_UNORM: 975 case DXGI_FORMAT_R16_UNORM: 976 case DXGI_FORMAT_R16_UINT: 977 case DXGI_FORMAT_R16_SNORM: 978 case DXGI_FORMAT_R16_SINT: 979 return 16; 980 case DXGI_FORMAT_R8_TYPELESS: 981 case DXGI_FORMAT_R8_UNORM: 982 case DXGI_FORMAT_R8_UINT: 983 case DXGI_FORMAT_R8_SNORM: 984 case DXGI_FORMAT_R8_SINT: 985 case DXGI_FORMAT_A8_UNORM: 986 return 8; 987 case DXGI_FORMAT_R1_UNORM: 988 return 1; 989 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 990 case DXGI_FORMAT_R8G8_B8G8_UNORM: 991 case DXGI_FORMAT_G8R8_G8B8_UNORM: 992 return 32; 993 case DXGI_FORMAT_BC1_TYPELESS: 994 case DXGI_FORMAT_BC1_UNORM: 995 case DXGI_FORMAT_BC1_UNORM_SRGB: 996 return 4; 997 case DXGI_FORMAT_BC2_TYPELESS: 998 case DXGI_FORMAT_BC2_UNORM: 999 case DXGI_FORMAT_BC2_UNORM_SRGB: 1000 case DXGI_FORMAT_BC3_TYPELESS: 1001 case DXGI_FORMAT_BC3_UNORM: 1002 case DXGI_FORMAT_BC3_UNORM_SRGB: 1003 return 8; 1004 case DXGI_FORMAT_BC4_TYPELESS: 1005 case DXGI_FORMAT_BC4_UNORM: 1006 case DXGI_FORMAT_BC4_SNORM: 1007 return 4; 1008 case DXGI_FORMAT_BC5_TYPELESS: 1009 case DXGI_FORMAT_BC5_UNORM: 1010 case DXGI_FORMAT_BC5_SNORM: 1011 return 8; 1012 case DXGI_FORMAT_B5G6R5_UNORM: 1013 case DXGI_FORMAT_B5G5R5A1_UNORM: 1014 return 16; 1015 case DXGI_FORMAT_B8G8R8A8_UNORM: 1016 case DXGI_FORMAT_B8G8R8X8_UNORM: 1017 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 1018 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 1019 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 1020 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 1021 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 1022 return 32; 1023 case DXGI_FORMAT_BC6H_TYPELESS: 1024 case DXGI_FORMAT_BC6H_UF16: 1025 case DXGI_FORMAT_BC6H_SF16: 1026 case DXGI_FORMAT_BC7_TYPELESS: 1027 case DXGI_FORMAT_BC7_UNORM: 1028 case DXGI_FORMAT_BC7_UNORM_SRGB: 1029 return 8; 1030 case DXGI_FORMAT_AYUV: 1031 case DXGI_FORMAT_Y410: 1032 return 32; 1033 case DXGI_FORMAT_Y416: 1034 return 64; 1035 case DXGI_FORMAT_NV12: 1036 return 12; 1037 case DXGI_FORMAT_P010: 1038 case DXGI_FORMAT_P016: 1039 return 24; 1040 case DXGI_FORMAT_420_OPAQUE: 1041 return 12; 1042 case DXGI_FORMAT_YUY2: 1043 return 32; 1044 case DXGI_FORMAT_Y210: 1045 case DXGI_FORMAT_Y216: 1046 return 64; 1047 case DXGI_FORMAT_NV11: 1048 return 12; 1049 case DXGI_FORMAT_AI44: 1050 case DXGI_FORMAT_IA44: 1051 case DXGI_FORMAT_P8: 1052 return 8; 1053 case DXGI_FORMAT_A8P8: 1054 case DXGI_FORMAT_B4G4R4A4_UNORM: 1055 case DXGI_FORMAT_P208: 1056 case DXGI_FORMAT_V208: 1057 return 16; 1058 case DXGI_FORMAT_V408: 1059 return 24; 1060 default: 1061 AssertBreakpoint(); 1062 return 0; 1063 } 1064 } 1065 #endif /* VBOX_WITH_VMSVGA3D_DX */ 1066 904 1067 #define VBOXWDDM_ARRAY_MAXELEMENTSU32(_t) ((uint32_t)((UINT32_MAX) / sizeof (_t))) 905 1068 #define VBOXWDDM_TRAILARRAY_MAXELEMENTSU32(_t, _af) ((uint32_t)(((~(0UL)) - (uint32_t)RT_OFFSETOF(_t, _af[0])) / RT_SIZEOFMEMB(_t, _af[0])))
Note:
See TracChangeset
for help on using the changeset viewer.