- Timestamp:
- Mar 16, 2022 5:57:21 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 150523
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA-cmd.cpp
r94232 r94264 2491 2491 { 2492 2492 #ifdef VMSVGA3D_DX 2493 DEBUG_BREAKPOINT_TEST(); 2494 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2495 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2496 return vmsvga3dDXDefineQuery(pThisCC, idDXContext); 2493 //DEBUG_BREAKPOINT_TEST(); 2494 RT_NOREF(cbCmd); 2495 return vmsvga3dDXDefineQuery(pThisCC, idDXContext, pCmd); 2497 2496 #else 2498 2497 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2506 2505 { 2507 2506 #ifdef VMSVGA3D_DX 2508 DEBUG_BREAKPOINT_TEST(); 2509 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2510 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2511 return vmsvga3dDXDestroyQuery(pThisCC, idDXContext); 2507 //DEBUG_BREAKPOINT_TEST(); 2508 RT_NOREF(cbCmd); 2509 return vmsvga3dDXDestroyQuery(pThisCC, idDXContext, pCmd); 2512 2510 #else 2513 2511 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2521 2519 { 2522 2520 #ifdef VMSVGA3D_DX 2523 DEBUG_BREAKPOINT_TEST(); 2524 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2525 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2526 return vmsvga3dDXBindQuery(pThisCC, idDXContext); 2521 //DEBUG_BREAKPOINT_TEST(); 2522 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2523 RT_NOREF(cbCmd); 2524 /* This returns NULL if mob does not exist. If the guest sends a wrong mob id, the current mob will be unbound. */ 2525 PVMSVGAMOB pMob = vmsvgaR3MobGet(pSvgaR3State, pCmd->mobid); 2526 return vmsvga3dDXBindQuery(pThisCC, idDXContext, pCmd, pMob); 2527 2527 #else 2528 2528 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2536 2536 { 2537 2537 #ifdef VMSVGA3D_DX 2538 DEBUG_BREAKPOINT_TEST(); 2539 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2540 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2541 return vmsvga3dDXSetQueryOffset(pThisCC, idDXContext); 2538 //DEBUG_BREAKPOINT_TEST(); 2539 RT_NOREF(cbCmd); 2540 return vmsvga3dDXSetQueryOffset(pThisCC, idDXContext, pCmd); 2542 2541 #else 2543 2542 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2551 2550 { 2552 2551 #ifdef VMSVGA3D_DX 2553 DEBUG_BREAKPOINT_TEST(); 2554 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2555 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2556 return vmsvga3dDXBeginQuery(pThisCC, idDXContext); 2552 //DEBUG_BREAKPOINT_TEST(); 2553 RT_NOREF(cbCmd); 2554 return vmsvga3dDXBeginQuery(pThisCC, idDXContext, pCmd); 2557 2555 #else 2558 2556 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2566 2564 { 2567 2565 #ifdef VMSVGA3D_DX 2568 DEBUG_BREAKPOINT_TEST(); 2569 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2570 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2571 return vmsvga3dDXEndQuery(pThisCC, idDXContext); 2566 //DEBUG_BREAKPOINT_TEST(); 2567 RT_NOREF(cbCmd); 2568 return vmsvga3dDXEndQuery(pThisCC, idDXContext, pCmd); 2572 2569 #else 2573 2570 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); … … 2966 2963 { 2967 2964 #ifdef VMSVGA3D_DX 2968 DEBUG_BREAKPOINT_TEST(); 2969 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 2970 RT_NOREF(pSvgaR3State, pCmd, cbCmd); 2971 return vmsvga3dDXDestroyElementLayout(pThisCC, idDXContext); 2965 //DEBUG_BREAKPOINT_TEST(); 2966 RT_NOREF(cbCmd); 2967 return vmsvga3dDXDestroyElementLayout(pThisCC, idDXContext, pCmd); 2972 2968 #else 2973 2969 RT_NOREF(pThisCC, idDXContext, pCmd, cbCmd); -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-shader.cpp
r94232 r94264 1521 1521 } 1522 1522 else 1523 AssertFailedReturn(VERR_NOT_IMPLEMENTED); /** @todo Anything else special for extended opcodes. */ 1523 { 1524 VGPU10OpcodeToken1 opcode1; 1525 opcode1.value = dxbcTokenReaderRead32(r); 1526 ASSERT_GUEST(opcode1.opcodeType == VGPU10_EXTENDED_OPCODE_SAMPLE_CONTROLS); 1527 } 1524 1528 } 1525 1529 … … 2380 2384 // paToken[1] unmodified 2381 2385 // paToken[2] unmodified 2382 paToken[3] = 0x5555; /* float */;2386 paToken[3] = 0x5555; /** @todo VGPU10ResourceReturnTypeToken float */ 2383 2387 } 2384 2388 -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx.cpp
r94214 r94264 860 860 ASSERT_GUEST_RETURN( depthStencilViewId < pDXContext->cot.cDSView 861 861 || depthStencilViewId == SVGA_ID_INVALID, VERR_INVALID_PARAMETER); 862 ASSERT_GUEST_RETURN(cRenderTargetViewId < SVGA3D_MAX_RENDER_TARGETS, VERR_INVALID_PARAMETER);862 ASSERT_GUEST_RETURN(cRenderTargetViewId <= SVGA3D_MAX_RENDER_TARGETS, VERR_INVALID_PARAMETER); 863 863 for (uint32_t i = 0; i < cRenderTargetViewId; ++i) 864 864 ASSERT_GUEST_RETURN( paRenderTargetViewId[i] < pDXContext->cot.cRTView … … 951 951 952 952 953 int vmsvga3dDXDefineQuery(PVGASTATECC pThisCC, uint32_t idDXContext )953 int vmsvga3dDXDefineQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDefineQuery const *pCmd) 954 954 { 955 955 int rc; … … 963 963 AssertRCReturn(rc, rc); 964 964 965 rc = pSvgaR3State->pFuncsDX->pfnDXDefineQuery(pThisCC, pDXContext); 966 return rc; 967 } 968 969 970 int vmsvga3dDXDestroyQuery(PVGASTATECC pThisCC, uint32_t idDXContext) 965 SVGA3dQueryId const queryId = pCmd->queryId; 966 967 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 968 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 969 ASSERT_GUEST_RETURN(pCmd->type >= SVGA3D_QUERYTYPE_MIN && pCmd->type < SVGA3D_QUERYTYPE_MAX, VERR_INVALID_PARAMETER); 970 RT_UNTRUSTED_VALIDATED_FENCE(); 971 972 /* Cleanup the current query. */ 973 pSvgaR3State->pFuncsDX->pfnDXDestroyQuery(pThisCC, pDXContext, queryId); 974 975 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 976 pEntry->type = pCmd->type; 977 pEntry->state = SVGADX_QDSTATE_IDLE; 978 pEntry->flags = pCmd->flags; 979 pEntry->mobid = SVGA_ID_INVALID; 980 pEntry->offset = 0; 981 982 rc = pSvgaR3State->pFuncsDX->pfnDXDefineQuery(pThisCC, pDXContext, queryId, pEntry); 983 return rc; 984 } 985 986 987 int vmsvga3dDXDestroyQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDestroyQuery const *pCmd) 971 988 { 972 989 int rc; … … 980 997 AssertRCReturn(rc, rc); 981 998 982 rc = pSvgaR3State->pFuncsDX->pfnDXDestroyQuery(pThisCC, pDXContext); 983 return rc; 984 } 985 986 987 int vmsvga3dDXBindQuery(PVGASTATECC pThisCC, uint32_t idDXContext) 999 SVGA3dQueryId const queryId = pCmd->queryId; 1000 1001 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 1002 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 1003 RT_UNTRUSTED_VALIDATED_FENCE(); 1004 1005 pSvgaR3State->pFuncsDX->pfnDXDestroyQuery(pThisCC, pDXContext, queryId); 1006 1007 /* Cleanup COTable entry.*/ 1008 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 1009 pEntry->type = SVGA3D_QUERYTYPE_INVALID; 1010 pEntry->state = SVGADX_QDSTATE_INVALID; 1011 pEntry->flags = 0; 1012 pEntry->mobid = SVGA_ID_INVALID; 1013 pEntry->offset = 0; 1014 1015 return rc; 1016 } 1017 1018 1019 int vmsvga3dDXBindQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXBindQuery const *pCmd, PVMSVGAMOB pMob) 988 1020 { 989 1021 int rc; … … 997 1029 AssertRCReturn(rc, rc); 998 1030 999 rc = pSvgaR3State->pFuncsDX->pfnDXBindQuery(pThisCC, pDXContext); 1000 return rc; 1001 } 1002 1003 1004 int vmsvga3dDXSetQueryOffset(PVGASTATECC pThisCC, uint32_t idDXContext) 1005 { 1006 int rc; 1007 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 1008 AssertReturn(pSvgaR3State->pFuncsDX && pSvgaR3State->pFuncsDX->pfnDXSetQueryOffset, VERR_INVALID_STATE); 1009 PVMSVGA3DSTATE p3dState = pThisCC->svga.p3dState; 1010 AssertReturn(p3dState, VERR_INVALID_STATE); 1011 1012 PVMSVGA3DDXCONTEXT pDXContext; 1013 rc = vmsvga3dDXContextFromCid(p3dState, idDXContext, &pDXContext); 1014 AssertRCReturn(rc, rc); 1015 1016 rc = pSvgaR3State->pFuncsDX->pfnDXSetQueryOffset(pThisCC, pDXContext); 1017 return rc; 1018 } 1019 1020 1021 int vmsvga3dDXBeginQuery(PVGASTATECC pThisCC, uint32_t idDXContext) 1031 SVGA3dQueryId const queryId = pCmd->queryId; 1032 1033 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 1034 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 1035 RT_UNTRUSTED_VALIDATED_FENCE(); 1036 1037 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 1038 pEntry->mobid = vmsvgaR3MobId(pMob); 1039 1040 rc = pSvgaR3State->pFuncsDX->pfnDXBindQuery(pThisCC, pDXContext, queryId); 1041 return rc; 1042 } 1043 1044 1045 int vmsvga3dDXSetQueryOffset(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXSetQueryOffset const *pCmd) 1046 { 1047 int rc; 1048 PVMSVGAR3STATE const pSvgaR3State = pThisCC->svga.pSvgaR3State; 1049 AssertReturn(pSvgaR3State->pFuncsDX, VERR_INVALID_STATE); 1050 PVMSVGA3DSTATE p3dState = pThisCC->svga.p3dState; 1051 AssertReturn(p3dState, VERR_INVALID_STATE); 1052 1053 PVMSVGA3DDXCONTEXT pDXContext; 1054 rc = vmsvga3dDXContextFromCid(p3dState, idDXContext, &pDXContext); 1055 AssertRCReturn(rc, rc); 1056 1057 SVGA3dQueryId const queryId = pCmd->queryId; 1058 1059 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 1060 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 1061 RT_UNTRUSTED_VALIDATED_FENCE(); 1062 1063 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 1064 pEntry->offset = pCmd->mobOffset; 1065 1066 return rc; 1067 } 1068 1069 1070 int vmsvga3dDXBeginQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXBeginQuery const *pCmd) 1022 1071 { 1023 1072 int rc; … … 1031 1080 AssertRCReturn(rc, rc); 1032 1081 1033 rc = pSvgaR3State->pFuncsDX->pfnDXBeginQuery(pThisCC, pDXContext); 1034 return rc; 1035 } 1036 1037 1038 int vmsvga3dDXEndQuery(PVGASTATECC pThisCC, uint32_t idDXContext) 1082 SVGA3dQueryId const queryId = pCmd->queryId; 1083 1084 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 1085 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 1086 RT_UNTRUSTED_VALIDATED_FENCE(); 1087 1088 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 1089 Assert(pEntry->state == SVGADX_QDSTATE_IDLE || SVGADX_QDSTATE_PENDING); 1090 if (pEntry->state != SVGADX_QDSTATE_ACTIVE) 1091 { 1092 rc = pSvgaR3State->pFuncsDX->pfnDXBeginQuery(pThisCC, pDXContext, queryId); 1093 if (RT_SUCCESS(rc)) 1094 pEntry->state = SVGADX_QDSTATE_ACTIVE; 1095 } 1096 return rc; 1097 } 1098 1099 1100 int vmsvga3dDXEndQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXEndQuery const *pCmd) 1039 1101 { 1040 1102 int rc; … … 1048 1110 AssertRCReturn(rc, rc); 1049 1111 1050 rc = pSvgaR3State->pFuncsDX->pfnDXEndQuery(pThisCC, pDXContext); 1112 SVGA3dQueryId const queryId = pCmd->queryId; 1113 1114 ASSERT_GUEST_RETURN(pDXContext->cot.paQuery, VERR_INVALID_STATE); 1115 ASSERT_GUEST_RETURN(queryId < pDXContext->cot.cQuery, VERR_INVALID_PARAMETER); 1116 RT_UNTRUSTED_VALIDATED_FENCE(); 1117 1118 SVGACOTableDXQueryEntry *pEntry = &pDXContext->cot.paQuery[queryId]; 1119 Assert(pEntry->state == SVGADX_QDSTATE_ACTIVE); 1120 if (pEntry->state == SVGADX_QDSTATE_ACTIVE) 1121 { 1122 rc = pSvgaR3State->pFuncsDX->pfnDXEndQuery(pThisCC, pDXContext, queryId); 1123 if (RT_SUCCESS(rc)) 1124 pEntry->state = SVGADX_QDSTATE_PENDING; 1125 } 1126 1051 1127 return rc; 1052 1128 } … … 1497 1573 1498 1574 1499 int vmsvga3dDXDestroyElementLayout(PVGASTATECC pThisCC, uint32_t idDXContext )1575 int vmsvga3dDXDestroyElementLayout(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDestroyElementLayout const *pCmd) 1500 1576 { 1501 1577 int rc; … … 1509 1585 AssertRCReturn(rc, rc); 1510 1586 1511 rc = pSvgaR3State->pFuncsDX->pfnDXDestroyElementLayout(pThisCC, pDXContext); 1587 SVGA3dElementLayoutId const elementLayoutId = pCmd->elementLayoutId; 1588 1589 ASSERT_GUEST_RETURN(pDXContext->cot.paElementLayout, VERR_INVALID_STATE); 1590 ASSERT_GUEST_RETURN(elementLayoutId < pDXContext->cot.cElementLayout, VERR_INVALID_PARAMETER); 1591 RT_UNTRUSTED_VALIDATED_FENCE(); 1592 1593 pSvgaR3State->pFuncsDX->pfnDXDestroyElementLayout(pThisCC, pDXContext, elementLayoutId); 1594 1595 SVGACOTableDXElementLayoutEntry *pEntry = &pDXContext->cot.paElementLayout[elementLayoutId]; 1596 RT_ZERO(*pEntry); 1597 pEntry->elid = SVGA3D_INVALID_ID; 1598 1512 1599 return rc; 1513 1600 } -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win-dx.cpp
r94242 r94264 235 235 } DXSHADER; 236 236 237 typedef struct DXQUERY 238 { 239 SVGA3dQueryType enmQueryType; 240 ID3D11Query *pQuery; 241 } DXQUERY; 242 237 243 typedef struct DXSTREAMOUTPUT 238 244 { … … 250 256 uint32_t cSamplerState; /* papSamplerState */ 251 257 uint32_t cRasterizerState; /* papRasterizerState */ 252 uint32_t cElementLayout; /* pa pElementLayout */253 uint32_t cRenderTargetView; /* pa pRenderTargetView */254 uint32_t cDepthStencilView; /* pa pDepthStencilView */255 uint32_t cShaderResourceView; /* pa pShaderResourceView */256 uint32_t cQuery; /* pa pQuery */257 uint32_t cShader; /* pa pShader */258 uint32_t cStreamOutput; /* pa pStreamOutput */258 uint32_t cElementLayout; /* paElementLayout */ 259 uint32_t cRenderTargetView; /* paRenderTargetView */ 260 uint32_t cDepthStencilView; /* paDepthStencilView */ 261 uint32_t cShaderResourceView; /* paShaderResourceView */ 262 uint32_t cQuery; /* paQuery */ 263 uint32_t cShader; /* paShader */ 264 uint32_t cStreamOutput; /* paStreamOutput */ 259 265 ID3D11BlendState **papBlendState; 260 266 ID3D11DepthStencilState **papDepthStencilState; … … 265 271 DXVIEW *paDepthStencilView; 266 272 DXVIEW *paShaderResourceView; 267 ID3D11Query **papQuery;273 DXQUERY *paQuery; 268 274 DXSHADER *paShader; 269 275 DXSTREAMOUTPUT *paStreamOutput; … … 300 306 static DECLCALLBACK(void) vmsvga3dBackSurfaceDestroy(PVGASTATECC pThisCC, PVMSVGA3DSURFACE pSurface); 301 307 static int dxDestroyShader(DXSHADER *pDXShader); 308 static int dxDestroyQuery(DXQUERY *pDXQuery); 302 309 303 310 … … 1277 1284 switch (svgaBlend) 1278 1285 { 1279 case SVGA3D_BLENDOP_SRCCOLOR: return D3D11_BLEND_SRC_ALPHA; 1280 case SVGA3D_BLENDOP_INVSRCCOLOR: return D3D11_BLEND_INV_SRC_ALPHA; 1281 case SVGA3D_BLENDOP_DESTCOLOR: return D3D11_BLEND_DEST_ALPHA; 1282 case SVGA3D_BLENDOP_INVDESTCOLOR: return D3D11_BLEND_INV_DEST_ALPHA; 1283 case SVGA3D_BLENDOP_SRC1COLOR: return D3D11_BLEND_SRC1_ALPHA; 1284 case SVGA3D_BLENDOP_INVSRC1COLOR: return D3D11_BLEND_INV_SRC1_ALPHA; 1286 case SVGA3D_BLENDOP_ZERO: return D3D11_BLEND_ZERO; 1287 case SVGA3D_BLENDOP_ONE: return D3D11_BLEND_ONE; 1288 case SVGA3D_BLENDOP_SRCCOLOR: return D3D11_BLEND_SRC_ALPHA; 1289 case SVGA3D_BLENDOP_INVSRCCOLOR: return D3D11_BLEND_INV_SRC_ALPHA; 1290 case SVGA3D_BLENDOP_SRCALPHA: return D3D11_BLEND_SRC_ALPHA; 1291 case SVGA3D_BLENDOP_INVSRCALPHA: return D3D11_BLEND_INV_SRC_ALPHA; 1292 case SVGA3D_BLENDOP_DESTALPHA: return D3D11_BLEND_DEST_ALPHA; 1293 case SVGA3D_BLENDOP_INVDESTALPHA: return D3D11_BLEND_INV_DEST_ALPHA; 1294 case SVGA3D_BLENDOP_DESTCOLOR: return D3D11_BLEND_DEST_ALPHA; 1295 case SVGA3D_BLENDOP_INVDESTCOLOR: return D3D11_BLEND_INV_DEST_ALPHA; 1296 case SVGA3D_BLENDOP_SRCALPHASAT: return D3D11_BLEND_SRC_ALPHA_SAT; 1297 case SVGA3D_BLENDOP_BLENDFACTOR: return D3D11_BLEND_BLEND_FACTOR; 1298 case SVGA3D_BLENDOP_INVBLENDFACTOR: return D3D11_BLEND_INV_BLEND_FACTOR; 1299 case SVGA3D_BLENDOP_SRC1COLOR: return D3D11_BLEND_SRC1_ALPHA; 1300 case SVGA3D_BLENDOP_INVSRC1COLOR: return D3D11_BLEND_INV_SRC1_ALPHA; 1301 case SVGA3D_BLENDOP_SRC1ALPHA: return D3D11_BLEND_SRC1_ALPHA; 1302 case SVGA3D_BLENDOP_INVSRC1ALPHA: return D3D11_BLEND_INV_SRC1_ALPHA; 1303 case SVGA3D_BLENDOP_BLENDFACTORALPHA: return D3D11_BLEND_BLEND_FACTOR; 1304 case SVGA3D_BLENDOP_INVBLENDFACTORALPHA: return D3D11_BLEND_INV_BLEND_FACTOR; 1285 1305 default: 1286 1306 break; 1287 1307 } 1288 return (D3D11_BLEND)svgaBlend;1308 return D3D11_BLEND_ZERO; 1289 1309 } 1290 1310 … … 1292 1312 static D3D11_BLEND dxBlendFactorColor(uint8_t svgaBlend) 1293 1313 { 1294 return (D3D11_BLEND)svgaBlend; 1314 switch (svgaBlend) 1315 { 1316 case SVGA3D_BLENDOP_ZERO: return D3D11_BLEND_ZERO; 1317 case SVGA3D_BLENDOP_ONE: return D3D11_BLEND_ONE; 1318 case SVGA3D_BLENDOP_SRCCOLOR: return D3D11_BLEND_SRC_COLOR; 1319 case SVGA3D_BLENDOP_INVSRCCOLOR: return D3D11_BLEND_INV_SRC_COLOR; 1320 case SVGA3D_BLENDOP_SRCALPHA: return D3D11_BLEND_SRC_ALPHA; 1321 case SVGA3D_BLENDOP_INVSRCALPHA: return D3D11_BLEND_INV_SRC_ALPHA; 1322 case SVGA3D_BLENDOP_DESTALPHA: return D3D11_BLEND_DEST_ALPHA; 1323 case SVGA3D_BLENDOP_INVDESTALPHA: return D3D11_BLEND_INV_DEST_ALPHA; 1324 case SVGA3D_BLENDOP_DESTCOLOR: return D3D11_BLEND_DEST_COLOR; 1325 case SVGA3D_BLENDOP_INVDESTCOLOR: return D3D11_BLEND_INV_DEST_COLOR; 1326 case SVGA3D_BLENDOP_SRCALPHASAT: return D3D11_BLEND_SRC_ALPHA_SAT; 1327 case SVGA3D_BLENDOP_BLENDFACTOR: return D3D11_BLEND_BLEND_FACTOR; 1328 case SVGA3D_BLENDOP_INVBLENDFACTOR: return D3D11_BLEND_INV_BLEND_FACTOR; 1329 case SVGA3D_BLENDOP_SRC1COLOR: return D3D11_BLEND_SRC1_COLOR; 1330 case SVGA3D_BLENDOP_INVSRC1COLOR: return D3D11_BLEND_INV_SRC1_COLOR; 1331 case SVGA3D_BLENDOP_SRC1ALPHA: return D3D11_BLEND_SRC1_ALPHA; 1332 case SVGA3D_BLENDOP_INVSRC1ALPHA: return D3D11_BLEND_INV_SRC1_ALPHA; 1333 case SVGA3D_BLENDOP_BLENDFACTORALPHA: return D3D11_BLEND_BLEND_FACTOR; 1334 case SVGA3D_BLENDOP_INVBLENDFACTORALPHA: return D3D11_BLEND_INV_BLEND_FACTOR; 1335 default: 1336 break; 1337 } 1338 return D3D11_BLEND_ZERO; 1295 1339 } 1296 1340 … … 1644 1688 SVGA3dStreamOutputId const soid = pDXContext->svgaDXContext.streamOut.soid; 1645 1689 if (soid == SVGA_ID_INVALID) 1690 { 1646 1691 hr = pDevice->pDevice->CreateGeometryShader(pDXShader->pvDXBC, pDXShader->cbDXBC, NULL, &pDXShader->pGeometryShader); 1692 Assert(SUCCEEDED(hr)); 1693 } 1647 1694 else 1648 1695 { … … 1658 1705 SVGA3dStreamOutputDeclarationEntry const *decl = &pEntry->decl[i]; 1659 1706 p->SemanticName = DXShaderGetOutputSemanticName(&pDXShader->shaderInfo, decl->registerIndex); 1707 p->SemanticIndex = decl->registerIndex; 1660 1708 } 1661 1709 … … 1664 1712 pEntry->streamOutputStrideInBytes, cSOTarget, pEntry->rasterizedStream, 1665 1713 /*pClassLinkage=*/ NULL, &pDXShader->pGeometryShader); 1714 Assert(SUCCEEDED(hr)); 1666 1715 if (SUCCEEDED(hr)) 1667 1716 pDXShader->soid = soid; 1668 1717 } 1669 Assert(SUCCEEDED(hr));1670 1718 break; 1671 1719 } … … 2172 2220 else 2173 2221 { 2174 if ( cDepth > 1)2222 if (pSurface->surfaceFlags & SVGA3D_SURFACE_VOLUME) 2175 2223 { 2176 2224 /* … … 2245 2293 * 2D texture. 2246 2294 */ 2295 Assert(cDepth == 1); 2247 2296 Assert(pSurface->cFaces == 1); 2248 2297 … … 4674 4723 else if ( pBackendSurface->enmResType == VMSVGA3D_RESTYPE_TEXTURE_1D 4675 4724 || pBackendSurface->enmResType == VMSVGA3D_RESTYPE_TEXTURE_2D 4725 || pBackendSurface->enmResType == VMSVGA3D_RESTYPE_TEXTURE_CUBE 4676 4726 || pBackendSurface->enmResType == VMSVGA3D_RESTYPE_TEXTURE_3D) 4677 4727 { … … 4900 4950 if (pBackendDXContext->papSamplerState) 4901 4951 DX_RELEASE_ARRAY(pBackendDXContext->cSamplerState, pBackendDXContext->papSamplerState); 4902 if (pBackendDXContext->papQuery) 4903 DX_RELEASE_ARRAY(pBackendDXContext->cQuery, pBackendDXContext->papQuery); 4952 if (pBackendDXContext->paQuery) 4953 { 4954 for (uint32_t i = 0; i < pBackendDXContext->cQuery; ++i) 4955 dxDestroyQuery(&pBackendDXContext->paQuery[i]); 4956 } 4904 4957 if (pBackendDXContext->paShader) 4905 4958 { … … 4921 4974 RTMemFreeZ(pBackendDXContext->paDepthStencilView, sizeof(pBackendDXContext->paDepthStencilView[0]) * pBackendDXContext->cDepthStencilView); 4922 4975 RTMemFreeZ(pBackendDXContext->paShaderResourceView, sizeof(pBackendDXContext->paShaderResourceView[0]) * pBackendDXContext->cShaderResourceView); 4923 RTMemFreeZ(pBackendDXContext->pa pQuery, sizeof(pBackendDXContext->papQuery[0]) * pBackendDXContext->cQuery);4976 RTMemFreeZ(pBackendDXContext->paQuery, sizeof(pBackendDXContext->paQuery[0]) * pBackendDXContext->cQuery); 4924 4977 RTMemFreeZ(pBackendDXContext->paShader, sizeof(pBackendDXContext->paShader[0]) * pBackendDXContext->cShader); 4925 4978 RTMemFreeZ(pBackendDXContext->paStreamOutput, sizeof(pBackendDXContext->paStreamOutput[0]) * pBackendDXContext->cStreamOutput); … … 5455 5508 */ 5456 5509 5457 /* Make sure that 16 bit indices are enough. 20000 ~= 65536 / 3*/5458 AssertReturn(vertexCount <= 20000, VERR_NOT_SUPPORTED);5510 /* Make sure that 16 bit indices are enough. */ 5511 AssertReturn(vertexCount <= 65535, VERR_NOT_SUPPORTED); 5459 5512 5460 5513 /* Generate indices. */ … … 5590 5643 */ 5591 5644 5592 /* Make sure that 16 bit indices are enough. 20000 ~= 65536 / 3*/5593 AssertReturn(IndexCountTF <= 20000, VERR_NOT_SUPPORTED);5645 /* Make sure that 16 bit indices are enough. */ 5646 AssertReturn(IndexCountTF <= 65535, VERR_NOT_SUPPORTED); 5594 5647 5595 5648 /* Save the current index buffer. */ … … 6044 6097 } 6045 6098 6046 6047 static DECLCALLBACK(int) vmsvga3dBackDXDefineQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6048 { 6049 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6050 6051 RT_NOREF(pBackend, pDXContext); 6052 AssertFailed(); /** @todo Implement */ 6053 return VERR_NOT_IMPLEMENTED; 6054 } 6055 6056 6057 static DECLCALLBACK(int) vmsvga3dBackDXDestroyQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6058 { 6059 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6060 6061 RT_NOREF(pBackend, pDXContext); 6062 AssertFailed(); /** @todo Implement */ 6063 return VERR_NOT_IMPLEMENTED; 6064 } 6065 6066 6067 static DECLCALLBACK(int) vmsvga3dBackDXBindQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6068 { 6069 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6070 6071 RT_NOREF(pBackend, pDXContext); 6072 AssertFailed(); /** @todo Implement */ 6073 return VERR_NOT_IMPLEMENTED; 6074 } 6075 6076 6077 static DECLCALLBACK(int) vmsvga3dBackDXSetQueryOffset(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6078 { 6079 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6080 6081 RT_NOREF(pBackend, pDXContext); 6082 AssertFailed(); /** @todo Implement */ 6083 return VERR_NOT_IMPLEMENTED; 6084 } 6085 6086 6087 static DECLCALLBACK(int) vmsvga3dBackDXBeginQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6088 { 6089 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6090 6091 RT_NOREF(pBackend, pDXContext); 6092 AssertFailed(); /** @todo Implement */ 6093 return VERR_NOT_IMPLEMENTED; 6094 } 6095 6096 6097 static DECLCALLBACK(int) vmsvga3dBackDXEndQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6098 { 6099 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6100 6101 RT_NOREF(pBackend, pDXContext); 6102 AssertFailed(); /** @todo Implement */ 6103 return VERR_NOT_IMPLEMENTED; 6099 static D3D11_QUERY dxQueryType(SVGA3dQueryType type) 6100 { 6101 switch (type) 6102 { 6103 case SVGA3D_QUERYTYPE_OCCLUSION: return D3D11_QUERY_OCCLUSION; 6104 case SVGA3D_QUERYTYPE_TIMESTAMP: return D3D11_QUERY_TIMESTAMP; 6105 case SVGA3D_QUERYTYPE_TIMESTAMPDISJOINT: return D3D11_QUERY_TIMESTAMP_DISJOINT; 6106 case SVGA3D_QUERYTYPE_PIPELINESTATS: return D3D11_QUERY_PIPELINE_STATISTICS; 6107 case SVGA3D_QUERYTYPE_OCCLUSIONPREDICATE: return D3D11_QUERY_OCCLUSION_PREDICATE; 6108 case SVGA3D_QUERYTYPE_STREAMOUTPUTSTATS: return D3D11_QUERY_SO_STATISTICS; 6109 case SVGA3D_QUERYTYPE_STREAMOVERFLOWPREDICATE: return D3D11_QUERY_SO_OVERFLOW_PREDICATE; 6110 case SVGA3D_QUERYTYPE_OCCLUSION64: return D3D11_QUERY_OCCLUSION; 6111 case SVGA3D_QUERYTYPE_SOSTATS_STREAM0: return D3D11_QUERY_SO_STATISTICS_STREAM0; 6112 case SVGA3D_QUERYTYPE_SOSTATS_STREAM1: return D3D11_QUERY_SO_STATISTICS_STREAM1; 6113 case SVGA3D_QUERYTYPE_SOSTATS_STREAM2: return D3D11_QUERY_SO_STATISTICS_STREAM2; 6114 case SVGA3D_QUERYTYPE_SOSTATS_STREAM3: return D3D11_QUERY_SO_STATISTICS_STREAM3; 6115 case SVGA3D_QUERYTYPE_SOP_STREAM0: return D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0; 6116 case SVGA3D_QUERYTYPE_SOP_STREAM1: return D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1; 6117 case SVGA3D_QUERYTYPE_SOP_STREAM2: return D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2; 6118 case SVGA3D_QUERYTYPE_SOP_STREAM3: return D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3; 6119 default: 6120 break; 6121 } 6122 return D3D11_QUERY_EVENT; 6123 } 6124 6125 static int dxDefineQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId, SVGACOTableDXQueryEntry const *pEntry) 6126 { 6127 DXDEVICE *pDXDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext); 6128 AssertReturn(pDXDevice->pDevice, VERR_INVALID_STATE); 6129 6130 DXQUERY *pDXQuery = &pDXContext->pBackendDXContext->paQuery[queryId]; 6131 Assert(pDXQuery->enmQueryType == SVGA3D_QUERYTYPE_INVALID); 6132 6133 D3D11_QUERY_DESC desc; 6134 desc.Query = dxQueryType((SVGA3dQueryType)pEntry->type); 6135 desc.MiscFlags = 0; 6136 if (pEntry->flags & SVGA3D_DXQUERY_FLAG_PREDICATEHINT) 6137 desc.MiscFlags |= (UINT)D3D11_QUERY_MISC_PREDICATEHINT; 6138 6139 HRESULT hr = pDXDevice->pDevice->CreateQuery(&desc, &pDXQuery->pQuery); 6140 AssertReturn(SUCCEEDED(hr), VERR_INVALID_STATE); 6141 6142 pDXQuery->enmQueryType = (SVGA3dQueryType)pEntry->type; 6143 6144 return VINF_SUCCESS; 6145 } 6146 6147 6148 static int dxDestroyQuery(DXQUERY *pDXQuery) 6149 { 6150 pDXQuery->enmQueryType = SVGA3D_QUERYTYPE_INVALID; 6151 D3D_RELEASE(pDXQuery->pQuery); 6152 return VINF_SUCCESS; 6153 } 6154 6155 6156 static DECLCALLBACK(int) vmsvga3dBackDXDefineQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId, SVGACOTableDXQueryEntry const *pEntry) 6157 { 6158 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6159 RT_NOREF(pBackend); 6160 6161 return dxDefineQuery(pThisCC, pDXContext, queryId, pEntry); 6162 } 6163 6164 6165 static DECLCALLBACK(int) vmsvga3dBackDXDestroyQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId) 6166 { 6167 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6168 RT_NOREF(pBackend); 6169 6170 DXQUERY *pDXQuery = &pDXContext->pBackendDXContext->paQuery[queryId]; 6171 dxDestroyQuery(pDXQuery); 6172 6173 return VINF_SUCCESS; 6174 } 6175 6176 6177 static DECLCALLBACK(int) vmsvga3dBackDXBindQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId) 6178 { 6179 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6180 RT_NOREF(pBackend, pDXContext, queryId); 6181 6182 return VINF_SUCCESS; 6183 } 6184 6185 6186 static int dxBeginQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, DXQUERY *pDXQuery) 6187 { 6188 DXDEVICE *pDXDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext); 6189 AssertReturn(pDXDevice->pDevice, VERR_INVALID_STATE); 6190 6191 /* Begin is disabled for some queries. */ 6192 if (pDXQuery->enmQueryType == SVGA3D_QUERYTYPE_TIMESTAMP) 6193 return VINF_SUCCESS; 6194 pDXDevice->pImmediateContext->Begin(pDXQuery->pQuery); 6195 return VINF_SUCCESS; 6196 } 6197 6198 6199 static DECLCALLBACK(int) vmsvga3dBackDXBeginQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId) 6200 { 6201 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6202 RT_NOREF(pBackend); 6203 6204 DXQUERY *pDXQuery = &pDXContext->pBackendDXContext->paQuery[queryId]; 6205 int rc = dxBeginQuery(pThisCC, pDXContext, pDXQuery); 6206 return rc; 6207 } 6208 6209 6210 static int dxEndQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, DXQUERY *pDXQuery) 6211 { 6212 DXDEVICE *pDXDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext); 6213 AssertReturn(pDXDevice->pDevice, VERR_INVALID_STATE); 6214 6215 pDXDevice->pImmediateContext->End(pDXQuery->pQuery); 6216 return VINF_SUCCESS; 6217 } 6218 6219 6220 static DECLCALLBACK(int) vmsvga3dBackDXEndQuery(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId) 6221 { 6222 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6223 RT_NOREF(pBackend); 6224 6225 DXQUERY *pDXQuery = &pDXContext->pBackendDXContext->paQuery[queryId]; 6226 int rc = dxEndQuery(pThisCC, pDXContext, pDXQuery); 6227 return rc; 6104 6228 } 6105 6229 … … 6566 6690 6567 6691 6692 static int dxDestroyElementLayout(DXELEMENTLAYOUT *pDXElementLayout) 6693 { 6694 D3D_RELEASE(pDXElementLayout->pElementLayout); 6695 pDXElementLayout->cElementDesc = 0; 6696 RT_ZERO(pDXElementLayout->aElementDesc); 6697 return VINF_SUCCESS; 6698 } 6699 6700 6568 6701 static DECLCALLBACK(int) vmsvga3dBackDXDefineElementLayout(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dElementLayoutId elementLayoutId, SVGACOTableDXElementLayoutEntry const *pEntry) 6569 6702 { … … 6585 6718 6586 6719 6587 static DECLCALLBACK(int) vmsvga3dBackDXDestroyElementLayout(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext) 6588 { 6589 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6590 6591 RT_NOREF(pBackend, pDXContext); 6592 AssertFailed(); /** @todo Implement */ 6593 return VERR_NOT_IMPLEMENTED; 6720 static DECLCALLBACK(int) vmsvga3dBackDXDestroyElementLayout(PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dElementLayoutId elementLayoutId) 6721 { 6722 PVMSVGA3DBACKEND pBackend = pThisCC->svga.p3dState->pBackend; 6723 RT_NOREF(pBackend); 6724 6725 DXELEMENTLAYOUT *pDXElementLayout = &pDXContext->pBackendDXContext->paElementLayout[elementLayoutId]; 6726 dxDestroyElementLayout(pDXElementLayout); 6727 6728 return VINF_SUCCESS; 6594 6729 } 6595 6730 … … 7092 7227 break; 7093 7228 case SVGA_COTABLE_DXQUERY: 7094 if (pBackendDXContext->pa pQuery)7229 if (pBackendDXContext->paQuery) 7095 7230 { 7231 /* Destroy the no longer used entries. */ 7096 7232 for (uint32_t i = cValidEntries; i < pBackendDXContext->cQuery; ++i) 7097 D3D_RELEASE(pBackendDXContext->papQuery[i]);7233 dxDestroyQuery(&pBackendDXContext->paQuery[i]); 7098 7234 } 7099 7235 7100 rc = dxCOTableRealloc((void **)&pBackendDXContext->pa pQuery, &pBackendDXContext->cQuery,7101 sizeof(pBackendDXContext->pa pQuery[0]), pDXContext->cot.cQuery, cValidEntries);7236 rc = dxCOTableRealloc((void **)&pBackendDXContext->paQuery, &pBackendDXContext->cQuery, 7237 sizeof(pBackendDXContext->paQuery[0]), pDXContext->cot.cQuery, cValidEntries); 7102 7238 AssertRCBreak(rc); 7103 7239 … … 7108 7244 continue; /* Skip uninitialized entry. */ 7109 7245 7110 AssertFailed(); /** @todo implement */ 7246 /* Define queries which were not defined yet in backend. */ 7247 DXQUERY *pDXQuery = &pBackendDXContext->paQuery[i]; 7248 if ( pEntry->type != SVGA3D_QUERYTYPE_INVALID 7249 && pDXQuery->enmQueryType == SVGA3D_QUERYTYPE_INVALID) 7250 dxDefineQuery(pThisCC, pDXContext, i, pEntry); 7251 else 7252 Assert(pEntry->type == pDXQuery->enmQueryType); 7111 7253 } 7112 7254 break; … … 7843 7985 p->pfnDXDestroyQuery = vmsvga3dBackDXDestroyQuery; 7844 7986 p->pfnDXBindQuery = vmsvga3dBackDXBindQuery; 7845 p->pfnDXSetQueryOffset = vmsvga3dBackDXSetQueryOffset;7846 7987 p->pfnDXBeginQuery = vmsvga3dBackDXBeginQuery; 7847 7988 p->pfnDXEndQuery = vmsvga3dBackDXEndQuery; -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d.h
r94232 r94264 442 442 DECLCALLBACKMEMBER(int, pfnDXSetDepthStencilState, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dDepthStencilStateId depthStencilId, uint32_t stencilRef)); 443 443 DECLCALLBACKMEMBER(int, pfnDXSetRasterizerState, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dRasterizerStateId rasterizerId)); 444 DECLCALLBACKMEMBER(int, pfnDXDefineQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 445 DECLCALLBACKMEMBER(int, pfnDXDestroyQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 446 DECLCALLBACKMEMBER(int, pfnDXBindQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 447 DECLCALLBACKMEMBER(int, pfnDXSetQueryOffset, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 448 DECLCALLBACKMEMBER(int, pfnDXBeginQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 449 DECLCALLBACKMEMBER(int, pfnDXEndQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 444 DECLCALLBACKMEMBER(int, pfnDXDefineQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId, SVGACOTableDXQueryEntry const *pEntry)); 445 DECLCALLBACKMEMBER(int, pfnDXDestroyQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId)); 446 DECLCALLBACKMEMBER(int, pfnDXBindQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId)); 447 DECLCALLBACKMEMBER(int, pfnDXBeginQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId)); 448 DECLCALLBACKMEMBER(int, pfnDXEndQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dQueryId queryId)); 450 449 DECLCALLBACKMEMBER(int, pfnDXReadbackQuery, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); 451 450 DECLCALLBACKMEMBER(int, pfnDXSetPredication, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); … … 466 465 DECLCALLBACKMEMBER(int, pfnDXDestroyDepthStencilView, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dDepthStencilViewId depthStencilViewId)); 467 466 DECLCALLBACKMEMBER(int, pfnDXDefineElementLayout, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dElementLayoutId elementLayoutId, SVGACOTableDXElementLayoutEntry const *pEntry)); 468 DECLCALLBACKMEMBER(int, pfnDXDestroyElementLayout, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext ));467 DECLCALLBACKMEMBER(int, pfnDXDestroyElementLayout, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dElementLayoutId elementLayoutId)); 469 468 DECLCALLBACKMEMBER(int, pfnDXDefineBlendState, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext, SVGA3dBlendStateId blendId, SVGACOTableDXBlendStateEntry const *pEntry)); 470 469 DECLCALLBACKMEMBER(int, pfnDXDestroyBlendState, (PVGASTATECC pThisCC, PVMSVGA3DDXCONTEXT pDXContext)); … … 572 571 int vmsvga3dDXSetDepthStencilState(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXSetDepthStencilState const *pCmd); 573 572 int vmsvga3dDXSetRasterizerState(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dRasterizerStateId rasterizerId); 574 int vmsvga3dDXDefineQuery(PVGASTATECC pThisCC, uint32_t idDXContext );575 int vmsvga3dDXDestroyQuery(PVGASTATECC pThisCC, uint32_t idDXContext );576 int vmsvga3dDXBindQuery(PVGASTATECC pThisCC, uint32_t idDXContext );577 int vmsvga3dDXSetQueryOffset(PVGASTATECC pThisCC, uint32_t idDXContext );578 int vmsvga3dDXBeginQuery(PVGASTATECC pThisCC, uint32_t idDXContext );579 int vmsvga3dDXEndQuery(PVGASTATECC pThisCC, uint32_t idDXContext );573 int vmsvga3dDXDefineQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDefineQuery const *pCmd); 574 int vmsvga3dDXDestroyQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDestroyQuery const *pCmd); 575 int vmsvga3dDXBindQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXBindQuery const *pCmd, PVMSVGAMOB pMob); 576 int vmsvga3dDXSetQueryOffset(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXSetQueryOffset const *pCmd); 577 int vmsvga3dDXBeginQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXBeginQuery const *pCmd); 578 int vmsvga3dDXEndQuery(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXEndQuery const *pCmd); 580 579 int vmsvga3dDXReadbackQuery(PVGASTATECC pThisCC, uint32_t idDXContext); 581 580 int vmsvga3dDXSetPredication(PVGASTATECC pThisCC, uint32_t idDXContext); … … 596 595 int vmsvga3dDXDestroyDepthStencilView(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDestroyDepthStencilView const *pCmd); 597 596 int vmsvga3dDXDefineElementLayout(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dElementLayoutId elementLayoutId, uint32_t cDesc, SVGA3dInputElementDesc const *paDesc); 598 int vmsvga3dDXDestroyElementLayout(PVGASTATECC pThisCC, uint32_t idDXContext );597 int vmsvga3dDXDestroyElementLayout(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDestroyElementLayout const *pCmd); 599 598 int vmsvga3dDXDefineBlendState(PVGASTATECC pThisCC, uint32_t idDXContext, SVGA3dCmdDXDefineBlendState const *pCmd); 600 599 int vmsvga3dDXDestroyBlendState(PVGASTATECC pThisCC, uint32_t idDXContext);
Note:
See TracChangeset
for help on using the changeset viewer.