Update materialsystem2 with latest Valve code
Backporting latest Valve code to make it easier to integrate raytracing & bindless
Removes render passes that never did anything, lots of refactoring
materialsystem2 API becomes much simpler to draw stuff too:
```diff
- IMaterialMode *pMode = pMaterial->GetMode( "Default" );
- if ( pMode != NULL ) // NULL if unsupported mode
- {
- MaterialRenderablePass_t renderablePassArray[ MATERIAL_RENDERABLE_PASS_MAX ];
- int nNumPasses = pMode->ComputeRenderablePassesForContext( NULL, pRenderContext, renderablePassArray );
- for ( int i = 0; i < nNumPasses; i++ )
- {
- g_pMaterialSystem2->SetRenderStateForRenderablePass( NULL, pRenderContext, g_hLayout, renderablePassArray[i] );
- pRenderContext->DrawIndexed( RENDER_PRIM_TRIANGLES, 0, 6 );
- }
- }
+ IMaterialMode *pMode = pMaterial->GetMode( "Default" );
+ if ( g_pMaterialSystem2->SetRenderStateForMode( pMode, NULL, pRenderContext, g_hLayout ) )
+ {
+ pRenderContext->DrawIndexed( RENDER_PRIM_TRIANGLES, 0, 6 );
+ }
```