case 1: float param0; float param1; float param2; float param3; case 2: float4 params; Is case 1 faster case 2? I have some concept but dont know whether it is correct. For example in GLES, case 1 will call glUniform1f four times, case 2 call glUniform4f one time, so cpu time case 2 should faster than case 1, Is that right? Is case 2 use less registers so when texturefetch stall gpu can do more context switch? Even this two point above is correct. I read cbuffer pack rule https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-packing-rules In URP with cbuffer, case1 and case2 use same size, so these's no need pack 4 float to one float, is that right?