Software renderer must communicate (in such or other way)with GPU at least when he write image data in framebuffer. If i will additionaly using gpgpu for calculations is my renderer still be “Software” or not? Where is the boundary between pure “Software” renderer and GPU Renderer?
Wikipedia said that:
In the context of rendering (computer graphics), software rendering refers to a rendering process that is unaided by any specialized graphics hardware, such as a graphics card.
Does it mean that the only work that software renderer can send to GPU is framebuffer filling otherwise it will be not pure “Software”?
I would say the boundary is where you use the actual graphics-related functionality of the hardware (and thus the actual “specialized graphics hardware”, like texture filtering, rasterization, …) to your advantage in contrast to the mere GP GPU features of data-parallel processing that you can (to a lesser degree, of course) find in any multi-core processor. Of course in the end everything is done on hardware, but just porting some algorithm onto the GPU, without using the GPU’s graphics-related hardware facilities doesn’t magically make it hardware-accelerated rendering, even if the algorithm itself is related to rendering.
Of course this is a more subjective answer (to a rather philosophical and off-topic question in the first place) and I guess the boundary is pretty loose. In the end those definitions are put to test by the recent development of GPUs into rather general-puspose parallel processors.