I have a simple class which has the member cl::device, cl::context, cl::command_queue. This class is implemented as a singleton. When program finish, its destructor is called. At this time, it causes segment fault. I find this crash produced by clreleasecontext. Example code likes as follows and I test in Mali-G76
static CLSingleton & get()
~CLSingleton() = default;
Was the context created successfully in the first place?
I suspect the context is being destroyed from a global destructor. Whether this is supported or not is implementation-defined in the OpenCL specification. The Mali implementation doesn't currently allow it.
View all questions in Graphics and Gaming forum