Changeset 95034 in vbox
- Timestamp:
- May 17, 2022 5:21:47 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win-dx.cpp
r95032 r95034 2093 2093 } 2094 2094 2095 2096 static DXGI_FORMAT dxGetDxgiTypelessFormat(DXGI_FORMAT dxgiFormat) 2097 { 2098 switch (dxgiFormat) 2099 { 2100 case DXGI_FORMAT_B8G8R8A8_UNORM: 2101 case DXGI_FORMAT_B8G8R8X8_UNORM : 2102 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 2103 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 2104 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 2105 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 2106 return DXGI_FORMAT_B8G8R8A8_TYPELESS; 2107 /** @todo Other _TYPELESS formats. */ 2108 default: 2109 break; 2110 } 2111 2112 return dxgiFormat; 2113 } 2114 2115 2095 2116 static int vmsvga3dBackSurfaceCreateTexture(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, PVMSVGA3DSURFACE pSurface) 2096 2117 { … … 2115 2136 AssertRCReturn(rc, rc); 2116 2137 2117 uint32_t const cWidth = pSurface->paMipmapLevels[0]. mipmapSize.width;2118 uint32_t const cHeight = pSurface->paMipmapLevels[0]. mipmapSize.height;2138 uint32_t const cWidth = pSurface->paMipmapLevels[0].cBlocksX * pSurface->cxBlock; 2139 uint32_t const cHeight = pSurface->paMipmapLevels[0].cBlocksY * pSurface->cyBlock; 2119 2140 uint32_t const cDepth = pSurface->paMipmapLevels[0].mipmapSize.depth; 2120 2141 uint32_t const numMipLevels = pSurface->cLevels; … … 2122 2143 DXGI_FORMAT dxgiFormat = vmsvgaDXSurfaceFormat2Dxgi(pSurface->format); 2123 2144 AssertReturn(dxgiFormat != DXGI_FORMAT_UNKNOWN, E_FAIL); 2145 2146 dxgiFormat = dxGetDxgiTypelessFormat(dxgiFormat); 2124 2147 2125 2148 /* … … 2688 2711 bd.Usage = D3D11_USAGE_DYNAMIC; 2689 2712 else if (pSurface->f.surfaceFlags & SVGA3D_SURFACE_HINT_STATIC) 2690 bd.Usage = D3D11_USAGE_IMMUTABLE;2713 bd.Usage = pInitialData ? D3D11_USAGE_IMMUTABLE : D3D11_USAGE_DEFAULT; /* Guest will update later. */ 2691 2714 else if (pSurface->f.surfaceFlags & SVGA3D_SURFACE_HINT_INDIRECT_UPDATE) 2692 2715 bd.Usage = D3D11_USAGE_DEFAULT;
Note:
See TracChangeset
for help on using the changeset viewer.