Changeset 102144 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Nov 17, 2023 7:25:12 PM (18 months ago)
- svn:sync-xref-src-repo-rev:
- 160269
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/Svga.cpp
r100053 r102144 2472 2472 uint32_t id) 2473 2473 { 2474 AssertReturn(enmType < RT_ELEMENTS(pSvgaContext->aCOT), STATUS_INVALID_PARAMETER); 2475 PVMSVGACOT pCOT = &pSvgaContext->aCOT[enmType]; 2474 uint32_t idxCOTable; 2475 if (enmType < SVGA_COTABLE_MAX) 2476 idxCOTable = enmType; 2477 else if (enmType >= VBSVGA_COTABLE_MIN && enmType < VBSVGA_COTABLE_MAX) 2478 idxCOTable = SVGA_COTABLE_MAX + (enmType - VBSVGA_COTABLE_MIN); 2479 else 2480 AssertFailedReturn(STATUS_INVALID_PARAMETER); 2481 2482 PVMSVGACOT pCOT = &pSvgaContext->aCOT[idxCOTable]; 2476 2483 2477 2484 if (id < pCOT->cEntries) … … 2481 2488 2482 2489 /* Allocate a new larger mob and inform the host. */ 2483 static uint32_t const s_acbEntry[ SVGA_COTABLE_MAX] =2490 static uint32_t const s_acbEntry[] = 2484 2491 { 2485 2492 sizeof(SVGACOTableDXRTViewEntry), … … 2495 2502 sizeof(SVGACOTableDXShaderEntry), 2496 2503 sizeof(SVGACOTableDXUAViewEntry), 2504 /* VirtualBox Context Object Tables */ 2505 sizeof(VBSVGACOTableDXVideoProcessorEntry), 2506 sizeof(VBSVGACOTableDXVideoDecoderOutputViewEntry), 2507 sizeof(VBSVGACOTableDXVideoDecoderEntry), 2508 sizeof(VBSVGACOTableDXVideoProcessorInputViewEntry), 2509 sizeof(VBSVGACOTableDXVideoProcessorOutputViewEntry), 2497 2510 }; 2498 2511 AssertCompile(RT_ELEMENTS(pSvgaContext->aCOT) == RT_ELEMENTS(s_acbEntry)); 2499 2512 2500 uint32_t cbRequired = (id + 1) * s_acbEntry[ enmType];2513 uint32_t cbRequired = (id + 1) * s_acbEntry[idxCOTable]; 2501 2514 cbRequired = RT_ALIGN_32(cbRequired, PAGE_SIZE); 2502 2515 2503 2516 /* Try to double the current size. */ 2504 uint32_t cbCOT = pCOT->cEntries ? pCOT->cEntries * s_acbEntry[ enmType] : PAGE_SIZE;2517 uint32_t cbCOT = pCOT->cEntries ? pCOT->cEntries * s_acbEntry[idxCOTable] : PAGE_SIZE; 2505 2518 while (cbRequired > cbCOT) 2506 2519 cbCOT *= 2; … … 2548 2561 pCmd->mobid = VMSVGAMOB_ID(pMob); 2549 2562 pCmd->type = enmType; 2550 pCmd->validSizeInBytes = pCOT->cEntries * s_acbEntry[ enmType];2563 pCmd->validSizeInBytes = pCOT->cEntries * s_acbEntry[idxCOTable]; 2551 2564 SvgaCmdBufCommit(pSvga, sizeof(*pCmd)); 2552 2565 } … … 2565 2578 pCmd->mobid = VMSVGAMOB_ID(pMob); 2566 2579 pCmd->type = enmType; 2567 pCmd->validSizeInBytes = pCOT->cEntries * s_acbEntry[ enmType];2580 pCmd->validSizeInBytes = pCOT->cEntries * s_acbEntry[idxCOTable]; 2568 2581 SvgaCmdBufCommit(pSvga, sizeof(*pCmd)); 2569 2582 } … … 2587 2600 2588 2601 pCOT->pMob = pMob; 2589 pCOT->cEntries = cbCOT / s_acbEntry[ enmType];2602 pCOT->cEntries = cbCOT / s_acbEntry[idxCOTable]; 2590 2603 2591 2604 return STATUS_SUCCESS; -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/Svga.h
r99997 r102144 45 45 #include <svga_reg.h> 46 46 #include <svga3d_reg.h> 47 #include <vbsvga3d_dx.h> 47 48 #pragma pack() 48 49 … … 308 309 bool fDXContext : 1; /* Whether this context is a DX context or VGPU9. */ 309 310 bool fDebugVerifyCommands : 1; 310 VMSVGACOT aCOT[ SVGA_COTABLE_MAX];/* Context Object Tables. */311 VMSVGACOT aCOT[VBSVGA_NUM_COTABLES]; /* Context Object Tables. */ 311 312 } VMSVGACONTEXT, *PVMSVGACONTEXT; 312 313 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/SvgaRender.cpp
r98103 r102144 1846 1846 1847 1847 1848 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR VBSVGA_3D_CMD_DX_BASE + 0 */ 1849 static NTSTATUS procVBCmdDXDefineVideoProcessor(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1850 { 1851 VBSVGA3dCmdDXDefineVideoProcessor *pCmd = (VBSVGA3dCmdDXDefineVideoProcessor *)&pHeader[1]; 1852 DEBUG_VERIFYCMD_RETURN(); 1853 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VIDEOPROCESSOR, pCmd->videoProcessorId); 1854 } 1855 1856 1857 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_DECODER_OUTPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 1 */ 1858 static NTSTATUS procVBCmdDXDefineVideoDecoderOutputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1859 { 1860 VBSVGA3dCmdDXDefineVideoDecoderOutputView *pCmd = (VBSVGA3dCmdDXDefineVideoDecoderOutputView *)&pHeader[1]; 1861 DEBUG_VERIFYCMD_RETURN(); 1862 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VDOV, pCmd->videoDecoderOutputViewId); 1863 } 1864 1865 1866 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_DECODER VBSVGA_3D_CMD_DX_BASE + 2 */ 1867 static NTSTATUS procVBCmdDXDefineVideoDecoder(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1868 { 1869 VBSVGA3dCmdDXDefineVideoDecoder *pCmd = (VBSVGA3dCmdDXDefineVideoDecoder *)&pHeader[1]; 1870 DEBUG_VERIFYCMD_RETURN(); 1871 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VIDEODECODER, pCmd->videoDecoderId); 1872 } 1873 1874 1875 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR_INPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 6 */ 1876 static NTSTATUS procVBCmdDXDefineVideoProcessorInputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1877 { 1878 VBSVGA3dCmdDXDefineVideoProcessorInputView *pCmd = (VBSVGA3dCmdDXDefineVideoProcessorInputView *)&pHeader[1]; 1879 DEBUG_VERIFYCMD_RETURN(); 1880 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VPIV, pCmd->videoProcessorInputViewId); 1881 } 1882 1883 1884 /* VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR_OUTPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 7 */ 1885 static NTSTATUS procVBCmdDXDefineVideoProcessorOutputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1886 { 1887 VBSVGA3dCmdDXDefineVideoProcessorOutputView *pCmd = (VBSVGA3dCmdDXDefineVideoProcessorOutputView *)&pHeader[1]; 1888 DEBUG_VERIFYCMD_RETURN(); 1889 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VPOV, pCmd->videoProcessorOutputViewId); 1890 } 1891 1892 1893 /* VBSVGA_3D_CMD_DX_DESTROY_VIDEO_DECODER VBSVGA_3D_CMD_DX_BASE + 9 */ 1894 static NTSTATUS procVBCmdDXDestroyVideoDecoder(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1895 { 1896 VBSVGA3dCmdDXDestroyVideoDecoder *pCmd = (VBSVGA3dCmdDXDestroyVideoDecoder *)&pHeader[1]; 1897 DEBUG_VERIFYCMD_RETURN(); 1898 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VIDEODECODER, pCmd->videoDecoderId); 1899 } 1900 1901 1902 /* VBSVGA_3D_CMD_DX_DESTROY_VIDEO_DECODER_OUTPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 10 */ 1903 static NTSTATUS procVBCmdDXDestroyVideoDecoderOutputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1904 { 1905 VBSVGA3dCmdDXDestroyVideoDecoderOutputView *pCmd = (VBSVGA3dCmdDXDestroyVideoDecoderOutputView *)&pHeader[1]; 1906 DEBUG_VERIFYCMD_RETURN(); 1907 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VDOV, pCmd->videoDecoderOutputViewId); 1908 } 1909 1910 1911 /* VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR VBSVGA_3D_CMD_DX_BASE + 11 */ 1912 static NTSTATUS procVBCmdDXDestroyVideoProcessor(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1913 { 1914 VBSVGA3dCmdDXDestroyVideoProcessor *pCmd = (VBSVGA3dCmdDXDestroyVideoProcessor *)&pHeader[1]; 1915 DEBUG_VERIFYCMD_RETURN(); 1916 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VIDEOPROCESSOR, pCmd->videoProcessorId); 1917 } 1918 1919 1920 /* VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR_INPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 12 */ 1921 static NTSTATUS procVBCmdDXDestroyVideoProcessorInputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1922 { 1923 VBSVGA3dCmdDXDestroyVideoProcessorInputView *pCmd = (VBSVGA3dCmdDXDestroyVideoProcessorInputView *)&pHeader[1]; 1924 DEBUG_VERIFYCMD_RETURN(); 1925 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VPIV, pCmd->videoProcessorInputViewId); 1926 } 1927 1928 1929 /* VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR_OUTPUT_VIEW VBSVGA_3D_CMD_DX_BASE + 12 */ 1930 static NTSTATUS procVBCmdDXDestroyVideoProcessorOutputView(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1931 { 1932 VBSVGA3dCmdDXDestroyVideoProcessorOutputView *pCmd = (VBSVGA3dCmdDXDestroyVideoProcessorOutputView *)&pHeader[1]; 1933 DEBUG_VERIFYCMD_RETURN(); 1934 return SvgaCOTNotifyId(pSvga, pSvgaContext, VBSVGA_COTABLE_VPOV, pCmd->videoProcessorOutputViewId); 1935 } 1936 1937 1848 1938 /* Command ok. */ 1849 static NTSTATUS procCmd Nop(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader)1939 static NTSTATUS procCmdOK(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader) 1850 1940 { 1851 1941 RT_NOREF(pSvga, pSvgaContext, pHeader); … … 1868 1958 } SVGA3DCOMMANDDESC; 1869 1959 1870 static SVGA3DCOMMANDDESC const s_aCommandDesc[ SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE] =1960 static SVGA3DCOMMANDDESC const s_aCommandDesc[] = 1871 1961 { 1872 1962 { procCmdDefineSurface }, // SVGA_3D_CMD_SURFACE_DEFINE … … 2108 2198 { procCmdSurfaceStretchBltNonMSToMS }, // SVGA_3D_CMD_SURFACE_STRETCHBLT_NON_MS_TO_MS 2109 2199 { procCmdDXBindShaderIface }, // SVGA_3D_CMD_DX_BIND_SHADER_IFACE 2200 2201 /* VirtualBox commands */ 2202 { procVBCmdDXDefineVideoProcessor }, // VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR 2203 { procVBCmdDXDefineVideoDecoderOutputView }, // VBSVGA_3D_CMD_DX_DEFINE_VIDEO_DECODER_OUTPUT_VIEW 2204 { procVBCmdDXDefineVideoDecoder }, // VBSVGA_3D_CMD_DX_DEFINE_VIDEO_DECODER 2205 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_DECODER_BEGIN_FRAME 2206 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_DECODER_SUBMIT_BUFFERS 2207 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_DECODER_END_FRAME 2208 { procVBCmdDXDefineVideoProcessorInputView }, // VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR_INPUT_VIEW 2209 { procVBCmdDXDefineVideoProcessorOutputView }, // VBSVGA_3D_CMD_DX_DEFINE_VIDEO_PROCESSOR_OUTPUT_VIEW 2210 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_BLT 2211 { procVBCmdDXDestroyVideoDecoder }, // VBSVGA_3D_CMD_DX_DESTROY_VIDEO_DECODER 2212 { procVBCmdDXDestroyVideoDecoderOutputView }, // VBSVGA_3D_CMD_DX_DESTROY_VIDEO_DECODER_OUTPUT_VIEW 2213 { procVBCmdDXDestroyVideoProcessor }, // VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR 2214 { procVBCmdDXDestroyVideoProcessorInputView }, // VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR_INPUT_VIEW 2215 { procVBCmdDXDestroyVideoProcessorOutputView }, // VBSVGA_3D_CMD_DX_DESTROY_VIDEO_PROCESSOR_OUTPUT_VIEW 2216 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_TARGET_RECT 2217 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_BACKGROUND_COLOR 2218 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_COLOR_SPACE 2219 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_ALPHA_FILL_MODE 2220 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_CONSTRICTION 2221 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_OUTPUT_STEREO_MODE 2222 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_FRAME_FORMAT 2223 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_COLOR_SPACE 2224 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_OUTPUT_RATE 2225 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_SOURCE_RECT 2226 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_DEST_RECT 2227 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_ALPHA 2228 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_PALETTE 2229 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_PIXEL_ASPECT_RATIO 2230 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_LUMA_KEY 2231 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_STEREO_FORMAT 2232 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_AUTO_PROCESSING_MODE 2233 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_FILTER 2234 { procCmdOK }, // VBSVGA_3D_CMD_DX_VIDEO_PROCESSOR_SET_STREAM_ROTATION 2235 { procCmdOK }, // VBSVGA_3D_CMD_DX_GET_VIDEO_CAPABILITY 2110 2236 }; 2111 2237 AssertCompile(RT_ELEMENTS(s_aCommandDesc) == VBSVGA_NUM_COMMANDS); 2112 2238 2113 2239 NTSTATUS SvgaRenderCommandsD3D(PVBOXWDDM_EXT_VMSVGA pSvga, … … 2141 2267 2142 2268 /* It is not expected that any of common SVGA commands will be in the command buffer 2143 * because the SVGA galliumdriver does not use them.2269 * because the user mode driver does not use them. 2144 2270 */ 2145 AssertBreakStmt(SVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < SVGA_3D_CMD_MAX, Status = STATUS_ILLEGAL_INSTRUCTION); 2271 uint32_t idxCmd; 2272 if (SVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < SVGA_3D_CMD_MAX) 2273 idxCmd = u32CmdId - SVGA_3D_CMD_BASE; 2274 else if (VBSVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < VBSVGA_3D_CMD_MAX) 2275 idxCmd = u32CmdId - VBSVGA_3D_CMD_BASE + (SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE); 2276 else 2277 AssertFailedBreakStmt(Status = STATUS_ILLEGAL_INSTRUCTION); 2278 2279 AssertBreakStmt(idxCmd < RT_ELEMENTS(s_aCommandDesc), Status = STATUS_ILLEGAL_INSTRUCTION); 2146 2280 2147 2281 /* A 3D command must have a header. */ … … 2159 2293 2160 2294 /* Verify the command in dst place and update it if necessary. */ 2161 uint32_t const idxCmd = u32CmdId - SVGA_3D_CMD_BASE;2162 AssertBreakStmt(idxCmd < RT_ELEMENTS(s_aCommandDesc), Status = STATUS_ILLEGAL_INSTRUCTION);2163 2164 2295 PFNPROCESSCOMMAND pfnProcessCommand = s_aCommandDesc[idxCmd].pfnProcessCommand; 2165 2296 AssertBreakStmt(pfnProcessCommand, Status = STATUS_ILLEGAL_INSTRUCTION); 2166 2297 Status = pfnProcessCommand(pSvga, pSvgaContext, (SVGA3dCmdHeader *)pu8Dst); 2298 2167 2299 if (Status != STATUS_SUCCESS) 2168 2300 { … … 2213 2345 * because the SVGA gallium driver does not use them. 2214 2346 */ 2215 AssertBreakStmt(SVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < SVGA_3D_CMD_MAX, Status = STATUS_ILLEGAL_INSTRUCTION); 2347 uint32_t idxCmd; 2348 if (SVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < SVGA_3D_CMD_MAX) 2349 idxCmd = u32CmdId - SVGA_3D_CMD_BASE; 2350 else if (VBSVGA_3D_CMD_BASE <= u32CmdId && u32CmdId < VBSVGA_3D_CMD_MAX) 2351 idxCmd = u32CmdId - VBSVGA_3D_CMD_BASE + (SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE); 2352 else 2353 AssertFailedBreakStmt(Status = STATUS_ILLEGAL_INSTRUCTION); 2354 2355 AssertBreakStmt(idxCmd < RT_ELEMENTS(s_aCommandDesc), Status = STATUS_ILLEGAL_INSTRUCTION); 2216 2356 2217 2357 /* A 3D command must have a header. */ … … 2224 2364 2225 2365 /* Verify the command in src place. */ 2226 uint32_t const idxCmd = u32CmdId - SVGA_3D_CMD_BASE;2227 AssertBreakStmt(idxCmd < RT_ELEMENTS(s_aCommandDesc), Status = STATUS_ILLEGAL_INSTRUCTION);2228 2229 2366 PFNPROCESSCOMMAND pfnProcessCommand = s_aCommandDesc[idxCmd].pfnProcessCommand; 2230 2367 AssertBreakStmt(pfnProcessCommand, Status = STATUS_ILLEGAL_INSTRUCTION); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/VBoxMPGaWddm.cpp
r99997 r102144 241 241 if (pvCmd) 242 242 { 243 SVGACOTableType enmType; 244 if (i < SVGA_COTABLE_MAX) 245 enmType = (SVGACOTableType)i; 246 else if (i < SVGA_COTABLE_MAX + (VBSVGA_COTABLE_MAX - VBSVGA_COTABLE_MIN)) 247 enmType = (SVGACOTableType)(i - SVGA_COTABLE_MAX + VBSVGA_COTABLE_MIN); 248 else 249 AssertFailedBreak(); 243 250 SVGA3dCmdDXSetCOTable *pCmd = (SVGA3dCmdDXSetCOTable *)pvCmd; 244 251 pCmd->cid = pSvgaContext->u32Cid; 245 252 pCmd->mobid = SVGA3D_INVALID_ID; 246 pCmd->type = (SVGACOTableType)i;253 pCmd->type = enmType; 247 254 pCmd->validSizeInBytes = 0; 248 255 SvgaCmdBufCommit(pSvga, sizeof(*pCmd));
Note:
See TracChangeset
for help on using the changeset viewer.