[Mesa-dev] [PATCH 2/2] clover: Include generic type in several kernel/device obj() calls
Francisco Jerez
currojerez at riseup.net
Thu Mar 1 23:03:57 UTC 2018
Aaron Watry <awatry at gmail.com> writes:
> Fixes auto-completion for some device and kernel methods in my IDE.
>
> No functional change intended.
>
NAK to this one. object.hpp goes through quite some effort to infer the
type automatically in a way that's guaranteed correct. I don't think we
want to increase the syntactic burden of our codebase designing it
around the deficient autocompletion support of some IDE.
> Signed-off-by: Aaron Watry <awatry at gmail.com>
> ---
> src/gallium/state_trackers/clover/api/device.cpp | 2 +-
> src/gallium/state_trackers/clover/api/kernel.cpp | 22 +++++++++++-----------
> 2 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
> index 3572bb0c92..2aaa2c59cb 100644
> --- a/src/gallium/state_trackers/clover/api/device.cpp
> +++ b/src/gallium/state_trackers/clover/api/device.cpp
> @@ -98,7 +98,7 @@ CLOVER_API cl_int
> clGetDeviceInfo(cl_device_id d_dev, cl_device_info param,
> size_t size, void *r_buf, size_t *r_size) try {
> property_buffer buf { r_buf, size, r_size };
> - auto &dev = obj(d_dev);
> + auto &dev = obj<device>(d_dev);
>
> switch (param) {
> case CL_DEVICE_TYPE:
> diff --git a/src/gallium/state_trackers/clover/api/kernel.cpp b/src/gallium/state_trackers/clover/api/kernel.cpp
> index b665773d9e..705828a688 100644
> --- a/src/gallium/state_trackers/clover/api/kernel.cpp
> +++ b/src/gallium/state_trackers/clover/api/kernel.cpp
> @@ -28,7 +28,7 @@ using namespace clover;
>
> CLOVER_API cl_kernel
> clCreateKernel(cl_program d_prog, const char *name, cl_int *r_errcode) try {
> - auto &prog = obj(d_prog);
> + auto &prog = obj<program>(d_prog);
>
> if (!name)
> throw error(CL_INVALID_VALUE);
> @@ -50,7 +50,7 @@ clCreateKernel(cl_program d_prog, const char *name, cl_int *r_errcode) try {
> CLOVER_API cl_int
> clCreateKernelsInProgram(cl_program d_prog, cl_uint count,
> cl_kernel *rd_kerns, cl_uint *r_count) try {
> - auto &prog = obj(d_prog);
> + auto &prog = obj<program>(d_prog);
> auto &syms = prog.symbols();
>
> if (rd_kerns && count < syms.size())
> @@ -76,7 +76,7 @@ clCreateKernelsInProgram(cl_program d_prog, cl_uint count,
>
> CLOVER_API cl_int
> clRetainKernel(cl_kernel d_kern) try {
> - obj(d_kern).retain();
> + obj<kernel>(d_kern).retain();
> return CL_SUCCESS;
>
> } catch (error &e) {
> @@ -85,7 +85,7 @@ clRetainKernel(cl_kernel d_kern) try {
>
> CLOVER_API cl_int
> clReleaseKernel(cl_kernel d_kern) try {
> - if (obj(d_kern).release())
> + if (obj<kernel>(d_kern).release())
> delete pobj(d_kern);
>
> return CL_SUCCESS;
> @@ -97,7 +97,7 @@ clReleaseKernel(cl_kernel d_kern) try {
> CLOVER_API cl_int
> clSetKernelArg(cl_kernel d_kern, cl_uint idx, size_t size,
> const void *value) try {
> - obj(d_kern).args().at(idx).set(size, value);
> + obj<kernel>(d_kern).args().at(idx).set(size, value);
> return CL_SUCCESS;
>
> } catch (std::out_of_range &e) {
> @@ -111,7 +111,7 @@ CLOVER_API cl_int
> clGetKernelInfo(cl_kernel d_kern, cl_kernel_info param,
> size_t size, void *r_buf, size_t *r_size) try {
> property_buffer buf { r_buf, size, r_size };
> - auto &kern = obj(d_kern);
> + auto &kern = obj<kernel>(d_kern);
>
> switch (param) {
> case CL_KERNEL_FUNCTION_NAME:
> @@ -149,7 +149,7 @@ clGetKernelWorkGroupInfo(cl_kernel d_kern, cl_device_id d_dev,
> cl_kernel_work_group_info param,
> size_t size, void *r_buf, size_t *r_size) try {
> property_buffer buf { r_buf, size, r_size };
> - auto &kern = obj(d_kern);
> + auto &kern = obj<kernel>(d_kern);
> auto &dev = (d_dev ? *pobj(d_dev) : unique(kern.program().devices()));
>
> if (!count(dev, kern.program().devices()))
> @@ -279,8 +279,8 @@ clEnqueueNDRangeKernel(cl_command_queue d_q, cl_kernel d_kern,
> const size_t *d_grid_size, const size_t *d_block_size,
> cl_uint num_deps, const cl_event *d_deps,
> cl_event *rd_ev) try {
> - auto &q = obj(d_q);
> - auto &kern = obj(d_kern);
> + auto &q = obj<command_queue>(d_q);
> + auto &kern = obj<kernel>(d_kern);
> auto deps = objs<wait_list_tag>(d_deps, num_deps);
> auto grid_size = validate_grid_size(q, dims, d_grid_size);
> auto grid_offset = validate_grid_offset(q, dims, d_grid_offset);
> @@ -306,8 +306,8 @@ CLOVER_API cl_int
> clEnqueueTask(cl_command_queue d_q, cl_kernel d_kern,
> cl_uint num_deps, const cl_event *d_deps,
> cl_event *rd_ev) try {
> - auto &q = obj(d_q);
> - auto &kern = obj(d_kern);
> + auto &q = obj<command_queue>(d_q);
> + auto &kern = obj<kernel>(d_kern);
> auto deps = objs<wait_list_tag>(d_deps, num_deps);
>
> validate_common(q, kern, deps);
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180301/1c49fe4b/attachment.sig>
More information about the mesa-dev
mailing list