protected override void Deallocate()
        {
            mConstants.Reset();
            mResources.Reset();
            mOutputs.Reset();

            mShader?.Dispose();
            mShader = null;
        }