@@ -596,9 +596,9 @@ void DoTiledDeferredLighting(Camera camera, ScriptableRenderContext loop, int nu
596596 var invProjscr = projscr . inverse ;
597597
598598 cmd . SetComputeIntParam ( deferredComputeShader , "g_iNrVisibLights" , numLights ) ;
599- SetMatrixCS ( cmd , deferredComputeShader , "g_mScrProjection" , projscr ) ;
600- SetMatrixCS ( cmd , deferredComputeShader , "g_mInvScrProjection" , invProjscr ) ;
601- SetMatrixCS ( cmd , deferredComputeShader , "g_mViewToWorld" , camera . cameraToWorldMatrix ) ;
599+ cmd . SetComputeMatrixParam ( deferredComputeShader , "g_mScrProjection" , projscr ) ;
600+ cmd . SetComputeMatrixParam ( deferredComputeShader , "g_mInvScrProjection" , invProjscr ) ;
601+ cmd . SetComputeMatrixParam ( deferredComputeShader , "g_mViewToWorld" , camera . cameraToWorldMatrix ) ;
602602
603603
604604 if ( bUseClusteredForDeferred )
@@ -616,8 +616,8 @@ void DoTiledDeferredLighting(Camera camera, ScriptableRenderContext loop, int nu
616616 cmd . SetComputeBufferParam ( deferredComputeShader , kernel , "g_dirLightData" , s_DirLightList ) ;
617617 cmd . SetComputeTextureParam ( deferredComputeShader , kernel , "uavOutput" , new RenderTargetIdentifier ( s_CameraTarget ) ) ;
618618
619- SetMatrixArrayCS ( cmd , deferredComputeShader , "g_matWorldToShadow" , m_MatWorldToShadow ) ;
620- SetVectorArrayCS ( cmd , deferredComputeShader , "g_vDirShadowSplitSpheres" , m_DirShadowSplitSpheres ) ;
619+ cmd . SetComputeMatrixArrayParam ( deferredComputeShader , "g_matWorldToShadow" , m_MatWorldToShadow ) ;
620+ cmd . SetComputeVectorArrayParam ( deferredComputeShader , "g_vDirShadowSplitSpheres" , m_DirShadowSplitSpheres ) ;
621621 cmd . SetComputeVectorParam ( deferredComputeShader , "g_vShadow3x3PCFTerms0" , m_Shadow3X3PCFTerms [ 0 ] ) ;
622622 cmd . SetComputeVectorParam ( deferredComputeShader , "g_vShadow3x3PCFTerms1" , m_Shadow3X3PCFTerms [ 1 ] ) ;
623623 cmd . SetComputeVectorParam ( deferredComputeShader , "g_vShadow3x3PCFTerms2" , m_Shadow3X3PCFTerms [ 2 ] ) ;
@@ -639,42 +639,6 @@ void DoTiledDeferredLighting(Camera camera, ScriptableRenderContext loop, int nu
639639 CommandBufferPool . Release ( cmd ) ;
640640 }
641641
642- private static void SetMatrixCS ( CommandBuffer cmd , ComputeShader shadercs , string name , Matrix4x4 mat )
643- {
644- var data = new float [ 16 ] ;
645-
646- for ( int c = 0 ; c < 4 ; c ++ )
647- for ( int r = 0 ; r < 4 ; r ++ )
648- data [ 4 * c + r ] = mat [ r , c ] ;
649-
650- cmd . SetComputeFloatParams ( shadercs , name , data ) ;
651- }
652-
653- private static void SetMatrixArrayCS ( CommandBuffer cmd , ComputeShader shadercs , string name , Matrix4x4 [ ] matArray )
654- {
655- int numMatrices = matArray . Length ;
656- var data = new float [ numMatrices * 16 ] ;
657-
658- for ( int n = 0 ; n < numMatrices ; n ++ )
659- for ( int c = 0 ; c < 4 ; c ++ )
660- for ( int r = 0 ; r < 4 ; r ++ )
661- data [ 16 * n + 4 * c + r ] = matArray [ n ] [ r , c ] ;
662-
663- cmd . SetComputeFloatParams ( shadercs , name , data ) ;
664- }
665-
666- private static void SetVectorArrayCS ( CommandBuffer cmd , ComputeShader shadercs , string name , Vector4 [ ] vecArray )
667- {
668- int numVectors = vecArray . Length ;
669- var data = new float [ numVectors * 4 ] ;
670-
671- for ( int n = 0 ; n < numVectors ; n ++ )
672- for ( int i = 0 ; i < 4 ; i ++ )
673- data [ 4 * n + i ] = vecArray [ n ] [ i ] ;
674-
675- cmd . SetComputeFloatParams ( shadercs , name , data ) ;
676- }
677-
678642 static Matrix4x4 GetFlipMatrix ( )
679643 {
680644 Matrix4x4 flip = Matrix4x4 . identity ;
@@ -1282,8 +1246,8 @@ void VoxelLightListGeneration(CommandBuffer cmd, Camera camera, int numLights, M
12821246 cmd . DispatchCompute ( buildPerVoxelLightListShader , s_ClearVoxelAtomicKernel , 1 , 1 , 1 ) ;
12831247
12841248 cmd . SetComputeIntParam ( buildPerVoxelLightListShader , "g_iNrVisibLights" , numLights ) ;
1285- SetMatrixCS ( cmd , buildPerVoxelLightListShader , "g_mScrProjection" , projscr ) ;
1286- SetMatrixCS ( cmd , buildPerVoxelLightListShader , "g_mInvScrProjection" , invProjscr ) ;
1249+ cmd . SetComputeMatrixParam ( buildPerVoxelLightListShader , "g_mScrProjection" , projscr ) ;
1250+ cmd . SetComputeMatrixParam ( buildPerVoxelLightListShader , "g_mInvScrProjection" , invProjscr ) ;
12871251
12881252 cmd . SetComputeIntParam ( buildPerVoxelLightListShader , "g_iLog2NumClusters" , k_Log2NumClusters ) ;
12891253
@@ -1345,8 +1309,8 @@ void BuildPerTileLightLists(Camera camera, ScriptableRenderContext loop, int num
13451309 var invProjh = projh . inverse ;
13461310
13471311 cmd . SetComputeIntParam ( buildScreenAABBShader , "g_iNrVisibLights" , numLights ) ;
1348- SetMatrixCS ( cmd , buildScreenAABBShader , "g_mProjection" , projh ) ;
1349- SetMatrixCS ( cmd , buildScreenAABBShader , "g_mInvProjection" , invProjh ) ;
1312+ cmd . SetComputeMatrixParam ( buildScreenAABBShader , "g_mProjection" , projh ) ;
1313+ cmd . SetComputeMatrixParam ( buildScreenAABBShader , "g_mInvProjection" , invProjh ) ;
13501314 cmd . SetComputeBufferParam ( buildScreenAABBShader , s_GenAABBKernel , "g_vBoundsBuffer" , s_AABBBoundsBuffer ) ;
13511315 cmd . DispatchCompute ( buildScreenAABBShader , s_GenAABBKernel , ( numLights + 7 ) / 8 , 1 , 1 ) ;
13521316 }
@@ -1356,8 +1320,8 @@ void BuildPerTileLightLists(Camera camera, ScriptableRenderContext loop, int num
13561320 {
13571321 cmd . SetComputeIntParams ( buildPerBigTileLightListShader , "g_viDimensions" , new int [ 2 ] { w , h } ) ;
13581322 cmd . SetComputeIntParam ( buildPerBigTileLightListShader , "g_iNrVisibLights" , numLights ) ;
1359- SetMatrixCS ( cmd , buildPerBigTileLightListShader , "g_mScrProjection" , projscr ) ;
1360- SetMatrixCS ( cmd , buildPerBigTileLightListShader , "g_mInvScrProjection" , invProjscr ) ;
1323+ cmd . SetComputeMatrixParam ( buildPerBigTileLightListShader , "g_mScrProjection" , projscr ) ;
1324+ cmd . SetComputeMatrixParam ( buildPerBigTileLightListShader , "g_mInvScrProjection" , invProjscr ) ;
13611325 cmd . SetComputeFloatParam ( buildPerBigTileLightListShader , "g_fNearPlane" , camera . nearClipPlane ) ;
13621326 cmd . SetComputeFloatParam ( buildPerBigTileLightListShader , "g_fFarPlane" , camera . farClipPlane ) ;
13631327 cmd . SetComputeBufferParam ( buildPerBigTileLightListShader , s_GenListPerBigTileKernel , "g_vLightList" , s_BigTileLightList ) ;
@@ -1368,8 +1332,8 @@ void BuildPerTileLightLists(Camera camera, ScriptableRenderContext loop, int num
13681332 {
13691333 cmd . SetComputeIntParams ( buildPerTileLightListShader , "g_viDimensions" , new int [ 2 ] { w , h } ) ;
13701334 cmd . SetComputeIntParam ( buildPerTileLightListShader , "g_iNrVisibLights" , numLights ) ;
1371- SetMatrixCS ( cmd , buildPerTileLightListShader , "g_mScrProjection" , projscr ) ;
1372- SetMatrixCS ( cmd , buildPerTileLightListShader , "g_mInvScrProjection" , invProjscr ) ;
1335+ cmd . SetComputeMatrixParam ( buildPerTileLightListShader , "g_mScrProjection" , projscr ) ;
1336+ cmd . SetComputeMatrixParam ( buildPerTileLightListShader , "g_mInvScrProjection" , invProjscr ) ;
13731337 cmd . SetComputeTextureParam ( buildPerTileLightListShader , s_GenListPerTileKernel , "g_depth_tex" , new RenderTargetIdentifier ( s_CameraDepthTexture ) ) ;
13741338 cmd . SetComputeBufferParam ( buildPerTileLightListShader , s_GenListPerTileKernel , "g_vLightList" , s_LightList ) ;
13751339 if ( enableBigTilePrepass ) cmd . SetComputeBufferParam ( buildPerTileLightListShader , s_GenListPerTileKernel , "g_vBigTileLightList" , s_BigTileLightList ) ;
0 commit comments