EdB <edb+m...@sigluy.net> writes: > --- > src/gallium/state_trackers/clover/api/program.cpp | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/src/gallium/state_trackers/clover/api/program.cpp > b/src/gallium/state_trackers/clover/api/program.cpp > index b81ce69..05f3840 100644 > --- a/src/gallium/state_trackers/clover/api/program.cpp > +++ b/src/gallium/state_trackers/clover/api/program.cpp > @@ -232,6 +232,24 @@ clGetProgramInfo(cl_program d_prog, cl_program_info > param, > prog.devices()); > break; > > + case CL_PROGRAM_NUM_KERNELS: > + buf.as_scalar<cl_uint>() = prog.symbols().size(); > + break; > + > + case CL_PROGRAM_KERNEL_NAMES: { > + std::string names; > + for (auto &symbol : prog.symbols()) { > + std::string name(symbol.name.begin(), symbol.name.size()); > + name += ";"; > + names += name; > + } > + if (!names.empty()) > + names.pop_back(); //remove ';' > + > + buf.as_string() = names; > + } > + break; > +
How about we implement this using fold()? It's quite a bit more concise. See attachment. > default: > throw error(CL_INVALID_VALUE); > } > -- > 2.0.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
diff --git a/src/gallium/state_trackers/clover/api/program.cpp b/src/gallium/state_trackers/clover/api/program.cpp index ab6cf7c..6771735 100644 --- a/src/gallium/state_trackers/clover/api/program.cpp +++ b/src/gallium/state_trackers/clover/api/program.cpp @@ -235,6 +235,17 @@ clGetProgramInfo(cl_program d_prog, cl_program_info param, prog.devices()); break; + case CL_PROGRAM_NUM_KERNELS: + buf.as_scalar<cl_uint>() = prog.symbols().size(); + break; + + case CL_PROGRAM_KERNEL_NAMES: + buf.as_string() = fold([](const std::string &a, const module::symbol &s) { + return ((a.empty() ? "" : a + ";") + + std::string(s.name.begin(), s.name.size())); + }, std::string(), prog.symbols()); + break; + default: throw error(CL_INVALID_VALUE); }
pgpDbZprOa3Jv.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev