I have a procedural 3D texture that is generated in a compute shader. I want to update a small, specific portion of the texture only (eg: bottom right corner). It seems wasteful to dispatch all thread groups when only a small group of texels needs to be recomputed. Is there a way for me to dispatch only a small range with an offset?
D3D12 only seems to support:
void Dispatch( UINT ThreadGroupCountX, UINT ThreadGroupCountY, UINT ThreadGroupCountZ );
Where as I want to do:
void Dispatch( UINT ThreadGroupStartIndexX, UINT ThreadGroupCountX, UINT ThreadGroupStartIndexY, UINT ThreadGroupCountY, UINT ThreadGroupStartIndexZ, UINT ThreadGroupCountZ );
Is this possible?
Edit: I realise that I can pass an offset to the shader and compute with the offset in there. However, I'm curious if there is native support to do this directly from the API