@@ -110,91 +110,83 @@ namespace engine {
110
110
111
111
class opencl_error_category_t : public std ::error_category {
112
112
public:
113
- inline virtual const char * name () const noexcept {
113
+ inline const char * name () const noexcept override {
114
114
return " opencl_error_category" ;
115
115
}
116
116
117
- inline virtual std::error_condition default_error_condition (int code) const noexcept {
117
+ inline std::error_condition default_error_condition (int code) const noexcept override {
118
118
using cle = opencl_error_code;
119
119
switch (code) {
120
- case CL_SUCCESS: return std::error_condition (cle::SUCCESS);
121
- case CL_DEVICE_NOT_FOUND: return std::error_condition (cle::DEVICE_NOT_FOUND);
122
- case CL_DEVICE_NOT_AVAILABLE: return std::error_condition (cle::DEVICE_NOT_AVAILABLE);
123
- case CL_COMPILER_NOT_AVAILABLE: return std::error_condition (cle::COMPILER_NOT_AVAILABLE);
124
- case CL_MEM_OBJECT_ALLOCATION_FAILURE:
125
- return std::error_condition (cle::MEM_OBJECT_ALLOCATION_FAILURE);
126
- case CL_OUT_OF_RESOURCES: return std::error_condition (cle::OUT_OF_RESOURCES);
127
- case CL_OUT_OF_HOST_MEMORY: return std::error_condition (cle::OUT_OF_HOST_MEMORY);
128
- case CL_PROFILING_INFO_NOT_AVAILABLE:
129
- return std::error_condition (cle::PROFILING_INFO_NOT_AVAILABLE);
130
- case CL_MEM_COPY_OVERLAP: return std::error_condition (cle::MEM_COPY_OVERLAP);
131
- case CL_IMAGE_FORMAT_MISMATCH: return std::error_condition (cle::IMAGE_FORMAT_MISMATCH);
132
- case CL_IMAGE_FORMAT_NOT_SUPPORTED:
133
- return std::error_condition (cle::IMAGE_FORMAT_NOT_SUPPORTED);
134
- case CL_BUILD_PROGRAM_FAILURE: return std::error_condition (cle::BUILD_PROGRAM_FAILURE);
135
- case CL_MAP_FAILURE: return std::error_condition (cle::MAP_FAILURE);
136
- case CL_MISALIGNED_SUB_BUFFER_OFFSET:
137
- return std::error_condition (cle::MISALIGNED_SUB_BUFFER_OFFSET);
120
+ case CL_SUCCESS: return {cle::SUCCESS};
121
+ case CL_DEVICE_NOT_FOUND: return {cle::DEVICE_NOT_FOUND};
122
+ case CL_DEVICE_NOT_AVAILABLE: return {cle::DEVICE_NOT_AVAILABLE};
123
+ case CL_COMPILER_NOT_AVAILABLE: return {cle::COMPILER_NOT_AVAILABLE};
124
+ case CL_MEM_OBJECT_ALLOCATION_FAILURE: return {cle::MEM_OBJECT_ALLOCATION_FAILURE};
125
+ case CL_OUT_OF_RESOURCES: return {cle::OUT_OF_RESOURCES};
126
+ case CL_OUT_OF_HOST_MEMORY: return {cle::OUT_OF_HOST_MEMORY};
127
+ case CL_PROFILING_INFO_NOT_AVAILABLE: return {cle::PROFILING_INFO_NOT_AVAILABLE};
128
+ case CL_MEM_COPY_OVERLAP: return {cle::MEM_COPY_OVERLAP};
129
+ case CL_IMAGE_FORMAT_MISMATCH: return {cle::IMAGE_FORMAT_MISMATCH};
130
+ case CL_IMAGE_FORMAT_NOT_SUPPORTED: return {cle::IMAGE_FORMAT_NOT_SUPPORTED};
131
+ case CL_BUILD_PROGRAM_FAILURE: return {cle::BUILD_PROGRAM_FAILURE};
132
+ case CL_MAP_FAILURE: return {cle::MAP_FAILURE};
133
+ case CL_MISALIGNED_SUB_BUFFER_OFFSET: return {cle::MISALIGNED_SUB_BUFFER_OFFSET};
138
134
case CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST:
139
- return std::error_condition (cle::EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST);
140
- case CL_COMPILE_PROGRAM_FAILURE: return std::error_condition (cle::COMPILE_PROGRAM_FAILURE);
141
- case CL_LINKER_NOT_AVAILABLE: return std::error_condition (cle::LINKER_NOT_AVAILABLE);
142
- case CL_LINK_PROGRAM_FAILURE: return std::error_condition (cle::LINK_PROGRAM_FAILURE);
143
- case CL_DEVICE_PARTITION_FAILED: return std::error_condition (cle::DEVICE_PARTITION_FAILED);
144
- case CL_KERNEL_ARG_INFO_NOT_AVAILABLE:
145
- return std::error_condition (cle::KERNEL_ARG_INFO_NOT_AVAILABLE);
146
- case CL_INVALID_VALUE: return std::error_condition (cle::INVALID_VALUE);
147
- case CL_INVALID_DEVICE_TYPE: return std::error_condition (cle::INVALID_DEVICE_TYPE);
148
- case CL_INVALID_PLATFORM: return std::error_condition (cle::INVALID_PLATFORM);
149
- case CL_INVALID_DEVICE: return std::error_condition (cle::INVALID_DEVICE);
150
- case CL_INVALID_CONTEXT: return std::error_condition (cle::INVALID_CONTEXT);
151
- case CL_INVALID_QUEUE_PROPERTIES: return std::error_condition (cle::INVALID_QUEUE_PROPERTIES);
152
- case CL_INVALID_COMMAND_QUEUE: return std::error_condition (cle::INVALID_COMMAND_QUEUE);
153
- case CL_INVALID_HOST_PTR: return std::error_condition (cle::INVALID_HOST_PTR);
154
- case CL_INVALID_MEM_OBJECT: return std::error_condition (cle::INVALID_MEM_OBJECT);
155
- case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:
156
- return std::error_condition (cle::INVALID_IMAGE_FORMAT_DESCRIPTOR);
157
- case CL_INVALID_IMAGE_SIZE: return std::error_condition (cle::INVALID_IMAGE_SIZE);
158
- case CL_INVALID_SAMPLER: return std::error_condition (cle::INVALID_SAMPLER);
159
- case CL_INVALID_BINARY: return std::error_condition (cle::INVALID_BINARY);
160
- case CL_INVALID_BUILD_OPTIONS: return std::error_condition (cle::INVALID_BUILD_OPTIONS);
161
- case CL_INVALID_PROGRAM: return std::error_condition (cle::INVALID_PROGRAM);
162
- case CL_INVALID_PROGRAM_EXECUTABLE:
163
- return std::error_condition (cle::INVALID_PROGRAM_EXECUTABLE);
164
- case CL_INVALID_KERNEL_NAME: return std::error_condition (cle::INVALID_KERNEL_NAME);
165
- case CL_INVALID_KERNEL_DEFINITION: return std::error_condition (cle::INVALID_KERNEL_DEFINITION);
166
- case CL_INVALID_KERNEL: return std::error_condition (cle::INVALID_KERNEL);
167
- case CL_INVALID_ARG_INDEX: return std::error_condition (cle::INVALID_ARG_INDEX);
168
- case CL_INVALID_ARG_VALUE: return std::error_condition (cle::INVALID_ARG_VALUE);
169
- case CL_INVALID_ARG_SIZE: return std::error_condition (cle::INVALID_ARG_SIZE);
170
- case CL_INVALID_KERNEL_ARGS: return std::error_condition (cle::INVALID_KERNEL_ARGS);
171
- case CL_INVALID_WORK_DIMENSION: return std::error_condition (cle::INVALID_WORK_DIMENSION);
172
- case CL_INVALID_WORK_GROUP_SIZE: return std::error_condition (cle::INVALID_WORK_GROUP_SIZE);
173
- case CL_INVALID_WORK_ITEM_SIZE: return std::error_condition (cle::INVALID_WORK_ITEM_SIZE);
174
- case CL_INVALID_GLOBAL_OFFSET: return std::error_condition (cle::INVALID_GLOBAL_OFFSET);
175
- case CL_INVALID_EVENT_WAIT_LIST: return std::error_condition (cle::INVALID_EVENT_WAIT_LIST);
176
- case CL_INVALID_EVENT: return std::error_condition (cle::INVALID_EVENT);
177
- case CL_INVALID_OPERATION: return std::error_condition (cle::INVALID_OPERATION);
178
- case CL_INVALID_GL_OBJECT: return std::error_condition (cle::INVALID_GL_OBJECT);
179
- case CL_INVALID_BUFFER_SIZE: return std::error_condition (cle::INVALID_BUFFER_SIZE);
180
- case CL_INVALID_MIP_LEVEL: return std::error_condition (cle::INVALID_MIP_LEVEL);
181
- case CL_INVALID_GLOBAL_WORK_SIZE: return std::error_condition (cle::INVALID_GLOBAL_WORK_SIZE);
182
- case CL_INVALID_PROPERTY: return std::error_condition (cle::INVALID_PROPERTY);
183
- case CL_INVALID_IMAGE_DESCRIPTOR: return std::error_condition (cle::INVALID_IMAGE_DESCRIPTOR);
184
- case CL_INVALID_COMPILER_OPTIONS: return std::error_condition (cle::INVALID_COMPILER_OPTIONS);
185
- case CL_INVALID_LINKER_OPTIONS: return std::error_condition (cle::INVALID_LINKER_OPTIONS);
186
- case CL_INVALID_DEVICE_PARTITION_COUNT:
187
- return std::error_condition (cle::INVALID_DEVICE_PARTITION_COUNT);
188
- default : return std::error_condition (cle::UNKNOWN);
135
+ return {cle::EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST};
136
+ case CL_COMPILE_PROGRAM_FAILURE: return {cle::COMPILE_PROGRAM_FAILURE};
137
+ case CL_LINKER_NOT_AVAILABLE: return {cle::LINKER_NOT_AVAILABLE};
138
+ case CL_LINK_PROGRAM_FAILURE: return {cle::LINK_PROGRAM_FAILURE};
139
+ case CL_DEVICE_PARTITION_FAILED: return {cle::DEVICE_PARTITION_FAILED};
140
+ case CL_KERNEL_ARG_INFO_NOT_AVAILABLE: return {cle::KERNEL_ARG_INFO_NOT_AVAILABLE};
141
+ case CL_INVALID_VALUE: return {cle::INVALID_VALUE};
142
+ case CL_INVALID_DEVICE_TYPE: return {cle::INVALID_DEVICE_TYPE};
143
+ case CL_INVALID_PLATFORM: return {cle::INVALID_PLATFORM};
144
+ case CL_INVALID_DEVICE: return {cle::INVALID_DEVICE};
145
+ case CL_INVALID_CONTEXT: return {cle::INVALID_CONTEXT};
146
+ case CL_INVALID_QUEUE_PROPERTIES: return {cle::INVALID_QUEUE_PROPERTIES};
147
+ case CL_INVALID_COMMAND_QUEUE: return {cle::INVALID_COMMAND_QUEUE};
148
+ case CL_INVALID_HOST_PTR: return {cle::INVALID_HOST_PTR};
149
+ case CL_INVALID_MEM_OBJECT: return {cle::INVALID_MEM_OBJECT};
150
+ case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: return {cle::INVALID_IMAGE_FORMAT_DESCRIPTOR};
151
+ case CL_INVALID_IMAGE_SIZE: return {cle::INVALID_IMAGE_SIZE};
152
+ case CL_INVALID_SAMPLER: return {cle::INVALID_SAMPLER};
153
+ case CL_INVALID_BINARY: return {cle::INVALID_BINARY};
154
+ case CL_INVALID_BUILD_OPTIONS: return {cle::INVALID_BUILD_OPTIONS};
155
+ case CL_INVALID_PROGRAM: return {cle::INVALID_PROGRAM};
156
+ case CL_INVALID_PROGRAM_EXECUTABLE: return {cle::INVALID_PROGRAM_EXECUTABLE};
157
+ case CL_INVALID_KERNEL_NAME: return {cle::INVALID_KERNEL_NAME};
158
+ case CL_INVALID_KERNEL_DEFINITION: return {cle::INVALID_KERNEL_DEFINITION};
159
+ case CL_INVALID_KERNEL: return {cle::INVALID_KERNEL};
160
+ case CL_INVALID_ARG_INDEX: return {cle::INVALID_ARG_INDEX};
161
+ case CL_INVALID_ARG_VALUE: return {cle::INVALID_ARG_VALUE};
162
+ case CL_INVALID_ARG_SIZE: return {cle::INVALID_ARG_SIZE};
163
+ case CL_INVALID_KERNEL_ARGS: return {cle::INVALID_KERNEL_ARGS};
164
+ case CL_INVALID_WORK_DIMENSION: return {cle::INVALID_WORK_DIMENSION};
165
+ case CL_INVALID_WORK_GROUP_SIZE: return {cle::INVALID_WORK_GROUP_SIZE};
166
+ case CL_INVALID_WORK_ITEM_SIZE: return {cle::INVALID_WORK_ITEM_SIZE};
167
+ case CL_INVALID_GLOBAL_OFFSET: return {cle::INVALID_GLOBAL_OFFSET};
168
+ case CL_INVALID_EVENT_WAIT_LIST: return {cle::INVALID_EVENT_WAIT_LIST};
169
+ case CL_INVALID_EVENT: return {cle::INVALID_EVENT};
170
+ case CL_INVALID_OPERATION: return {cle::INVALID_OPERATION};
171
+ case CL_INVALID_GL_OBJECT: return {cle::INVALID_GL_OBJECT};
172
+ case CL_INVALID_BUFFER_SIZE: return {cle::INVALID_BUFFER_SIZE};
173
+ case CL_INVALID_MIP_LEVEL: return {cle::INVALID_MIP_LEVEL};
174
+ case CL_INVALID_GLOBAL_WORK_SIZE: return {cle::INVALID_GLOBAL_WORK_SIZE};
175
+ case CL_INVALID_PROPERTY: return {cle::INVALID_PROPERTY};
176
+ case CL_INVALID_IMAGE_DESCRIPTOR: return {cle::INVALID_IMAGE_DESCRIPTOR};
177
+ case CL_INVALID_COMPILER_OPTIONS: return {cle::INVALID_COMPILER_OPTIONS};
178
+ case CL_INVALID_LINKER_OPTIONS: return {cle::INVALID_LINKER_OPTIONS};
179
+ case CL_INVALID_DEVICE_PARTITION_COUNT: return {cle::INVALID_DEVICE_PARTITION_COUNT};
180
+ default : return {cle::UNKNOWN};
189
181
}
190
182
}
191
183
192
- inline virtual bool equivalent (const std::error_code& code, int condition) const noexcept {
184
+ inline bool equivalent (const std::error_code& code, int condition) const noexcept override {
193
185
return *this == code.category ()
194
186
&& static_cast <int >(default_error_condition (code.value ()).value ()) == condition;
195
187
}
196
188
197
- inline virtual std::string message (int code) const noexcept {
189
+ inline std::string message (int code) const noexcept override {
198
190
switch (code) {
199
191
case CL_SUCCESS: return " Success" ;
200
192
case CL_DEVICE_NOT_FOUND: return " Device not found" ;
@@ -267,7 +259,7 @@ namespace engine {
267
259
}
268
260
269
261
inline std::error_condition make_error_condition (opencl_error_code e) {
270
- return std::error_condition ( static_cast <int >(e), opencl_error_category ()) ;
262
+ return { static_cast <int >(e), opencl_error_category ()} ;
271
263
}
272
264
273
265
} // namespace operation
0 commit comments