VirtualBox

Changeset 106100 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Sep 19, 2024 8:56:04 PM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164876
Message:

Devices/Graphics: use correct number of UA views with D3D11.0 devices

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp

    r105704 r106100  
    66666666    DXDEVICE *pDXDevice = dxDeviceGet(pThisCC->svga.p3dState);
    66676667    pDXDevice->pImmediateContext->OMSetRenderTargetsAndUnorderedAccessViews(0, NULL, NULL, 0, 0, NULL, NULL);
    6668     for (unsigned i = 0; i < SVGA3D_DX11_1_MAX_UAVIEWS; ++i)
     6668    uint32_t const cMaxUAViews = pDXDevice->FeatureLevel >= D3D_FEATURE_LEVEL_11_1
     6669                               ? SVGA3D_DX11_1_MAX_UAVIEWS
     6670                               : SVGA3D_MAX_UAVIEWS;
     6671    for (uint32_t i = 0; i < cMaxUAViews; ++i)
    66696672    {
    66706673        ID3D11UnorderedAccessView *pNullUA = 0;
     
    67266729     */
    67276730
    6728     for (uint32_t idxUA = 0; idxUA < SVGA3D_DX11_1_MAX_UAVIEWS; ++idxUA)
     6731    for (uint32_t idxUA = 0; idxUA < cMaxUAViews; ++idxUA)
    67296732    {
    67306733        SVGA3dUAViewId const viewId = pDXContext->svgaDXContext.csuaViewIds[idxUA];
     
    67846787    }
    67856788
    6786     for (uint32_t idxUA = 0; idxUA < SVGA3D_DX11_1_MAX_UAVIEWS; ++idxUA)
     6789    for (uint32_t idxUA = 0; idxUA < cMaxUAViews; ++idxUA)
    67876790    {
    67886791        SVGA3dUAViewId const viewId = pDXContext->svgaDXContext.uaViewIds[idxUA];
     
    75077510    ID3D11UnorderedAccessView *apUnorderedAccessViews[SVGA3D_DX11_1_MAX_UAVIEWS];
    75087511    UINT aUAVInitialCounts[SVGA3D_DX11_1_MAX_UAVIEWS];
    7509     for (uint32_t idxUA = 0; idxUA < SVGA3D_DX11_1_MAX_UAVIEWS; ++idxUA)
     7512    uint32_t const cMaxUAViews = pDevice->FeatureLevel >= D3D_FEATURE_LEVEL_11_1
     7513                               ? SVGA3D_DX11_1_MAX_UAVIEWS
     7514                               : SVGA3D_MAX_UAVIEWS;
     7515    for (uint32_t idxUA = 0; idxUA < cMaxUAViews; ++idxUA)
    75107516    {
    75117517        apUnorderedAccessViews[idxUA] =  NULL;
     
    99359941    ID3D11UnorderedAccessView *papUnorderedAccessView[SVGA3D_DX11_1_MAX_UAVIEWS];
    99369942    UINT aUAVInitialCounts[SVGA3D_DX11_1_MAX_UAVIEWS];
    9937     for (uint32_t i = 0; i < SVGA3D_DX11_1_MAX_UAVIEWS; ++i)
     9943    uint32_t const cMaxUAViews = pDevice->FeatureLevel >= D3D_FEATURE_LEVEL_11_1
     9944                               ? SVGA3D_DX11_1_MAX_UAVIEWS
     9945                               : SVGA3D_MAX_UAVIEWS;
     9946    for (uint32_t i = 0; i < cMaxUAViews; ++i)
    99389947    {
    99399948        papUnorderedAccessView[i] = NULL;
     
    99549963    }
    99559964
    9956     dxCSUnorderedAccessViewSet(pDevice, 0, SVGA3D_DX11_1_MAX_UAVIEWS, papUnorderedAccessView, aUAVInitialCounts);
     9965    dxCSUnorderedAccessViewSet(pDevice, 0, cMaxUAViews, papUnorderedAccessView, aUAVInitialCounts);
    99579966    return VINF_SUCCESS;
    99589967}
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette