Changeset 95137 in vbox for trunk/src/VBox/Devices/Graphics
- Timestamp:
- May 30, 2022 12:10:15 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 151623
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win-dx.cpp
r95106 r95137 2155 2155 switch (dxgiFormat) 2156 2156 { 2157 case DXGI_FORMAT_R32G32B32A32_FLOAT: 2158 case DXGI_FORMAT_R32G32B32A32_UINT: 2159 case DXGI_FORMAT_R32G32B32A32_SINT: 2160 return DXGI_FORMAT_R32G32B32A32_TYPELESS; /* 1 */ 2161 case DXGI_FORMAT_R32G32B32_FLOAT: 2162 case DXGI_FORMAT_R32G32B32_UINT: 2163 case DXGI_FORMAT_R32G32B32_SINT: 2164 return DXGI_FORMAT_R32G32B32_TYPELESS; /* 5 */ 2165 case DXGI_FORMAT_R16G16B16A16_FLOAT: 2166 case DXGI_FORMAT_R16G16B16A16_UNORM: 2167 case DXGI_FORMAT_R16G16B16A16_UINT: 2168 case DXGI_FORMAT_R16G16B16A16_SNORM: 2169 case DXGI_FORMAT_R16G16B16A16_SINT: 2170 return DXGI_FORMAT_R16G16B16A16_TYPELESS; /* 9 */ 2171 case DXGI_FORMAT_R32G32_FLOAT: 2172 case DXGI_FORMAT_R32G32_UINT: 2173 case DXGI_FORMAT_R32G32_SINT: 2174 return DXGI_FORMAT_R32G32_TYPELESS; /* 15 */ 2175 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 2176 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 2177 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 2178 return DXGI_FORMAT_R32G8X24_TYPELESS; /* 19 */ 2179 case DXGI_FORMAT_R10G10B10A2_UNORM: 2180 case DXGI_FORMAT_R10G10B10A2_UINT: 2181 return DXGI_FORMAT_R10G10B10A2_TYPELESS; /* 23 */ 2182 case DXGI_FORMAT_R8G8B8A8_UNORM: 2183 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 2184 case DXGI_FORMAT_R8G8B8A8_UINT: 2185 case DXGI_FORMAT_R8G8B8A8_SNORM: 2186 case DXGI_FORMAT_R8G8B8A8_SINT: 2187 return DXGI_FORMAT_R8G8B8A8_TYPELESS; /* 27 */ 2188 case DXGI_FORMAT_R16G16_FLOAT: 2189 case DXGI_FORMAT_R16G16_UNORM: 2190 case DXGI_FORMAT_R16G16_UINT: 2191 case DXGI_FORMAT_R16G16_SNORM: 2192 case DXGI_FORMAT_R16G16_SINT: 2193 return DXGI_FORMAT_R16G16_TYPELESS; /* 33 */ 2157 2194 case DXGI_FORMAT_D32_FLOAT: 2158 2195 case DXGI_FORMAT_R32_FLOAT: … … 2164 2201 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 2165 2202 return DXGI_FORMAT_R24G8_TYPELESS; /* 44 */ 2203 case DXGI_FORMAT_R8G8_UNORM: 2204 case DXGI_FORMAT_R8G8_UINT: 2205 case DXGI_FORMAT_R8G8_SNORM: 2206 case DXGI_FORMAT_R8G8_SINT: 2207 return DXGI_FORMAT_R8G8_TYPELESS; /* 48*/ 2208 case DXGI_FORMAT_R16_FLOAT: 2209 case DXGI_FORMAT_D16_UNORM: 2210 case DXGI_FORMAT_R16_UNORM: 2211 case DXGI_FORMAT_R16_UINT: 2212 case DXGI_FORMAT_R16_SNORM: 2213 case DXGI_FORMAT_R16_SINT: 2214 return DXGI_FORMAT_R16_TYPELESS; /* 53 */ 2215 case DXGI_FORMAT_R8_UNORM: 2216 case DXGI_FORMAT_R8_UINT: 2217 case DXGI_FORMAT_R8_SNORM: 2218 case DXGI_FORMAT_R8_SINT: 2219 return DXGI_FORMAT_R8_TYPELESS; /* 60*/ 2220 case DXGI_FORMAT_BC1_UNORM: 2221 case DXGI_FORMAT_BC1_UNORM_SRGB: 2222 return DXGI_FORMAT_BC1_TYPELESS; /* 70 */ 2223 case DXGI_FORMAT_BC2_UNORM: 2224 case DXGI_FORMAT_BC2_UNORM_SRGB: 2225 return DXGI_FORMAT_BC2_TYPELESS; /* 73 */ 2226 case DXGI_FORMAT_BC3_UNORM: 2227 case DXGI_FORMAT_BC3_UNORM_SRGB: 2228 return DXGI_FORMAT_BC3_TYPELESS; /* 76 */ 2229 case DXGI_FORMAT_BC4_UNORM: 2230 case DXGI_FORMAT_BC4_SNORM: 2231 return DXGI_FORMAT_BC4_TYPELESS; /* 79 */ 2232 case DXGI_FORMAT_BC5_UNORM: 2233 case DXGI_FORMAT_BC5_SNORM: 2234 return DXGI_FORMAT_BC5_TYPELESS; /* 82 */ 2166 2235 case DXGI_FORMAT_B8G8R8A8_UNORM: 2167 case DXGI_FORMAT_B8G8R8X8_UNORM :2168 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM:2169 2236 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 2170 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 2237 return DXGI_FORMAT_B8G8R8A8_TYPELESS; /* 90 */ 2238 case DXGI_FORMAT_B8G8R8X8_UNORM: 2171 2239 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 2172 return DXGI_FORMAT_B8G8R8A8_TYPELESS; /* 90 */ 2173 /** @todo Other _TYPELESS formats. */ 2240 return DXGI_FORMAT_B8G8R8X8_TYPELESS; /* 92 */ 2241 case DXGI_FORMAT_BC6H_UF16: 2242 case DXGI_FORMAT_BC6H_SF16: 2243 return DXGI_FORMAT_BC6H_TYPELESS; /* 94 */ 2244 case DXGI_FORMAT_BC7_UNORM: 2245 case DXGI_FORMAT_BC7_UNORM_SRGB: 2246 return DXGI_FORMAT_BC7_TYPELESS; /* 97 */ 2174 2247 default: 2175 2248 break; … … 2184 2257 switch (dxgiFormat) 2185 2258 { 2259 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 2260 case DXGI_FORMAT_D32_FLOAT: 2186 2261 case DXGI_FORMAT_D24_UNORM_S8_UINT: 2262 case DXGI_FORMAT_R16_FLOAT: 2187 2263 return true; 2188 /** @todo Other Depth Stencil formats. */2189 2264 default: 2190 2265 break; … … 5569 5644 * Just catch this unusual case in order to see if everything is fine. 5570 5645 */ 5571 Assert( (pDXShader->enmShaderType == SVGA3D_SHADERTYPE_VS || pDXShader->enmShaderType == SVGA3D_SHADERTYPE_PS) 5646 Assert( ( pDXShader->enmShaderType == SVGA3D_SHADERTYPE_VS 5647 || pDXShader->enmShaderType == SVGA3D_SHADERTYPE_PS 5648 || pDXShader->enmShaderType == SVGA3D_SHADERTYPE_CS) 5572 5649 || (pDXShader->shaderInfo.cInputSignature && pDXShader->shaderInfo.cOutputSignature)); 5573 5650 } … … 5630 5707 DXDEVICE *pDXDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext); 5631 5708 pDXDevice->pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews(0, NULL, NULL, 0, 0, NULL, NULL); 5709 for (unsigned i = 0; i < SVGA3D_DX11_1_MAX_UAVIEWS; ++i) 5710 { 5711 ID3D11UnorderedAccessView *pNullUA = 0; 5712 pDXDevice->pImmediateContext->CSSetUnorderedAccessViews(i, 1, &pNullUA, NULL); 5713 } 5632 5714 5633 5715 /* … … 5733 5815 } 5734 5816 5735 LogFunc((" uav[%d] sid = %u, uaid = %u\n", idxUA, sid, uaViewId));5817 LogFunc(("csuav[%d] sid = %u, uaid = %u\n", idxUA, sid, uaViewId)); 5736 5818 } 5737 5819 } … … 5770 5852 AssertReturnVoid(RT_SUCCESS(rc)); 5771 5853 } 5854 5855 LogFunc(("dsv sid = %u, dsvid = %u\n", pDSViewEntry->sid, viewId)); 5772 5856 } 5773 5857 … … 5795 5879 AssertReturnVoid(RT_SUCCESS(rc)); 5796 5880 } 5881 5882 LogFunc(("rtv sid = %u, rtvid = %u\n", pRTViewEntry->sid, viewId)); 5797 5883 } 5798 5884 } … … 5855 5941 { 5856 5942 /* Create a new shader. */ 5857 Log(("Shader: cid=%u shid=%u type=%d, GuestSignatures %d\n", pDXContext->cid, shaderId, pDXShader->enmShaderType, pDXShader->shaderInfo.fGuestSignatures));5858 5943 5859 5944 /* Apply resource types to a pixel shader. */ … … 5943 6028 rc = VERR_INVALID_STATE; 5944 6029 } 5945 else5946 rc = VERR_NO_MEMORY;5947 6030 } 6031 6032 LogFunc(("Shader: cid=%u shid=%u type=%d, GuestSignatures %d, %Rrc\n", pDXContext->cid, shaderId, pDXShader->enmShaderType, pDXShader->shaderInfo.fGuestSignatures, rc)); 5948 6033 } 5949 6034 else … … 5960 6045 */ 5961 6046 SVGA3dElementLayoutId const elementLayoutId = pDXContext->svgaDXContext.inputAssembly.layoutId; 5962 LogFunc(("Input layout id %u\n", elementLayoutId));5963 6047 ID3D11InputLayout *pInputLayout = NULL; 5964 6048 if (elementLayoutId != SVGA3D_INVALID_ID) … … 5982 6066 5983 6067 pInputLayout = pDXElementLayout->pElementLayout; 6068 6069 LogFunc(("Input layout id %u\n", elementLayoutId)); 5984 6070 } 5985 6071 … … 8482 8568 DXDEVICE *pDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext); 8483 8569 AssertReturn(pDevice->pDevice, VERR_INVALID_STATE); 8570 8571 dxSetupPipeline(pThisCC, pDXContext); 8484 8572 8485 8573 pDevice->pImmediateContext->Dispatch(threadGroupCountX, threadGroupCountY, threadGroupCountZ);
Note:
See TracChangeset
for help on using the changeset viewer.