[Mesa-dev] Allowing the reading of outputs for some drivers

Christoph Bumiller e0425955 at student.tuwien.ac.at
Mon Nov 14 08:29:33 PST 2011


On 11/14/2011 03:14 PM, Henri Verbeet wrote:
> On 14 November 2011 14:49, Vadim Girlin <vadimgirlin at gmail.com> wrote:
>> By the way, which drivers do not support reading outputs? I haven't done
>> a full piglit run with llvmpipe, but IIRR the single test mentioned
>> above was also fixed for llvmpipe without this output replacement.
>>
> IIRC both GLSL IR and Mesa IR took the approach that reading from
> outputs was up to the driver to handle at some point. At the very
> least classic r600 did reads from "output" gprs. I seem to recall that
> some Intel hardware couldn't read from output registers, I'm not sure
> if there was any other hardware.

nv50 can't read from outputs (almost all instructions can directly write
to outputs though), and nvc0 probably can't either.

(It *can* read from output space in TCPs (hull shaders) since you have
to be able to read the outputs of parallel threads, i.e. the other
vertices in the patch, but I'm doubtful this works in other program types.)

For FPs, outputs are in GPRs so I have to demote outputs to thread local
memory anyway if they are accessed indirectly.

nv30 and nv40 (NVFX) cannot read from outputs as far as I can see.

And r600, I think, just stores them all in TEMP space and exports them
in the end, so it's rather a property of the shader backend that the
device (I may be wrong though).

> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list