Changeset 95023 in vbox for trunk/src/VBox/Devices/Graphics
- Timestamp:
- May 16, 2022 3:17:36 PM (3 years ago)
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-shader.cpp
r95013 r95023 68 68 #define DXBC_BLOB_TYPE_ISGN RT_MAKE_U32_FROM_U8('I', 'S', 'G', 'N') 69 69 #define DXBC_BLOB_TYPE_OSGN RT_MAKE_U32_FROM_U8('O', 'S', 'G', 'N') 70 #define DXBC_BLOB_TYPE_PCSG RT_MAKE_U32_FROM_U8('P', 'C', 'S', 'G') 70 71 #define DXBC_BLOB_TYPE_SHDR RT_MAKE_U32_FROM_U8('S', 'H', 'D', 'R') 71 72 /** @todo More... */ … … 2381 2382 2382 2383 /* Create a DXBC container with ISGN, OSGN and SHDR blobs. */ 2383 uint32_t const cBlob = 3; 2384 uint32_t cBlob = 3; 2385 if ( pInfo->enmProgramType == VGPU10_HULL_SHADER 2386 || pInfo->enmProgramType == VGPU10_DOMAIN_SHADER) 2387 ++cBlob; 2388 2384 2389 uint32_t const cbHdr = RT_UOFFSETOF(DXBCHeader, aBlobOffset[cBlob]); /* Header with blob offsets. */ 2385 2390 if (!dxbcByteWriterCanWrite(w, cbHdr)) … … 2396 2401 dxbcByteWriterCommit(w, cbHdr); 2397 2402 2403 #ifdef LOG_ENABLED 2404 if (pInfo->cInputSignature) 2405 { 2406 Log6(("Input signatures:\n")); 2407 for (uint32_t i = 0; i < pInfo->cInputSignature; ++i) 2408 Log6((" [%u]: %u %u 0x%X\n", i, pInfo->aInputSignature[i].registerIndex, pInfo->aInputSignature[i].semanticName, pInfo->aInputSignature[i].mask)); 2409 } 2410 if (pInfo->cOutputSignature) 2411 { 2412 Log6(("Output signatures:\n")); 2413 for (uint32_t i = 0; i < pInfo->cOutputSignature; ++i) 2414 Log6((" [%u]: %u %u 0x%X\n", i, pInfo->aOutputSignature[i].registerIndex, pInfo->aOutputSignature[i].semanticName, pInfo->aOutputSignature[i].mask)); 2415 } 2416 if (pInfo->cPatchConstantSignature) 2417 { 2418 Log6(("Patch constant signatures:\n")); 2419 for (uint32_t i = 0; i < pInfo->cPatchConstantSignature; ++i) 2420 Log6((" [%u]: %u %u 0x%X\n", i, pInfo->aPatchConstantSignature[i].registerIndex, pInfo->aPatchConstantSignature[i].semanticName, pInfo->aPatchConstantSignature[i].mask)); 2421 } 2422 #endif 2423 2398 2424 /* Blobs. */ 2399 2425 uint32_t iBlob = 0; … … 2407 2433 AssertRCReturn(rc, rc); 2408 2434 2435 if ( pInfo->enmProgramType == VGPU10_HULL_SHADER 2436 || pInfo->enmProgramType == VGPU10_DOMAIN_SHADER) 2437 { 2438 pHdr->aBlobOffset[iBlob++] = dxbcByteWriterSize(w); 2439 rc = dxbcCreateIOSGNBlob(pInfo, pHdr, DXBC_BLOB_TYPE_PCSG, pInfo->cPatchConstantSignature, &pInfo->aPatchConstantSignature[0], w); 2440 AssertRCReturn(rc, rc); 2441 } 2442 2409 2443 pHdr->aBlobOffset[iBlob++] = dxbcByteWriterSize(w); 2410 2444 rc = dxbcCreateSHDRBlob(pHdr, DXBC_BLOB_TYPE_SHDR, pvShader, cbShader, w); 2411 2445 AssertRCReturn(rc, rc); 2446 2447 Assert(iBlob == cBlob); 2412 2448 2413 2449 AssertCompile(RT_UOFFSETOF(DXBCHeader, u32Version) == 0x14); … … 2538 2574 case SVGA3D_BC7_UNORM: return VGPU10_RETURN_TYPE_UNORM; 2539 2575 case SVGA3D_BC7_UNORM_SRGB: return VGPU10_RETURN_TYPE_UNORM; 2576 case SVGA3D_R9G9B9E5_SHAREDEXP: return VGPU10_RETURN_TYPE_FLOAT; 2540 2577 default: 2541 2578 break; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx.cpp
r95017 r95023 182 182 u32TrackedState &= ~DX_STATE_SAMPLERS; 183 183 184 for (int i = SVGA3D_SHADERTYPE_MIN; i < SVGA3D_SHADERTYPE_ DX10_MAX; ++i) /** @todo SVGA3D_SHADERTYPE_MAX */184 for (int i = SVGA3D_SHADERTYPE_MIN; i < SVGA3D_SHADERTYPE_MAX; ++i) 185 185 { 186 186 SVGA3dShaderType const shaderType = (SVGA3dShaderType)i; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win-dx.cpp
r95022 r95023 947 947 RT_NOREF(pBackend); 948 948 949 if (pDevice->pImmediateContext)950 {951 dxDeviceFlush(pDevice); /* Make sure that any pending draw calls are finished. */952 pDevice->pImmediateContext->ClearState();953 }954 955 949 D3D_RELEASE(pDevice->pStagingBuffer); 956 950 … … 5002 4996 VMSVGA3DBACKENDDXCONTEXT *pBackendDXContext = pDXContext->pBackendDXContext; 5003 4997 4998 if (pBackendDXContext->dxDevice.pImmediateContext) 4999 dxDeviceFlush(&pBackendDXContext->dxDevice); /* Make sure that any pending draw calls are finished. */ 5000 5004 5001 if (pBackendDXContext->paRenderTargetView) 5005 5002 { … … 5386 5383 5387 5384 /* Make sure that the shader resource views exist. */ 5388 for (uint32_t idxShaderState = 0; idxShaderState < SVGA3D_NUM_SHADERTYPE _DX10 /** @todo SVGA3D_NUM_SHADERTYPE*/; ++idxShaderState)5385 for (uint32_t idxShaderState = 0; idxShaderState < SVGA3D_NUM_SHADERTYPE; ++idxShaderState) 5389 5386 { 5390 5387 for (uint32_t idxSR = 0; idxSR < SVGA3D_DX_MAX_SRVIEWS; ++idxSR) … … 5593 5590 */ 5594 5591 5595 for (uint32_t idxShaderState = 0; idxShaderState < SVGA3D_NUM_SHADERTYPE _DX10 /** @todo SVGA3D_NUM_SHADERTYPE*/; ++idxShaderState)5592 for (uint32_t idxShaderState = 0; idxShaderState < SVGA3D_NUM_SHADERTYPE; ++idxShaderState) 5596 5593 { 5597 5594 DXSHADER *pDXShader; … … 5605 5602 { 5606 5603 /* Create a new shader. */ 5607 Log(("Shader: cid=%u shid=%u type=%d \n", pDXContext->cid, shaderId, pDXShader->enmShaderType));5604 Log(("Shader: cid=%u shid=%u type=%d, GuestSignatures %d\n", pDXContext->cid, shaderId, pDXShader->enmShaderType, pDXShader->shaderInfo.fGuestSignatures)); 5608 5605 5609 5606 /* Apply resource types to a pixel shader. */ … … 6280 6277 } 6281 6278 6279 UINT NumRTVs = 0; 6282 6280 ID3D11RenderTargetView *apRenderTargetViews[SVGA3D_MAX_RENDER_TARGETS]; 6283 6281 RT_ZERO(apRenderTargetViews); … … 6289 6287 ASSERT_GUEST_RETURN(renderTargetViewId < pDXContext->pBackendDXContext->cRenderTargetView, VERR_INVALID_PARAMETER); 6290 6288 apRenderTargetViews[i] = pDXContext->pBackendDXContext->paRenderTargetView[renderTargetViewId].u.pRenderTargetView; 6289 ++NumRTVs; 6291 6290 } 6292 6291 } … … 6297 6296 pDepthStencilView = pDXContext->pBackendDXContext->paDepthStencilView[depthStencilViewId].u.pDepthStencilView; 6298 6297 6299 pDevice->pImmediateContext->OMSetRenderTargets (pDXContext->cRenderTargets,6298 pDevice->pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews(NumRTVs, 6300 6299 apRenderTargetViews, 6301 pDepthStencilView); 6302 // Assert(NumUAVs == 0); 6303 if (NumUAVs != 0) 6304 pDevice->pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews(D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL, 6305 NULL, 6306 NULL, 6307 pDXContext->svgaDXContext.uavSpliceIndex, 6308 NumUAVs, 6309 apUnorderedAccessViews, 6310 aUAVInitialCounts); 6300 pDepthStencilView, 6301 NumRTVs /*pDXContext->svgaDXContext.uavSpliceIndex*/, 6302 NumUAVs, 6303 apUnorderedAccessViews, 6304 aUAVInitialCounts); 6311 6305 return VINF_SUCCESS; 6312 6306 } -
trunk/src/VBox/Devices/Graphics/svgadump/svga_dump.c
r88838 r95023 231 231 case SVGA3D_SHADERTYPE_GS: 232 232 return "SVGA3D_SHADERTYPE_GS"; 233 case SVGA3D_SHADERTYPE_HS: 234 return "SVGA3D_SHADERTYPE_HS"; 235 case SVGA3D_SHADERTYPE_DS: 236 return "SVGA3D_SHADERTYPE_DS"; 237 case SVGA3D_SHADERTYPE_CS: 238 return "SVGA3D_SHADERTYPE_CS"; 233 239 default: 234 240 return "unknown shader type!";
Note:
See TracChangeset
for help on using the changeset viewer.