Changeset 86864 in vbox for trunk/src/VBox/Devices/Graphics
- Timestamp:
- Nov 12, 2020 6:05:51 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 141318
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
r86856 r86864 5765 5765 { 5766 5766 uint32_t val = 0; 5767 int rc = vmsvga3dQueryCaps(pThisCC, i, &val);5767 int rc = vmsvga3dQueryCaps(pThisCC, (SVGA3dDevCapIndex)i, &val); 5768 5768 if (RT_SUCCESS(rc)) 5769 5769 pThis->svga.au32DevCaps[i] = val; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp
r86838 r86864 1375 1375 1376 1376 1377 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, uint32_tidx3dCaps, uint32_t *pu32Val)1377 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, SVGA3dDevCapIndex idx3dCaps, uint32_t *pu32Val) 1378 1378 { 1379 1379 PVMSVGA3DSTATE pState = pThisCC->svga.p3dState; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win-dx.cpp
r86855 r86864 94 94 95 95 96 DXGI_FORMAT vmsvgaDXSurfaceFormat2Dxgi(SVGA3dSurfaceFormat format)96 static DXGI_FORMAT vmsvgaDXScreenTargetFormat2Dxgi(SVGA3dSurfaceFormat format) 97 97 { 98 98 switch (format) 99 99 { 100 case SVGA3D_X8R8G8B8: return DXGI_FORMAT_B8G8R8A8_UNORM; 101 default: break; 100 /** @todo More formats required? */ 101 case SVGA3D_X8R8G8B8: return DXGI_FORMAT_B8G8R8A8_UNORM; 102 case SVGA3D_A8R8G8B8: return DXGI_FORMAT_B8G8R8A8_UNORM; 103 default: 104 AssertFailed(); 105 break; 102 106 } 103 107 return DXGI_FORMAT_UNKNOWN; 108 } 109 110 111 static DXGI_FORMAT vmsvgaDXSurfaceFormat2Dxgi(SVGA3dSurfaceFormat format) 112 { 113 #define DXGI_FORMAT_ DXGI_FORMAT_UNKNOWN 114 /** @todo More formats. */ 115 switch (format) 116 { 117 case SVGA3D_X8R8G8B8: return DXGI_FORMAT_B8G8R8X8_UNORM; 118 case SVGA3D_A8R8G8B8: return DXGI_FORMAT_B8G8R8A8_UNORM; 119 case SVGA3D_R5G6B5: return DXGI_FORMAT_B5G6R5_UNORM; 120 case SVGA3D_X1R5G5B5: return DXGI_FORMAT_B5G5R5A1_UNORM; 121 case SVGA3D_A1R5G5B5: return DXGI_FORMAT_B5G5R5A1_UNORM; 122 case SVGA3D_A4R4G4B4: break; // 11.1 return DXGI_FORMAT_B4G4R4A4_UNORM; 123 case SVGA3D_Z_D32: break; 124 case SVGA3D_Z_D16: return DXGI_FORMAT_D16_UNORM; 125 case SVGA3D_Z_D24S8: return DXGI_FORMAT_D24_UNORM_S8_UINT; 126 case SVGA3D_Z_D15S1: break; 127 case SVGA3D_LUMINANCE8: return DXGI_FORMAT_; 128 case SVGA3D_LUMINANCE4_ALPHA4: return DXGI_FORMAT_; 129 case SVGA3D_LUMINANCE16: return DXGI_FORMAT_; 130 case SVGA3D_LUMINANCE8_ALPHA8: return DXGI_FORMAT_; 131 case SVGA3D_DXT1: return DXGI_FORMAT_; 132 case SVGA3D_DXT2: return DXGI_FORMAT_; 133 case SVGA3D_DXT3: return DXGI_FORMAT_; 134 case SVGA3D_DXT4: return DXGI_FORMAT_; 135 case SVGA3D_DXT5: return DXGI_FORMAT_; 136 case SVGA3D_BUMPU8V8: return DXGI_FORMAT_; 137 case SVGA3D_BUMPL6V5U5: return DXGI_FORMAT_; 138 case SVGA3D_BUMPX8L8V8U8: return DXGI_FORMAT_; 139 case SVGA3D_FORMAT_DEAD1: break; 140 case SVGA3D_ARGB_S10E5: return DXGI_FORMAT_; 141 case SVGA3D_ARGB_S23E8: return DXGI_FORMAT_; 142 case SVGA3D_A2R10G10B10: return DXGI_FORMAT_; 143 case SVGA3D_V8U8: return DXGI_FORMAT_; 144 case SVGA3D_Q8W8V8U8: return DXGI_FORMAT_; 145 case SVGA3D_CxV8U8: return DXGI_FORMAT_; 146 case SVGA3D_X8L8V8U8: return DXGI_FORMAT_; 147 case SVGA3D_A2W10V10U10: return DXGI_FORMAT_; 148 case SVGA3D_ALPHA8: return DXGI_FORMAT_; 149 case SVGA3D_R_S10E5: return DXGI_FORMAT_; 150 case SVGA3D_R_S23E8: return DXGI_FORMAT_; 151 case SVGA3D_RG_S10E5: return DXGI_FORMAT_; 152 case SVGA3D_RG_S23E8: return DXGI_FORMAT_; 153 case SVGA3D_BUFFER: return DXGI_FORMAT_; 154 case SVGA3D_Z_D24X8: return DXGI_FORMAT_; 155 case SVGA3D_V16U16: return DXGI_FORMAT_; 156 case SVGA3D_G16R16: return DXGI_FORMAT_; 157 case SVGA3D_A16B16G16R16: return DXGI_FORMAT_; 158 case SVGA3D_UYVY: return DXGI_FORMAT_; 159 case SVGA3D_YUY2: return DXGI_FORMAT_; 160 case SVGA3D_NV12: return DXGI_FORMAT_; 161 case SVGA3D_AYUV: return DXGI_FORMAT_; 162 case SVGA3D_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_TYPELESS; 163 case SVGA3D_R32G32B32A32_UINT: return DXGI_FORMAT_R32G32B32A32_UINT; 164 case SVGA3D_R32G32B32A32_SINT: return DXGI_FORMAT_R32G32B32A32_SINT; 165 case SVGA3D_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_TYPELESS; 166 case SVGA3D_R32G32B32_FLOAT: return DXGI_FORMAT_R32G32B32_FLOAT; 167 case SVGA3D_R32G32B32_UINT: return DXGI_FORMAT_R32G32B32_UINT; 168 case SVGA3D_R32G32B32_SINT: return DXGI_FORMAT_R32G32B32_SINT; 169 case SVGA3D_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_TYPELESS; 170 case SVGA3D_R16G16B16A16_UINT: return DXGI_FORMAT_R16G16B16A16_UINT; 171 case SVGA3D_R16G16B16A16_SNORM: return DXGI_FORMAT_R16G16B16A16_SNORM; 172 case SVGA3D_R16G16B16A16_SINT: return DXGI_FORMAT_R16G16B16A16_SINT; 173 case SVGA3D_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_TYPELESS; 174 case SVGA3D_R32G32_UINT: return DXGI_FORMAT_R32G32_UINT; 175 case SVGA3D_R32G32_SINT: return DXGI_FORMAT_R32G32_SINT; 176 case SVGA3D_R32G8X24_TYPELESS: return DXGI_FORMAT_R32G8X24_TYPELESS; 177 case SVGA3D_D32_FLOAT_S8X24_UINT: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT; 178 case SVGA3D_R32_FLOAT_X8X24: return DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS; 179 case SVGA3D_X32_G8X24_UINT: return DXGI_FORMAT_X32_TYPELESS_G8X24_UINT; 180 case SVGA3D_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_TYPELESS; 181 case SVGA3D_R10G10B10A2_UINT: return DXGI_FORMAT_R10G10B10A2_UINT; 182 case SVGA3D_R11G11B10_FLOAT: return DXGI_FORMAT_R11G11B10_FLOAT; 183 case SVGA3D_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_TYPELESS; 184 case SVGA3D_R8G8B8A8_UNORM: return DXGI_FORMAT_R8G8B8A8_UNORM; 185 case SVGA3D_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; 186 case SVGA3D_R8G8B8A8_UINT: return DXGI_FORMAT_R8G8B8A8_UINT; 187 case SVGA3D_R8G8B8A8_SINT: return DXGI_FORMAT_R8G8B8A8_SINT; 188 case SVGA3D_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_TYPELESS; 189 case SVGA3D_R16G16_UINT: return DXGI_FORMAT_R16G16_UINT; 190 case SVGA3D_R16G16_SINT: return DXGI_FORMAT_R16G16_SINT; 191 case SVGA3D_R32_TYPELESS: return DXGI_FORMAT_R32_TYPELESS; 192 case SVGA3D_D32_FLOAT: return DXGI_FORMAT_D32_FLOAT; 193 case SVGA3D_R32_UINT: return DXGI_FORMAT_R32_UINT; 194 case SVGA3D_R32_SINT: return DXGI_FORMAT_R32_SINT; 195 case SVGA3D_R24G8_TYPELESS: return DXGI_FORMAT_R24G8_TYPELESS; 196 case SVGA3D_D24_UNORM_S8_UINT: return DXGI_FORMAT_D24_UNORM_S8_UINT; 197 case SVGA3D_R24_UNORM_X8: return DXGI_FORMAT_R24_UNORM_X8_TYPELESS; 198 case SVGA3D_X24_G8_UINT: return DXGI_FORMAT_X24_TYPELESS_G8_UINT; 199 case SVGA3D_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_TYPELESS; 200 case SVGA3D_R8G8_UNORM: return DXGI_FORMAT_R8G8_UNORM; 201 case SVGA3D_R8G8_UINT: return DXGI_FORMAT_R8G8_UINT; 202 case SVGA3D_R8G8_SINT: return DXGI_FORMAT_R8G8_SINT; 203 case SVGA3D_R16_TYPELESS: return DXGI_FORMAT_R16_TYPELESS; 204 case SVGA3D_R16_UNORM: return DXGI_FORMAT_R16_UNORM; 205 case SVGA3D_R16_UINT: return DXGI_FORMAT_R16_UINT; 206 case SVGA3D_R16_SNORM: return DXGI_FORMAT_R16_SNORM; 207 case SVGA3D_R16_SINT: return DXGI_FORMAT_R16_SINT; 208 case SVGA3D_R8_TYPELESS: return DXGI_FORMAT_R8_TYPELESS; 209 case SVGA3D_R8_UNORM: return DXGI_FORMAT_R8_UNORM; 210 case SVGA3D_R8_UINT: return DXGI_FORMAT_R8_UINT; 211 case SVGA3D_R8_SNORM: return DXGI_FORMAT_R8_SNORM; 212 case SVGA3D_R8_SINT: return DXGI_FORMAT_R8_SINT; 213 case SVGA3D_P8: break; 214 case SVGA3D_R9G9B9E5_SHAREDEXP: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP; 215 case SVGA3D_R8G8_B8G8_UNORM: return DXGI_FORMAT_R8G8_B8G8_UNORM; 216 case SVGA3D_G8R8_G8B8_UNORM: return DXGI_FORMAT_G8R8_G8B8_UNORM; 217 case SVGA3D_BC1_TYPELESS: return DXGI_FORMAT_BC1_TYPELESS; 218 case SVGA3D_BC1_UNORM_SRGB: return DXGI_FORMAT_BC1_UNORM_SRGB; 219 case SVGA3D_BC2_TYPELESS: return DXGI_FORMAT_BC2_TYPELESS; 220 case SVGA3D_BC2_UNORM_SRGB: return DXGI_FORMAT_BC2_UNORM_SRGB; 221 case SVGA3D_BC3_TYPELESS: return DXGI_FORMAT_BC3_TYPELESS; 222 case SVGA3D_BC3_UNORM_SRGB: return DXGI_FORMAT_BC3_UNORM_SRGB; 223 case SVGA3D_BC4_TYPELESS: return DXGI_FORMAT_BC4_TYPELESS; 224 case SVGA3D_ATI1: break; 225 case SVGA3D_BC4_SNORM: return DXGI_FORMAT_BC4_SNORM; 226 case SVGA3D_BC5_TYPELESS: return DXGI_FORMAT_BC5_TYPELESS; 227 case SVGA3D_ATI2: break; 228 case SVGA3D_BC5_SNORM: return DXGI_FORMAT_BC5_SNORM; 229 case SVGA3D_R10G10B10_XR_BIAS_A2_UNORM: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM; 230 case SVGA3D_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_TYPELESS; 231 case SVGA3D_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; 232 case SVGA3D_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_TYPELESS; 233 case SVGA3D_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; 234 case SVGA3D_Z_DF16: break; 235 case SVGA3D_Z_DF24: break; 236 case SVGA3D_Z_D24S8_INT: return DXGI_FORMAT_D24_UNORM_S8_UINT; 237 case SVGA3D_YV12: break; 238 case SVGA3D_R32G32B32A32_FLOAT: return DXGI_FORMAT_R32G32B32A32_FLOAT; 239 case SVGA3D_R16G16B16A16_FLOAT: return DXGI_FORMAT_R16G16B16A16_FLOAT; 240 case SVGA3D_R16G16B16A16_UNORM: return DXGI_FORMAT_R16G16B16A16_UNORM; 241 case SVGA3D_R32G32_FLOAT: return DXGI_FORMAT_R32G32_FLOAT; 242 case SVGA3D_R10G10B10A2_UNORM: return DXGI_FORMAT_R10G10B10A2_UNORM; 243 case SVGA3D_R8G8B8A8_SNORM: return DXGI_FORMAT_R8G8B8A8_SNORM; 244 case SVGA3D_R16G16_FLOAT: return DXGI_FORMAT_R16G16_FLOAT; 245 case SVGA3D_R16G16_UNORM: return DXGI_FORMAT_R16G16_UNORM; 246 case SVGA3D_R16G16_SNORM: return DXGI_FORMAT_R16G16_SNORM; 247 case SVGA3D_R32_FLOAT: return DXGI_FORMAT_R32_FLOAT; 248 case SVGA3D_R8G8_SNORM: return DXGI_FORMAT_R8G8_SNORM; 249 case SVGA3D_R16_FLOAT: return DXGI_FORMAT_R16_FLOAT; 250 case SVGA3D_D16_UNORM: return DXGI_FORMAT_D16_UNORM; 251 case SVGA3D_A8_UNORM: return DXGI_FORMAT_A8_UNORM; 252 case SVGA3D_BC1_UNORM: return DXGI_FORMAT_BC1_UNORM; 253 case SVGA3D_BC2_UNORM: return DXGI_FORMAT_BC2_UNORM; 254 case SVGA3D_BC3_UNORM: return DXGI_FORMAT_BC3_UNORM; 255 case SVGA3D_B5G6R5_UNORM: return DXGI_FORMAT_B5G6R5_UNORM; 256 case SVGA3D_B5G5R5A1_UNORM: return DXGI_FORMAT_B5G5R5A1_UNORM; 257 case SVGA3D_B8G8R8A8_UNORM: return DXGI_FORMAT_B8G8R8A8_UNORM; 258 case SVGA3D_B8G8R8X8_UNORM: return DXGI_FORMAT_B8G8R8X8_UNORM; 259 case SVGA3D_BC4_UNORM: return DXGI_FORMAT_BC4_UNORM; 260 case SVGA3D_BC5_UNORM: return DXGI_FORMAT_BC5_UNORM; 261 262 case SVGA3D_FORMAT_INVALID: 263 case SVGA3D_FORMAT_MAX: break; 264 } 265 // AssertFailed(); 266 return DXGI_FORMAT_UNKNOWN; 267 #undef DXGI_FORMAT_ 268 } 269 270 271 static SVGA3dSurfaceFormat vmsvgaDXDevCapSurfaceFmt2Format(SVGA3dDevCapIndex enmDevCap) 272 { 273 switch (enmDevCap) 274 { 275 case SVGA3D_DEVCAP_SURFACEFMT_X8R8G8B8: return SVGA3D_X8R8G8B8; 276 case SVGA3D_DEVCAP_SURFACEFMT_A8R8G8B8: return SVGA3D_A8R8G8B8; 277 case SVGA3D_DEVCAP_SURFACEFMT_A2R10G10B10: return SVGA3D_A2R10G10B10; 278 case SVGA3D_DEVCAP_SURFACEFMT_X1R5G5B5: return SVGA3D_X1R5G5B5; 279 case SVGA3D_DEVCAP_SURFACEFMT_A1R5G5B5: return SVGA3D_A1R5G5B5; 280 case SVGA3D_DEVCAP_SURFACEFMT_A4R4G4B4: return SVGA3D_A4R4G4B4; 281 case SVGA3D_DEVCAP_SURFACEFMT_R5G6B5: return SVGA3D_R5G6B5; 282 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE16: return SVGA3D_LUMINANCE16; 283 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8_ALPHA8: return SVGA3D_LUMINANCE8_ALPHA8; 284 case SVGA3D_DEVCAP_SURFACEFMT_ALPHA8: return SVGA3D_ALPHA8; 285 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8: return SVGA3D_LUMINANCE8; 286 case SVGA3D_DEVCAP_SURFACEFMT_Z_D16: return SVGA3D_Z_D16; 287 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8: return SVGA3D_Z_D24S8; 288 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24X8: return SVGA3D_Z_D24X8; 289 case SVGA3D_DEVCAP_SURFACEFMT_DXT1: return SVGA3D_DXT1; 290 case SVGA3D_DEVCAP_SURFACEFMT_DXT2: return SVGA3D_DXT2; 291 case SVGA3D_DEVCAP_SURFACEFMT_DXT3: return SVGA3D_DXT3; 292 case SVGA3D_DEVCAP_SURFACEFMT_DXT4: return SVGA3D_DXT4; 293 case SVGA3D_DEVCAP_SURFACEFMT_DXT5: return SVGA3D_DXT5; 294 case SVGA3D_DEVCAP_SURFACEFMT_BUMPX8L8V8U8: return SVGA3D_BUMPX8L8V8U8; 295 case SVGA3D_DEVCAP_SURFACEFMT_A2W10V10U10: return SVGA3D_A2W10V10U10; 296 case SVGA3D_DEVCAP_SURFACEFMT_BUMPU8V8: return SVGA3D_BUMPU8V8; 297 case SVGA3D_DEVCAP_SURFACEFMT_Q8W8V8U8: return SVGA3D_Q8W8V8U8; 298 case SVGA3D_DEVCAP_SURFACEFMT_CxV8U8: return SVGA3D_CxV8U8; 299 case SVGA3D_DEVCAP_SURFACEFMT_R_S10E5: return SVGA3D_R_S10E5; 300 case SVGA3D_DEVCAP_SURFACEFMT_R_S23E8: return SVGA3D_R_S23E8; 301 case SVGA3D_DEVCAP_SURFACEFMT_RG_S10E5: return SVGA3D_RG_S10E5; 302 case SVGA3D_DEVCAP_SURFACEFMT_RG_S23E8: return SVGA3D_RG_S23E8; 303 case SVGA3D_DEVCAP_SURFACEFMT_ARGB_S10E5: return SVGA3D_ARGB_S10E5; 304 case SVGA3D_DEVCAP_SURFACEFMT_ARGB_S23E8: return SVGA3D_ARGB_S23E8; 305 case SVGA3D_DEVCAP_SURFACEFMT_V16U16: return SVGA3D_V16U16; 306 case SVGA3D_DEVCAP_SURFACEFMT_G16R16: return SVGA3D_G16R16; 307 case SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16: return SVGA3D_A16B16G16R16; 308 case SVGA3D_DEVCAP_SURFACEFMT_UYVY: return SVGA3D_UYVY; 309 case SVGA3D_DEVCAP_SURFACEFMT_YUY2: return SVGA3D_YUY2; 310 case SVGA3D_DEVCAP_SURFACEFMT_NV12: return SVGA3D_NV12; 311 case SVGA3D_DEVCAP_SURFACEFMT_AYUV: return SVGA3D_AYUV; 312 case SVGA3D_DEVCAP_SURFACEFMT_Z_DF16: return SVGA3D_Z_DF16; 313 case SVGA3D_DEVCAP_SURFACEFMT_Z_DF24: return SVGA3D_Z_DF24; 314 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT: return SVGA3D_Z_D24S8_INT; 315 case SVGA3D_DEVCAP_SURFACEFMT_ATI1: return SVGA3D_ATI1; 316 case SVGA3D_DEVCAP_SURFACEFMT_ATI2: return SVGA3D_ATI2; 317 case SVGA3D_DEVCAP_SURFACEFMT_YV12: return SVGA3D_YV12; 318 default: 319 AssertFailed(); 320 break; 321 } 322 return SVGA3D_FORMAT_INVALID; 323 } 324 325 326 static SVGA3dSurfaceFormat vmsvgaDXDevCapDxfmt2Format(SVGA3dDevCapIndex enmDevCap) 327 { 328 switch (enmDevCap) 329 { 330 case SVGA3D_DEVCAP_DXFMT_X8R8G8B8: return SVGA3D_X8R8G8B8; 331 case SVGA3D_DEVCAP_DXFMT_A8R8G8B8: return SVGA3D_A8R8G8B8; 332 case SVGA3D_DEVCAP_DXFMT_R5G6B5: return SVGA3D_R5G6B5; 333 case SVGA3D_DEVCAP_DXFMT_X1R5G5B5: return SVGA3D_X1R5G5B5; 334 case SVGA3D_DEVCAP_DXFMT_A1R5G5B5: return SVGA3D_A1R5G5B5; 335 case SVGA3D_DEVCAP_DXFMT_A4R4G4B4: return SVGA3D_A4R4G4B4; 336 case SVGA3D_DEVCAP_DXFMT_Z_D32: return SVGA3D_Z_D32; 337 case SVGA3D_DEVCAP_DXFMT_Z_D16: return SVGA3D_Z_D16; 338 case SVGA3D_DEVCAP_DXFMT_Z_D24S8: return SVGA3D_Z_D24S8; 339 case SVGA3D_DEVCAP_DXFMT_Z_D15S1: return SVGA3D_Z_D15S1; 340 case SVGA3D_DEVCAP_DXFMT_LUMINANCE8: return SVGA3D_LUMINANCE8; 341 case SVGA3D_DEVCAP_DXFMT_LUMINANCE4_ALPHA4: return SVGA3D_LUMINANCE4_ALPHA4; 342 case SVGA3D_DEVCAP_DXFMT_LUMINANCE16: return SVGA3D_LUMINANCE16; 343 case SVGA3D_DEVCAP_DXFMT_LUMINANCE8_ALPHA8: return SVGA3D_LUMINANCE8_ALPHA8; 344 case SVGA3D_DEVCAP_DXFMT_DXT1: return SVGA3D_DXT1; 345 case SVGA3D_DEVCAP_DXFMT_DXT2: return SVGA3D_DXT2; 346 case SVGA3D_DEVCAP_DXFMT_DXT3: return SVGA3D_DXT3; 347 case SVGA3D_DEVCAP_DXFMT_DXT4: return SVGA3D_DXT4; 348 case SVGA3D_DEVCAP_DXFMT_DXT5: return SVGA3D_DXT5; 349 case SVGA3D_DEVCAP_DXFMT_BUMPU8V8: return SVGA3D_BUMPU8V8; 350 case SVGA3D_DEVCAP_DXFMT_BUMPL6V5U5: return SVGA3D_BUMPL6V5U5; 351 case SVGA3D_DEVCAP_DXFMT_BUMPX8L8V8U8: return SVGA3D_BUMPX8L8V8U8; 352 case SVGA3D_DEVCAP_DXFMT_FORMAT_DEAD1: return SVGA3D_FORMAT_DEAD1; 353 case SVGA3D_DEVCAP_DXFMT_ARGB_S10E5: return SVGA3D_ARGB_S10E5; 354 case SVGA3D_DEVCAP_DXFMT_ARGB_S23E8: return SVGA3D_ARGB_S23E8; 355 case SVGA3D_DEVCAP_DXFMT_A2R10G10B10: return SVGA3D_A2R10G10B10; 356 case SVGA3D_DEVCAP_DXFMT_V8U8: return SVGA3D_V8U8; 357 case SVGA3D_DEVCAP_DXFMT_Q8W8V8U8: return SVGA3D_Q8W8V8U8; 358 case SVGA3D_DEVCAP_DXFMT_CxV8U8: return SVGA3D_CxV8U8; 359 case SVGA3D_DEVCAP_DXFMT_X8L8V8U8: return SVGA3D_X8L8V8U8; 360 case SVGA3D_DEVCAP_DXFMT_A2W10V10U10: return SVGA3D_A2W10V10U10; 361 case SVGA3D_DEVCAP_DXFMT_ALPHA8: return SVGA3D_ALPHA8; 362 case SVGA3D_DEVCAP_DXFMT_R_S10E5: return SVGA3D_R_S10E5; 363 case SVGA3D_DEVCAP_DXFMT_R_S23E8: return SVGA3D_R_S23E8; 364 case SVGA3D_DEVCAP_DXFMT_RG_S10E5: return SVGA3D_RG_S10E5; 365 case SVGA3D_DEVCAP_DXFMT_RG_S23E8: return SVGA3D_RG_S23E8; 366 case SVGA3D_DEVCAP_DXFMT_BUFFER: return SVGA3D_BUFFER; 367 case SVGA3D_DEVCAP_DXFMT_Z_D24X8: return SVGA3D_Z_D24X8; 368 case SVGA3D_DEVCAP_DXFMT_V16U16: return SVGA3D_V16U16; 369 case SVGA3D_DEVCAP_DXFMT_G16R16: return SVGA3D_G16R16; 370 case SVGA3D_DEVCAP_DXFMT_A16B16G16R16: return SVGA3D_A16B16G16R16; 371 case SVGA3D_DEVCAP_DXFMT_UYVY: return SVGA3D_UYVY; 372 case SVGA3D_DEVCAP_DXFMT_YUY2: return SVGA3D_YUY2; 373 case SVGA3D_DEVCAP_DXFMT_NV12: return SVGA3D_NV12; 374 case SVGA3D_DEVCAP_DXFMT_AYUV: return SVGA3D_AYUV; 375 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_TYPELESS: return SVGA3D_R32G32B32A32_TYPELESS; 376 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_UINT: return SVGA3D_R32G32B32A32_UINT; 377 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_SINT: return SVGA3D_R32G32B32A32_SINT; 378 case SVGA3D_DEVCAP_DXFMT_R32G32B32_TYPELESS: return SVGA3D_R32G32B32_TYPELESS; 379 case SVGA3D_DEVCAP_DXFMT_R32G32B32_FLOAT: return SVGA3D_R32G32B32_FLOAT; 380 case SVGA3D_DEVCAP_DXFMT_R32G32B32_UINT: return SVGA3D_R32G32B32_UINT; 381 case SVGA3D_DEVCAP_DXFMT_R32G32B32_SINT: return SVGA3D_R32G32B32_SINT; 382 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_TYPELESS: return SVGA3D_R16G16B16A16_TYPELESS; 383 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UINT: return SVGA3D_R16G16B16A16_UINT; 384 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SNORM: return SVGA3D_R16G16B16A16_SNORM; 385 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SINT: return SVGA3D_R16G16B16A16_SINT; 386 case SVGA3D_DEVCAP_DXFMT_R32G32_TYPELESS: return SVGA3D_R32G32_TYPELESS; 387 case SVGA3D_DEVCAP_DXFMT_R32G32_UINT: return SVGA3D_R32G32_UINT; 388 case SVGA3D_DEVCAP_DXFMT_R32G32_SINT: return SVGA3D_R32G32_SINT; 389 case SVGA3D_DEVCAP_DXFMT_R32G8X24_TYPELESS: return SVGA3D_R32G8X24_TYPELESS; 390 case SVGA3D_DEVCAP_DXFMT_D32_FLOAT_S8X24_UINT: return SVGA3D_D32_FLOAT_S8X24_UINT; 391 case SVGA3D_DEVCAP_DXFMT_R32_FLOAT_X8X24_TYPELESS: return SVGA3D_R32_FLOAT_X8X24; 392 case SVGA3D_DEVCAP_DXFMT_X32_TYPELESS_G8X24_UINT: return SVGA3D_X32_G8X24_UINT; 393 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_TYPELESS: return SVGA3D_R10G10B10A2_TYPELESS; 394 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UINT: return SVGA3D_R10G10B10A2_UINT; 395 case SVGA3D_DEVCAP_DXFMT_R11G11B10_FLOAT: return SVGA3D_R11G11B10_FLOAT; 396 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_TYPELESS: return SVGA3D_R8G8B8A8_TYPELESS; 397 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM: return SVGA3D_R8G8B8A8_UNORM; 398 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM_SRGB: return SVGA3D_R8G8B8A8_UNORM_SRGB; 399 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UINT: return SVGA3D_R8G8B8A8_UINT; 400 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SINT: return SVGA3D_R8G8B8A8_SINT; 401 case SVGA3D_DEVCAP_DXFMT_R16G16_TYPELESS: return SVGA3D_R16G16_TYPELESS; 402 case SVGA3D_DEVCAP_DXFMT_R16G16_UINT: return SVGA3D_R16G16_UINT; 403 case SVGA3D_DEVCAP_DXFMT_R16G16_SINT: return SVGA3D_R16G16_SINT; 404 case SVGA3D_DEVCAP_DXFMT_R32_TYPELESS: return SVGA3D_R32_TYPELESS; 405 case SVGA3D_DEVCAP_DXFMT_D32_FLOAT: return SVGA3D_D32_FLOAT; 406 case SVGA3D_DEVCAP_DXFMT_R32_UINT: return SVGA3D_R32_UINT; 407 case SVGA3D_DEVCAP_DXFMT_R32_SINT: return SVGA3D_R32_SINT; 408 case SVGA3D_DEVCAP_DXFMT_R24G8_TYPELESS: return SVGA3D_R24G8_TYPELESS; 409 case SVGA3D_DEVCAP_DXFMT_D24_UNORM_S8_UINT: return SVGA3D_D24_UNORM_S8_UINT; 410 case SVGA3D_DEVCAP_DXFMT_R24_UNORM_X8_TYPELESS: return SVGA3D_R24_UNORM_X8; 411 case SVGA3D_DEVCAP_DXFMT_X24_TYPELESS_G8_UINT: return SVGA3D_X24_G8_UINT; 412 case SVGA3D_DEVCAP_DXFMT_R8G8_TYPELESS: return SVGA3D_R8G8_TYPELESS; 413 case SVGA3D_DEVCAP_DXFMT_R8G8_UNORM: return SVGA3D_R8G8_UNORM; 414 case SVGA3D_DEVCAP_DXFMT_R8G8_UINT: return SVGA3D_R8G8_UINT; 415 case SVGA3D_DEVCAP_DXFMT_R8G8_SINT: return SVGA3D_R8G8_SINT; 416 case SVGA3D_DEVCAP_DXFMT_R16_TYPELESS: return SVGA3D_R16_TYPELESS; 417 case SVGA3D_DEVCAP_DXFMT_R16_UNORM: return SVGA3D_R16_UNORM; 418 case SVGA3D_DEVCAP_DXFMT_R16_UINT: return SVGA3D_R16_UINT; 419 case SVGA3D_DEVCAP_DXFMT_R16_SNORM: return SVGA3D_R16_SNORM; 420 case SVGA3D_DEVCAP_DXFMT_R16_SINT: return SVGA3D_R16_SINT; 421 case SVGA3D_DEVCAP_DXFMT_R8_TYPELESS: return SVGA3D_R8_TYPELESS; 422 case SVGA3D_DEVCAP_DXFMT_R8_UNORM: return SVGA3D_R8_UNORM; 423 case SVGA3D_DEVCAP_DXFMT_R8_UINT: return SVGA3D_R8_UINT; 424 case SVGA3D_DEVCAP_DXFMT_R8_SNORM: return SVGA3D_R8_SNORM; 425 case SVGA3D_DEVCAP_DXFMT_R8_SINT: return SVGA3D_R8_SINT; 426 case SVGA3D_DEVCAP_DXFMT_P8: return SVGA3D_P8; 427 case SVGA3D_DEVCAP_DXFMT_R9G9B9E5_SHAREDEXP: return SVGA3D_R9G9B9E5_SHAREDEXP; 428 case SVGA3D_DEVCAP_DXFMT_R8G8_B8G8_UNORM: return SVGA3D_R8G8_B8G8_UNORM; 429 case SVGA3D_DEVCAP_DXFMT_G8R8_G8B8_UNORM: return SVGA3D_G8R8_G8B8_UNORM; 430 case SVGA3D_DEVCAP_DXFMT_BC1_TYPELESS: return SVGA3D_BC1_TYPELESS; 431 case SVGA3D_DEVCAP_DXFMT_BC1_UNORM_SRGB: return SVGA3D_BC1_UNORM_SRGB; 432 case SVGA3D_DEVCAP_DXFMT_BC2_TYPELESS: return SVGA3D_BC2_TYPELESS; 433 case SVGA3D_DEVCAP_DXFMT_BC2_UNORM_SRGB: return SVGA3D_BC2_UNORM_SRGB; 434 case SVGA3D_DEVCAP_DXFMT_BC3_TYPELESS: return SVGA3D_BC3_TYPELESS; 435 case SVGA3D_DEVCAP_DXFMT_BC3_UNORM_SRGB: return SVGA3D_BC3_UNORM_SRGB; 436 case SVGA3D_DEVCAP_DXFMT_BC4_TYPELESS: return SVGA3D_BC4_TYPELESS; 437 case SVGA3D_DEVCAP_DXFMT_ATI1: return SVGA3D_ATI1; 438 case SVGA3D_DEVCAP_DXFMT_BC4_SNORM: return SVGA3D_BC4_SNORM; 439 case SVGA3D_DEVCAP_DXFMT_BC5_TYPELESS: return SVGA3D_BC5_TYPELESS; 440 case SVGA3D_DEVCAP_DXFMT_ATI2: return SVGA3D_ATI2; 441 case SVGA3D_DEVCAP_DXFMT_BC5_SNORM: return SVGA3D_BC5_SNORM; 442 case SVGA3D_DEVCAP_DXFMT_R10G10B10_XR_BIAS_A2_UNORM: return SVGA3D_R10G10B10_XR_BIAS_A2_UNORM; 443 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_TYPELESS: return SVGA3D_B8G8R8A8_TYPELESS; 444 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM_SRGB: return SVGA3D_B8G8R8A8_UNORM_SRGB; 445 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_TYPELESS: return SVGA3D_B8G8R8X8_TYPELESS; 446 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM_SRGB: return SVGA3D_B8G8R8X8_UNORM_SRGB; 447 case SVGA3D_DEVCAP_DXFMT_Z_DF16: return SVGA3D_Z_DF16; 448 case SVGA3D_DEVCAP_DXFMT_Z_DF24: return SVGA3D_Z_DF24; 449 case SVGA3D_DEVCAP_DXFMT_Z_D24S8_INT: return SVGA3D_Z_D24S8_INT; 450 case SVGA3D_DEVCAP_DXFMT_YV12: return SVGA3D_YV12; 451 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_FLOAT: return SVGA3D_R32G32B32A32_FLOAT; 452 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_FLOAT: return SVGA3D_R16G16B16A16_FLOAT; 453 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UNORM: return SVGA3D_R16G16B16A16_UNORM; 454 case SVGA3D_DEVCAP_DXFMT_R32G32_FLOAT: return SVGA3D_R32G32_FLOAT; 455 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UNORM: return SVGA3D_R10G10B10A2_UNORM; 456 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SNORM: return SVGA3D_R8G8B8A8_SNORM; 457 case SVGA3D_DEVCAP_DXFMT_R16G16_FLOAT: return SVGA3D_R16G16_FLOAT; 458 case SVGA3D_DEVCAP_DXFMT_R16G16_UNORM: return SVGA3D_R16G16_UNORM; 459 case SVGA3D_DEVCAP_DXFMT_R16G16_SNORM: return SVGA3D_R16G16_SNORM; 460 case SVGA3D_DEVCAP_DXFMT_R32_FLOAT: return SVGA3D_R32_FLOAT; 461 case SVGA3D_DEVCAP_DXFMT_R8G8_SNORM: return SVGA3D_R8G8_SNORM; 462 case SVGA3D_DEVCAP_DXFMT_R16_FLOAT: return SVGA3D_R16_FLOAT; 463 case SVGA3D_DEVCAP_DXFMT_D16_UNORM: return SVGA3D_D16_UNORM; 464 case SVGA3D_DEVCAP_DXFMT_A8_UNORM: return SVGA3D_A8_UNORM; 465 case SVGA3D_DEVCAP_DXFMT_BC1_UNORM: return SVGA3D_BC1_UNORM; 466 case SVGA3D_DEVCAP_DXFMT_BC2_UNORM: return SVGA3D_BC2_UNORM; 467 case SVGA3D_DEVCAP_DXFMT_BC3_UNORM: return SVGA3D_BC3_UNORM; 468 case SVGA3D_DEVCAP_DXFMT_B5G6R5_UNORM: return SVGA3D_B5G6R5_UNORM; 469 case SVGA3D_DEVCAP_DXFMT_B5G5R5A1_UNORM: return SVGA3D_B5G5R5A1_UNORM; 470 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM: return SVGA3D_B8G8R8A8_UNORM; 471 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM: return SVGA3D_B8G8R8X8_UNORM; 472 case SVGA3D_DEVCAP_DXFMT_BC4_UNORM: return SVGA3D_BC4_UNORM; 473 case SVGA3D_DEVCAP_DXFMT_BC5_UNORM: return SVGA3D_BC5_UNORM; 474 default: 475 AssertFailed(); 476 break; 477 } 478 return SVGA3D_FORMAT_INVALID; 479 } 480 481 482 static int vmsvgaDXCheckFormatSupportPreDX(PVMSVGA3DSTATE pState, SVGA3dSurfaceFormat enmFormat, uint32_t *pu32DevCap) 483 { 484 int rc = VINF_SUCCESS; 485 486 *pu32DevCap = 0; 487 488 DXGI_FORMAT const dxgiFormat = vmsvgaDXSurfaceFormat2Dxgi(enmFormat); 489 if (dxgiFormat != DXGI_FORMAT_UNKNOWN) 490 { 491 RT_NOREF(pState); 492 /** @todo Implement */ 493 } 494 else 495 rc = VERR_NOT_SUPPORTED; 496 return rc; 497 } 498 499 static int vmsvgaDXCheckFormatSupport(PVMSVGA3DSTATE pState, SVGA3dSurfaceFormat enmFormat, uint32_t *pu32DevCap) 500 { 501 int rc = VINF_SUCCESS; 502 503 *pu32DevCap = 0; 504 505 DXGI_FORMAT const dxgiFormat = vmsvgaDXSurfaceFormat2Dxgi(enmFormat); 506 if (dxgiFormat != DXGI_FORMAT_UNKNOWN) 507 { 508 ID3D11Device *pDevice = pState->pBackend->pDevice; 509 UINT FormatSupport = 0; 510 HRESULT hr = pDevice->CheckFormatSupport(dxgiFormat, &FormatSupport); 511 if (SUCCEEDED(hr)) 512 { 513 *pu32DevCap |= SVGA3D_DXFMT_SUPPORTED; 514 515 if (FormatSupport & D3D11_FORMAT_SUPPORT_SHADER_SAMPLE) 516 *pu32DevCap |= SVGA3D_DXFMT_SHADER_SAMPLE; 517 518 if (FormatSupport & D3D11_FORMAT_SUPPORT_RENDER_TARGET) 519 *pu32DevCap |= SVGA3D_DXFMT_COLOR_RENDERTARGET; 520 521 if (FormatSupport & D3D11_FORMAT_SUPPORT_DEPTH_STENCIL) 522 *pu32DevCap |= SVGA3D_DXFMT_DEPTH_RENDERTARGET; 523 524 if (FormatSupport & D3D11_FORMAT_SUPPORT_BLENDABLE) 525 *pu32DevCap |= SVGA3D_DXFMT_BLENDABLE; 526 527 if (FormatSupport & D3D11_FORMAT_SUPPORT_MIP) 528 *pu32DevCap |= SVGA3D_DXFMT_MIPS; 529 530 if (FormatSupport & D3D11_FORMAT_SUPPORT_TEXTURECUBE) 531 *pu32DevCap |= SVGA3D_DXFMT_ARRAY; 532 533 if (FormatSupport & D3D11_FORMAT_SUPPORT_TEXTURE3D) 534 *pu32DevCap |= SVGA3D_DXFMT_VOLUME; 535 536 if (FormatSupport & D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER) 537 *pu32DevCap |= SVGA3D_DXFMT_DX_VERTEX_BUFFER; 538 539 UINT NumQualityLevels; 540 hr = pDevice->CheckMultisampleQualityLevels(dxgiFormat, 2, &NumQualityLevels); 541 if (SUCCEEDED(hr) && NumQualityLevels != 0) 542 *pu32DevCap |= SVGADX_DXFMT_MULTISAMPLE_2; 543 544 hr = pDevice->CheckMultisampleQualityLevels(dxgiFormat, 4, &NumQualityLevels); 545 if (SUCCEEDED(hr) && NumQualityLevels != 0) 546 *pu32DevCap |= SVGADX_DXFMT_MULTISAMPLE_4; 547 548 hr = pDevice->CheckMultisampleQualityLevels(dxgiFormat, 8, &NumQualityLevels); 549 if (SUCCEEDED(hr) && NumQualityLevels != 0) 550 *pu32DevCap |= SVGADX_DXFMT_MULTISAMPLE_8; 551 } 552 else 553 rc = VERR_NOT_SUPPORTED; 554 } 555 else 556 rc = VERR_NOT_SUPPORTED; 557 return rc; 104 558 } 105 559 … … 623 1077 td.MipLevels = 1; 624 1078 td.ArraySize = 1; 625 td.Format = DXGI_FORMAT_B8G8R8A8_UNORM;1079 td.Format = vmsvgaDXScreenTargetFormat2Dxgi(pSurface->format); // DXGI_FORMAT_B8G8R8A8_UNORM; 626 1080 td.SampleDesc.Count = 1; 627 1081 td.SampleDesc.Quality = 0; … … 794 1248 795 1249 796 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, uint32_tidx3dCaps, uint32_t *pu32Val)1250 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, SVGA3dDevCapIndex idx3dCaps, uint32_t *pu32Val) 797 1251 { 798 1252 PVMSVGA3DSTATE pState = pThisCC->svga.p3dState; … … 800 1254 801 1255 int rc = VINF_SUCCESS; 1256 1257 *pu32Val = 0; 1258 1259 /* Most values are taken from: 1260 * https://docs.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro 1261 * 1262 * Shader values are from 1263 * https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-models 1264 */ 802 1265 803 1266 switch (idx3dCaps) … … 807 1270 break; 808 1271 1272 case SVGA3D_DEVCAP_MAX_LIGHTS: 1273 *pu32Val = SVGA3D_NUM_LIGHTS; /* VGPU9. Not applicable to DX11. */ 1274 break; 1275 1276 case SVGA3D_DEVCAP_MAX_TEXTURES: 1277 *pu32Val = SVGA3D_NUM_TEXTURE_UNITS; /* VGPU9. Not applicable to DX11. */ 1278 break; 1279 1280 case SVGA3D_DEVCAP_MAX_CLIP_PLANES: 1281 *pu32Val = SVGA3D_NUM_CLIPPLANES; 1282 break; 1283 1284 case SVGA3D_DEVCAP_VERTEX_SHADER_VERSION: 1285 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1286 *pu32Val = SVGA3DVSVERSION_40; 1287 else 1288 *pu32Val = SVGA3DVSVERSION_30; 1289 break; 1290 1291 case SVGA3D_DEVCAP_VERTEX_SHADER: 1292 *pu32Val = 1; 1293 break; 1294 1295 case SVGA3D_DEVCAP_FRAGMENT_SHADER_VERSION: 1296 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1297 *pu32Val = SVGA3DPSVERSION_40; 1298 else 1299 *pu32Val = SVGA3DPSVERSION_30; 1300 break; 1301 1302 case SVGA3D_DEVCAP_FRAGMENT_SHADER: 1303 *pu32Val = 1; 1304 break; 1305 1306 case SVGA3D_DEVCAP_MAX_RENDER_TARGETS: 1307 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1308 *pu32Val = 8; 1309 else 1310 *pu32Val = 4; 1311 break; 1312 1313 case SVGA3D_DEVCAP_S23E8_TEXTURES: 1314 case SVGA3D_DEVCAP_S10E5_TEXTURES: 1315 /* Must be obsolete by now; surface format caps specify the same thing. */ 1316 break; 1317 1318 case SVGA3D_DEVCAP_MAX_FIXED_VERTEXBLEND: 1319 /* Obsolete */ 1320 break; 1321 1322 /* 1323 * 2. The BUFFER_FORMAT capabilities are deprecated, and they always 1324 * return TRUE. Even on physical hardware that does not support 1325 * these formats natively, the SVGA3D device will provide an emulation 1326 * which should be invisible to the guest OS. 1327 */ 1328 case SVGA3D_DEVCAP_D16_BUFFER_FORMAT: 1329 case SVGA3D_DEVCAP_D24S8_BUFFER_FORMAT: 1330 case SVGA3D_DEVCAP_D24X8_BUFFER_FORMAT: 1331 *pu32Val = 1; 1332 break; 1333 1334 case SVGA3D_DEVCAP_QUERY_TYPES: 1335 /* Obsolete */ 1336 break; 1337 1338 case SVGA3D_DEVCAP_TEXTURE_GRADIENT_SAMPLING: 1339 /* Obsolete */ 1340 break; 1341 1342 case SVGA3D_DEVCAP_MAX_POINT_SIZE: 1343 AssertCompile(sizeof(uint32_t) == sizeof(float)); 1344 *(float *)pu32Val = 256.0f; /* VGPU9. Not applicable to DX11. */ 1345 break; 1346 1347 case SVGA3D_DEVCAP_MAX_SHADER_TEXTURES: 1348 /* Obsolete */ 1349 break; 1350 809 1351 case SVGA3D_DEVCAP_MAX_TEXTURE_WIDTH: 810 *pu32Val = 8192;811 break;812 813 1352 case SVGA3D_DEVCAP_MAX_TEXTURE_HEIGHT: 814 *pu32Val = 8192; 1353 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_11_0) 1354 *pu32Val = 16384; 1355 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1356 *pu32Val = 8192; 1357 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_3) 1358 *pu32Val = 4096; 1359 else 1360 *pu32Val = 2048; 1361 break; 1362 1363 case SVGA3D_DEVCAP_MAX_VOLUME_EXTENT: 1364 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1365 *pu32Val = 2048; 1366 else 1367 *pu32Val = 256; 1368 break; 1369 1370 case SVGA3D_DEVCAP_MAX_TEXTURE_REPEAT: 1371 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_11_0) 1372 *pu32Val = 16384; 1373 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_3) 1374 *pu32Val = 8192; 1375 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_2) 1376 *pu32Val = 2048; 1377 else 1378 *pu32Val = 128; 1379 break; 1380 1381 case SVGA3D_DEVCAP_MAX_TEXTURE_ASPECT_RATIO: 1382 /* Obsolete */ 1383 break; 1384 1385 case SVGA3D_DEVCAP_MAX_TEXTURE_ANISOTROPY: 1386 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_2) 1387 *pu32Val = D3D11_REQ_MAXANISOTROPY; 1388 else 1389 *pu32Val = 2; // D3D_FL9_1_DEFAULT_MAX_ANISOTROPY; 1390 break; 1391 1392 case SVGA3D_DEVCAP_MAX_PRIMITIVE_COUNT: 1393 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1394 *pu32Val = UINT32_MAX; 1395 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_2) 1396 *pu32Val = 1048575; // D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT; 1397 else 1398 *pu32Val = 65535; // D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT; 1399 break; 1400 1401 case SVGA3D_DEVCAP_MAX_VERTEX_INDEX: 1402 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1403 *pu32Val = UINT32_MAX; 1404 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_2) 1405 *pu32Val = 1048575; 1406 else 1407 *pu32Val = 65534; 1408 break; 1409 1410 case SVGA3D_DEVCAP_MAX_VERTEX_SHADER_INSTRUCTIONS: 1411 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1412 *pu32Val = UINT32_MAX; 1413 else 1414 *pu32Val = 512; 1415 break; 1416 1417 case SVGA3D_DEVCAP_MAX_FRAGMENT_SHADER_INSTRUCTIONS: 1418 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1419 *pu32Val = UINT32_MAX; 1420 else 1421 *pu32Val = 512; 1422 break; 1423 1424 case SVGA3D_DEVCAP_MAX_VERTEX_SHADER_TEMPS: 1425 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1426 *pu32Val = 4096; 1427 else 1428 *pu32Val = 32; 1429 break; 1430 1431 case SVGA3D_DEVCAP_MAX_FRAGMENT_SHADER_TEMPS: 1432 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1433 *pu32Val = 4096; 1434 else 1435 *pu32Val = 32; 1436 break; 1437 1438 case SVGA3D_DEVCAP_TEXTURE_OPS: 1439 /* Obsolete */ 1440 break; 1441 1442 case SVGA3D_DEVCAP_SURFACEFMT_X8R8G8B8: 1443 case SVGA3D_DEVCAP_SURFACEFMT_A8R8G8B8: 1444 case SVGA3D_DEVCAP_SURFACEFMT_A2R10G10B10: 1445 case SVGA3D_DEVCAP_SURFACEFMT_X1R5G5B5: 1446 case SVGA3D_DEVCAP_SURFACEFMT_A1R5G5B5: 1447 case SVGA3D_DEVCAP_SURFACEFMT_A4R4G4B4: 1448 case SVGA3D_DEVCAP_SURFACEFMT_R5G6B5: 1449 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE16: 1450 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8_ALPHA8: 1451 case SVGA3D_DEVCAP_SURFACEFMT_ALPHA8: 1452 case SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8: 1453 case SVGA3D_DEVCAP_SURFACEFMT_Z_D16: 1454 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8: 1455 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24X8: 1456 case SVGA3D_DEVCAP_SURFACEFMT_DXT1: 1457 case SVGA3D_DEVCAP_SURFACEFMT_DXT2: 1458 case SVGA3D_DEVCAP_SURFACEFMT_DXT3: 1459 case SVGA3D_DEVCAP_SURFACEFMT_DXT4: 1460 case SVGA3D_DEVCAP_SURFACEFMT_DXT5: 1461 case SVGA3D_DEVCAP_SURFACEFMT_BUMPX8L8V8U8: 1462 case SVGA3D_DEVCAP_SURFACEFMT_A2W10V10U10: 1463 case SVGA3D_DEVCAP_SURFACEFMT_BUMPU8V8: 1464 case SVGA3D_DEVCAP_SURFACEFMT_Q8W8V8U8: 1465 case SVGA3D_DEVCAP_SURFACEFMT_CxV8U8: 1466 case SVGA3D_DEVCAP_SURFACEFMT_R_S10E5: 1467 case SVGA3D_DEVCAP_SURFACEFMT_R_S23E8: 1468 case SVGA3D_DEVCAP_SURFACEFMT_RG_S10E5: 1469 case SVGA3D_DEVCAP_SURFACEFMT_RG_S23E8: 1470 case SVGA3D_DEVCAP_SURFACEFMT_ARGB_S10E5: 1471 case SVGA3D_DEVCAP_SURFACEFMT_ARGB_S23E8: 1472 case SVGA3D_DEVCAP_SURFACEFMT_V16U16: 1473 case SVGA3D_DEVCAP_SURFACEFMT_G16R16: 1474 case SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16: 1475 case SVGA3D_DEVCAP_SURFACEFMT_UYVY: 1476 case SVGA3D_DEVCAP_SURFACEFMT_YUY2: 1477 case SVGA3D_DEVCAP_SURFACEFMT_NV12: 1478 case SVGA3D_DEVCAP_SURFACEFMT_AYUV: 1479 case SVGA3D_DEVCAP_SURFACEFMT_Z_DF16: 1480 case SVGA3D_DEVCAP_SURFACEFMT_Z_DF24: 1481 case SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT: 1482 case SVGA3D_DEVCAP_SURFACEFMT_ATI1: 1483 case SVGA3D_DEVCAP_SURFACEFMT_ATI2: 1484 case SVGA3D_DEVCAP_SURFACEFMT_YV12: 1485 { 1486 SVGA3dSurfaceFormat const enmFormat = vmsvgaDXDevCapSurfaceFmt2Format(idx3dCaps); 1487 rc = vmsvgaDXCheckFormatSupportPreDX(pState, enmFormat, pu32Val); 1488 break; 1489 } 1490 1491 case SVGA3D_DEVCAP_MISSING62: 1492 /* Unused */ 1493 break; 1494 1495 case SVGA3D_DEVCAP_MAX_VERTEX_SHADER_TEXTURES: 1496 /* Obsolete */ 1497 break; 1498 1499 case SVGA3D_DEVCAP_MAX_SIMULTANEOUS_RENDER_TARGETS: 1500 if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_10_0) 1501 *pu32Val = 8; 1502 else if (pState->pBackend->FeatureLevel >= D3D_FEATURE_LEVEL_9_3) 1503 *pu32Val = 4; // D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 1504 else 1505 *pu32Val = 1; // D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1506 break; 1507 1508 case SVGA3D_DEVCAP_MULTISAMPLE_NONMASKABLESAMPLES: 1509 case SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES: 1510 *pu32Val = (1 << (2-1)) | (1 << (4-1)) | (1 << (8-1)); /* 2x, 4x, 8x */ 1511 break; 1512 1513 case SVGA3D_DEVCAP_ALPHATOCOVERAGE: 1514 /* Obsolete? */ 1515 break; 1516 1517 case SVGA3D_DEVCAP_SUPERSAMPLE: 1518 /* Obsolete? */ 1519 break; 1520 1521 case SVGA3D_DEVCAP_AUTOGENMIPMAPS: 1522 *pu32Val = 1; 1523 break; 1524 1525 case SVGA3D_DEVCAP_MAX_CONTEXT_IDS: 1526 *pu32Val = SVGA3D_MAX_CONTEXT_IDS; 1527 break; 1528 1529 case SVGA3D_DEVCAP_MAX_SURFACE_IDS: 1530 *pu32Val = SVGA3D_MAX_SURFACE_IDS; 1531 break; 1532 1533 case SVGA3D_DEVCAP_DEAD1: 1534 /* Obsolete */ 1535 break; 1536 1537 case SVGA3D_DEVCAP_VIDEO_DECODE: 1538 /* Obsolete */ 1539 break; 1540 1541 case SVGA3D_DEVCAP_VIDEO_PROCESS: 1542 /* Obsolete */ 1543 break; 1544 1545 case SVGA3D_DEVCAP_LINE_AA: 1546 *pu32Val = 1; 1547 break; 1548 1549 case SVGA3D_DEVCAP_LINE_STIPPLE: 1550 *pu32Val = 0; /* DX11 does not seem to support this directly. */ 1551 break; 1552 1553 case SVGA3D_DEVCAP_MAX_LINE_WIDTH: 1554 AssertCompile(sizeof(uint32_t) == sizeof(float)); 1555 *(float *)pu32Val = 1.0f; 1556 break; 1557 1558 case SVGA3D_DEVCAP_MAX_AA_LINE_WIDTH: 1559 AssertCompile(sizeof(uint32_t) == sizeof(float)); 1560 *(float *)pu32Val = 1.0f; 1561 break; 1562 1563 case SVGA3D_DEVCAP_LOGICOPS: 1564 /* Deprecated. */ 1565 AssertCompile(SVGA3D_DEVCAP_LOGICOPS == 92); /* Newer SVGA headers redefine this. */ 1566 *pu32Val = 0; /* Supported starting with Direct3D 11.1 */ 1567 break; 1568 1569 case SVGA3D_DEVCAP_TS_COLOR_KEY: 1570 *pu32Val = 0; /* DX11 does not seem to support this directly. */ 1571 break; 1572 1573 case SVGA3D_DEVCAP_DEAD2: 815 1574 break; 816 1575 … … 819 1578 break; 820 1579 821 default: 822 *pu32Val = 0; 1580 case SVGA3D_DEVCAP_MAX_TEXTURE_ARRAY_SIZE: 1581 *pu32Val = D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION; 1582 break; 1583 1584 case SVGA3D_DEVCAP_DX_MAX_VERTEXBUFFERS: 1585 *pu32Val = D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT; 1586 break; 1587 1588 case SVGA3D_DEVCAP_DX_MAX_CONSTANT_BUFFERS: 1589 *pu32Val = D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT; 1590 break; 1591 1592 case SVGA3D_DEVCAP_DX_PROVOKING_VERTEX: 1593 *pu32Val = 0; /* boolean */ 1594 break; 1595 1596 case SVGA3D_DEVCAP_DXFMT_X8R8G8B8: 1597 case SVGA3D_DEVCAP_DXFMT_A8R8G8B8: 1598 case SVGA3D_DEVCAP_DXFMT_R5G6B5: 1599 case SVGA3D_DEVCAP_DXFMT_X1R5G5B5: 1600 case SVGA3D_DEVCAP_DXFMT_A1R5G5B5: 1601 case SVGA3D_DEVCAP_DXFMT_A4R4G4B4: 1602 case SVGA3D_DEVCAP_DXFMT_Z_D32: 1603 case SVGA3D_DEVCAP_DXFMT_Z_D16: 1604 case SVGA3D_DEVCAP_DXFMT_Z_D24S8: 1605 case SVGA3D_DEVCAP_DXFMT_Z_D15S1: 1606 case SVGA3D_DEVCAP_DXFMT_LUMINANCE8: 1607 case SVGA3D_DEVCAP_DXFMT_LUMINANCE4_ALPHA4: 1608 case SVGA3D_DEVCAP_DXFMT_LUMINANCE16: 1609 case SVGA3D_DEVCAP_DXFMT_LUMINANCE8_ALPHA8: 1610 case SVGA3D_DEVCAP_DXFMT_DXT1: 1611 case SVGA3D_DEVCAP_DXFMT_DXT2: 1612 case SVGA3D_DEVCAP_DXFMT_DXT3: 1613 case SVGA3D_DEVCAP_DXFMT_DXT4: 1614 case SVGA3D_DEVCAP_DXFMT_DXT5: 1615 case SVGA3D_DEVCAP_DXFMT_BUMPU8V8: 1616 case SVGA3D_DEVCAP_DXFMT_BUMPL6V5U5: 1617 case SVGA3D_DEVCAP_DXFMT_BUMPX8L8V8U8: 1618 case SVGA3D_DEVCAP_DXFMT_FORMAT_DEAD1: 1619 case SVGA3D_DEVCAP_DXFMT_ARGB_S10E5: 1620 case SVGA3D_DEVCAP_DXFMT_ARGB_S23E8: 1621 case SVGA3D_DEVCAP_DXFMT_A2R10G10B10: 1622 case SVGA3D_DEVCAP_DXFMT_V8U8: 1623 case SVGA3D_DEVCAP_DXFMT_Q8W8V8U8: 1624 case SVGA3D_DEVCAP_DXFMT_CxV8U8: 1625 case SVGA3D_DEVCAP_DXFMT_X8L8V8U8: 1626 case SVGA3D_DEVCAP_DXFMT_A2W10V10U10: 1627 case SVGA3D_DEVCAP_DXFMT_ALPHA8: 1628 case SVGA3D_DEVCAP_DXFMT_R_S10E5: 1629 case SVGA3D_DEVCAP_DXFMT_R_S23E8: 1630 case SVGA3D_DEVCAP_DXFMT_RG_S10E5: 1631 case SVGA3D_DEVCAP_DXFMT_RG_S23E8: 1632 case SVGA3D_DEVCAP_DXFMT_BUFFER: 1633 case SVGA3D_DEVCAP_DXFMT_Z_D24X8: 1634 case SVGA3D_DEVCAP_DXFMT_V16U16: 1635 case SVGA3D_DEVCAP_DXFMT_G16R16: 1636 case SVGA3D_DEVCAP_DXFMT_A16B16G16R16: 1637 case SVGA3D_DEVCAP_DXFMT_UYVY: 1638 case SVGA3D_DEVCAP_DXFMT_YUY2: 1639 case SVGA3D_DEVCAP_DXFMT_NV12: 1640 case SVGA3D_DEVCAP_DXFMT_AYUV: 1641 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_TYPELESS: 1642 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_UINT: 1643 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_SINT: 1644 case SVGA3D_DEVCAP_DXFMT_R32G32B32_TYPELESS: 1645 case SVGA3D_DEVCAP_DXFMT_R32G32B32_FLOAT: 1646 case SVGA3D_DEVCAP_DXFMT_R32G32B32_UINT: 1647 case SVGA3D_DEVCAP_DXFMT_R32G32B32_SINT: 1648 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_TYPELESS: 1649 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UINT: 1650 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SNORM: 1651 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SINT: 1652 case SVGA3D_DEVCAP_DXFMT_R32G32_TYPELESS: 1653 case SVGA3D_DEVCAP_DXFMT_R32G32_UINT: 1654 case SVGA3D_DEVCAP_DXFMT_R32G32_SINT: 1655 case SVGA3D_DEVCAP_DXFMT_R32G8X24_TYPELESS: 1656 case SVGA3D_DEVCAP_DXFMT_D32_FLOAT_S8X24_UINT: 1657 case SVGA3D_DEVCAP_DXFMT_R32_FLOAT_X8X24_TYPELESS: 1658 case SVGA3D_DEVCAP_DXFMT_X32_TYPELESS_G8X24_UINT: 1659 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_TYPELESS: 1660 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UINT: 1661 case SVGA3D_DEVCAP_DXFMT_R11G11B10_FLOAT: 1662 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_TYPELESS: 1663 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM: 1664 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM_SRGB: 1665 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UINT: 1666 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SINT: 1667 case SVGA3D_DEVCAP_DXFMT_R16G16_TYPELESS: 1668 case SVGA3D_DEVCAP_DXFMT_R16G16_UINT: 1669 case SVGA3D_DEVCAP_DXFMT_R16G16_SINT: 1670 case SVGA3D_DEVCAP_DXFMT_R32_TYPELESS: 1671 case SVGA3D_DEVCAP_DXFMT_D32_FLOAT: 1672 case SVGA3D_DEVCAP_DXFMT_R32_UINT: 1673 case SVGA3D_DEVCAP_DXFMT_R32_SINT: 1674 case SVGA3D_DEVCAP_DXFMT_R24G8_TYPELESS: 1675 case SVGA3D_DEVCAP_DXFMT_D24_UNORM_S8_UINT: 1676 case SVGA3D_DEVCAP_DXFMT_R24_UNORM_X8_TYPELESS: 1677 case SVGA3D_DEVCAP_DXFMT_X24_TYPELESS_G8_UINT: 1678 case SVGA3D_DEVCAP_DXFMT_R8G8_TYPELESS: 1679 case SVGA3D_DEVCAP_DXFMT_R8G8_UNORM: 1680 case SVGA3D_DEVCAP_DXFMT_R8G8_UINT: 1681 case SVGA3D_DEVCAP_DXFMT_R8G8_SINT: 1682 case SVGA3D_DEVCAP_DXFMT_R16_TYPELESS: 1683 case SVGA3D_DEVCAP_DXFMT_R16_UNORM: 1684 case SVGA3D_DEVCAP_DXFMT_R16_UINT: 1685 case SVGA3D_DEVCAP_DXFMT_R16_SNORM: 1686 case SVGA3D_DEVCAP_DXFMT_R16_SINT: 1687 case SVGA3D_DEVCAP_DXFMT_R8_TYPELESS: 1688 case SVGA3D_DEVCAP_DXFMT_R8_UNORM: 1689 case SVGA3D_DEVCAP_DXFMT_R8_UINT: 1690 case SVGA3D_DEVCAP_DXFMT_R8_SNORM: 1691 case SVGA3D_DEVCAP_DXFMT_R8_SINT: 1692 case SVGA3D_DEVCAP_DXFMT_P8: 1693 case SVGA3D_DEVCAP_DXFMT_R9G9B9E5_SHAREDEXP: 1694 case SVGA3D_DEVCAP_DXFMT_R8G8_B8G8_UNORM: 1695 case SVGA3D_DEVCAP_DXFMT_G8R8_G8B8_UNORM: 1696 case SVGA3D_DEVCAP_DXFMT_BC1_TYPELESS: 1697 case SVGA3D_DEVCAP_DXFMT_BC1_UNORM_SRGB: 1698 case SVGA3D_DEVCAP_DXFMT_BC2_TYPELESS: 1699 case SVGA3D_DEVCAP_DXFMT_BC2_UNORM_SRGB: 1700 case SVGA3D_DEVCAP_DXFMT_BC3_TYPELESS: 1701 case SVGA3D_DEVCAP_DXFMT_BC3_UNORM_SRGB: 1702 case SVGA3D_DEVCAP_DXFMT_BC4_TYPELESS: 1703 case SVGA3D_DEVCAP_DXFMT_ATI1: 1704 case SVGA3D_DEVCAP_DXFMT_BC4_SNORM: 1705 case SVGA3D_DEVCAP_DXFMT_BC5_TYPELESS: 1706 case SVGA3D_DEVCAP_DXFMT_ATI2: 1707 case SVGA3D_DEVCAP_DXFMT_BC5_SNORM: 1708 case SVGA3D_DEVCAP_DXFMT_R10G10B10_XR_BIAS_A2_UNORM: 1709 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_TYPELESS: 1710 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM_SRGB: 1711 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_TYPELESS: 1712 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM_SRGB: 1713 case SVGA3D_DEVCAP_DXFMT_Z_DF16: 1714 case SVGA3D_DEVCAP_DXFMT_Z_DF24: 1715 case SVGA3D_DEVCAP_DXFMT_Z_D24S8_INT: 1716 case SVGA3D_DEVCAP_DXFMT_YV12: 1717 case SVGA3D_DEVCAP_DXFMT_R32G32B32A32_FLOAT: 1718 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_FLOAT: 1719 case SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UNORM: 1720 case SVGA3D_DEVCAP_DXFMT_R32G32_FLOAT: 1721 case SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UNORM: 1722 case SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SNORM: 1723 case SVGA3D_DEVCAP_DXFMT_R16G16_FLOAT: 1724 case SVGA3D_DEVCAP_DXFMT_R16G16_UNORM: 1725 case SVGA3D_DEVCAP_DXFMT_R16G16_SNORM: 1726 case SVGA3D_DEVCAP_DXFMT_R32_FLOAT: 1727 case SVGA3D_DEVCAP_DXFMT_R8G8_SNORM: 1728 case SVGA3D_DEVCAP_DXFMT_R16_FLOAT: 1729 case SVGA3D_DEVCAP_DXFMT_D16_UNORM: 1730 case SVGA3D_DEVCAP_DXFMT_A8_UNORM: 1731 case SVGA3D_DEVCAP_DXFMT_BC1_UNORM: 1732 case SVGA3D_DEVCAP_DXFMT_BC2_UNORM: 1733 case SVGA3D_DEVCAP_DXFMT_BC3_UNORM: 1734 case SVGA3D_DEVCAP_DXFMT_B5G6R5_UNORM: 1735 case SVGA3D_DEVCAP_DXFMT_B5G5R5A1_UNORM: 1736 case SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM: 1737 case SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM: 1738 case SVGA3D_DEVCAP_DXFMT_BC4_UNORM: 1739 case SVGA3D_DEVCAP_DXFMT_BC5_UNORM: 1740 { 1741 SVGA3dSurfaceFormat const enmFormat = vmsvgaDXDevCapDxfmt2Format(idx3dCaps); 1742 rc = vmsvgaDXCheckFormatSupport(pState, enmFormat, pu32Val); 1743 break; 1744 } 1745 1746 case SVGA3D_DEVCAP_MAX: 1747 case SVGA3D_DEVCAP_INVALID: 823 1748 rc = VERR_NOT_SUPPORTED; 1749 break; 824 1750 } 825 1751 -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp
r86838 r86864 424 424 425 425 426 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, uint32_tidx3dCaps, uint32_t *pu32Val)426 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, SVGA3dDevCapIndex idx3dCaps, uint32_t *pu32Val) 427 427 { 428 428 PVMSVGA3DSTATE pState = pThisCC->svga.p3dState; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d.h
r86838 r86864 83 83 int vmsvga3dReset(PVGASTATECC pThisCC); 84 84 void vmsvga3dUpdateHostScreenViewport(PVGASTATECC pThisCC, uint32_t idScreen, VMSVGAVIEWPORT const *pOldViewport); 85 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, uint32_tidx3dCaps, uint32_t *pu32Val);85 int vmsvga3dQueryCaps(PVGASTATECC pThisCC, SVGA3dDevCapIndex idx3dCaps, uint32_t *pu32Val); 86 86 87 87 int vmsvga3dSurfaceDefine(PVGASTATECC pThisCC, uint32_t sid, SVGA3dSurfaceFlags surfaceFlags, SVGA3dSurfaceFormat format,
Note:
See TracChangeset
for help on using the changeset viewer.