[Mesa-dev] [PATCH 03/13] gallium/compute: Add PIPE_COMPUTE_CAP_IR_TARGET v2

Francisco Jerez currojerez at riseup.net
Sun May 27 07:27:55 PDT 2012


Tom Stellard <tstellar at gmail.com> writes:

> On Sun, May 27, 2012 at 02:25:05PM +0200, Francisco Jerez wrote:
>> Tom Stellard <tstellar at gmail.com> writes:
>> >[...]
>> > +* ``PIPE_COMPUTE_CAP_IR_TARGET``: A description of the target as a target
>> > +  triple specification of the form ``processor-manufacturer-os`` that will
>> > +  be passed on to the compiler.  If a driver accepts compute programs in
>> > +  the common TGSI representation, then it should specify ``tgsi`` as the
>> > +  processor.  Value type: null-terminated string.
>> 
>> This param doesn't even make sense for drivers that aren't using LLVM as
>> IR, do you think it's going to be useful to force them to return "tgsi"
>> here?
>
> We have to pass a triple to Clang somehow and since clover is passing
> the value of this CAP directly to Clang I thought it would be necessary
> for drivers using TGSI to return the TGSI triple here.
>
IMO the fact that we're going through clang and its "tgsi" back-end to
emit TGSI is an implementation detail of the state tracker that pipe
drivers don't have to know about: the pipe driver can use PREFERRED_IR
to select the shader IR, and then, when applicable, IR_TARGET to select
a specific dialect of it, that's all.

> The other way to handle this would be to have TGSI drivers return an
> empty string here and then let clover pass the TGSI triple
> for targets with a preferred IR of PIPE_SHADER_IR_TGSI, for example:
>
> std::string _cl_device_id::ir_target() const {
>
>    std::vector<char> target;
>    if (ir_format() == PIPE_SHADER_IR_TGSI) {
>       target = "TGSI--";
>    } else {
>       target = get_compute_param<char>(pipe, PIPE_COMPUTE_CAP_IR_TARGET);
>    }
>    return { target.data() };
> }
>
> Would you prefer to do it this way?
>
Perhaps...  I'll look into this more closely once the TGSI back-end is
mature enough.

>[...]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120527/a90be104/attachment.pgp>


More information about the mesa-dev mailing list