VirtualBox

Changeset 95137 in vbox for trunk/src/VBox/Devices/Graphics


Ignore:
Timestamp:
May 30, 2022 12:10:15 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
151623
Message:

Devices/Graphics: typeless formats; logging; enable compute shaders: bugref:9830

File:
1 edited

Legend:

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

    r95106 r95137  
    21552155    switch (dxgiFormat)
    21562156    {
     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 */
    21572194        case DXGI_FORMAT_D32_FLOAT:
    21582195        case DXGI_FORMAT_R32_FLOAT:
     
    21642201        case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
    21652202            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 */
    21662235        case DXGI_FORMAT_B8G8R8A8_UNORM:
    2167         case DXGI_FORMAT_B8G8R8X8_UNORM :
    2168         case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM:
    21692236        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:
    21712239        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 */
    21742247        default:
    21752248            break;
     
    21842257    switch (dxgiFormat)
    21852258    {
     2259        case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
     2260        case DXGI_FORMAT_D32_FLOAT:
    21862261        case DXGI_FORMAT_D24_UNORM_S8_UINT:
     2262        case DXGI_FORMAT_R16_FLOAT:
    21872263            return true;
    2188         /** @todo Other Depth Stencil formats. */
    21892264        default:
    21902265            break;
     
    55695644     * Just catch this unusual case in order to see if everything is fine.
    55705645     */
    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)
    55725649           || (pDXShader->shaderInfo.cInputSignature && pDXShader->shaderInfo.cOutputSignature));
    55735650}
     
    56305707    DXDEVICE *pDXDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext);
    56315708    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    }
    56325714
    56335715    /*
     
    57335815            }
    57345816
    5735             LogFunc(("uav[%d] sid = %u, uaid = %u\n", idxUA, sid, uaViewId));
     5817            LogFunc(("csuav[%d] sid = %u, uaid = %u\n", idxUA, sid, uaViewId));
    57365818        }
    57375819    }
     
    57705852            AssertReturnVoid(RT_SUCCESS(rc));
    57715853        }
     5854
     5855        LogFunc(("dsv sid = %u, dsvid = %u\n", pDSViewEntry->sid, viewId));
    57725856    }
    57735857
     
    57955879                AssertReturnVoid(RT_SUCCESS(rc));
    57965880            }
     5881
     5882            LogFunc(("rtv sid = %u, rtvid = %u\n", pRTViewEntry->sid, viewId));
    57975883        }
    57985884    }
     
    58555941            {
    58565942                /* Create a new shader. */
    5857                 Log(("Shader: cid=%u shid=%u type=%d, GuestSignatures %d\n", pDXContext->cid, shaderId, pDXShader->enmShaderType, pDXShader->shaderInfo.fGuestSignatures));
    58585943
    58595944                /* Apply resource types to a pixel shader. */
     
    59436028                        rc = VERR_INVALID_STATE;
    59446029                }
    5945                 else
    5946                     rc = VERR_NO_MEMORY;
    59476030            }
     6031
     6032            LogFunc(("Shader: cid=%u shid=%u type=%d, GuestSignatures %d, %Rrc\n", pDXContext->cid, shaderId, pDXShader->enmShaderType, pDXShader->shaderInfo.fGuestSignatures, rc));
    59486033        }
    59496034        else
     
    59606045     */
    59616046    SVGA3dElementLayoutId const elementLayoutId = pDXContext->svgaDXContext.inputAssembly.layoutId;
    5962     LogFunc(("Input layout id %u\n", elementLayoutId));
    59636047    ID3D11InputLayout *pInputLayout = NULL;
    59646048    if (elementLayoutId != SVGA3D_INVALID_ID)
     
    59826066
    59836067        pInputLayout = pDXElementLayout->pElementLayout;
     6068
     6069        LogFunc(("Input layout id %u\n", elementLayoutId));
    59846070    }
    59856071
     
    84828568    DXDEVICE *pDevice = dxDeviceFromContext(pThisCC->svga.p3dState, pDXContext);
    84838569    AssertReturn(pDevice->pDevice, VERR_INVALID_STATE);
     8570
     8571    dxSetupPipeline(pThisCC, pDXContext);
    84848572
    84858573    pDevice->pImmediateContext->Dispatch(threadGroupCountX, threadGroupCountY, threadGroupCountZ);
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