Updating values in a compute shader through CommandBuffer in unity

Viewed 173

I'm trying to update a couple of floats and a vector in a CommandBuffer.

var clickTypeLocation = Shader.PropertyToID("ClickType");
drawPipelineBuilder.computePipeline.SetComputeFloatParam(compute, clickTypeLocation, mouse1 ? UNSET : SET);

var mouseRadiusPowLocation = Shader.PropertyToID("MouseRadiusPow");
drawPipelineBuilder.computePipeline.SetComputeFloatParam(compute, mouseRadiusPowLocation, Mathf.Pow(mouseRadius, 2));

var mousePosLocation = Shader.PropertyToID("MousePos");
drawPipelineBuilder.computePipeline.SetComputeVectorParam(compute, mousePosLocation, mousePos);

The SetComputeXParam functions only takes values and not references, and therefore will be the same everytime i do Graphics.ExecuteCommandBuffer(drawPipeline); later in my code. Is there a way around this other than simply avoiding the CommandBuffer i.e using compute.SetFloat just before executing CommandBuffer?

0 Answers
Related