clCreateFromGLBuffer crash
clCreateFromGLBuffer crash
本文关键字:crash clCreateFromGLBuffer 更新时间:2023-10-16
当我尝试将我的vbo与opencl一起使用时,我在调用clCreateFromGLBuffer时遇到崩溃
在重现该问题的小代码下方:
OpenGL 上下文的初始化
sf::ContextSettings settings;
settings.depthBits = 24;
settings.stencilBits = 8;
settings.antialiasingLevel = 2;
sf::Window window(sf::VideoMode(2048, 1024), "GAME",
sf::Style::Fullscreen, settings);
glewInit();
OpenCL 上下文的初始化
cl_platform_id platform_id = NULL;
cl_device_id device_id = NULL;
cl_uint ret_num_devices;
cl_uint ret_num_platforms;
cl_int ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms);
ret = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU, 1, &device_id,
&ret_num_devices);
cl_context_properties props[] = { CL_GL_CONTEXT_KHR,
(cl_context_properties) wglGetCurrentContext(), CL_WGL_HDC_KHR,
(cl_context_properties) wglGetCurrentDC(), CL_CONTEXT_PLATFORM,
(cl_context_properties) platform_id, 0 };
cl_context context = clCreateContext(props, 1, &device_id, NULL, NULL,
&ret);
GLuint vboID_m = 0;
顶点缓冲区对象的创建
glGenBuffers(1, &vboID_m);
glBindBuffer(GL_ARRAY_BUFFER, vboID_m);
{
std::vector<float> tmp = { 0., 0., 0., 0., 0., 0., 0., 0., 0. };
glBufferData(GL_ARRAY_BUFFER, (tmp.size()) * sizeof(float), 0,
GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, tmp.size() * sizeof(float),
tmp.data());
}
glBindBuffer(GL_ARRAY_BUFFER, 0);
glFlush();
opencl 缓冲区与 opengl 顶点缓冲区对象的链接
cl_int status;
clCreateFromGLBuffer(context, CL_MEM_READ_WRITE, vboID_m, &status);
return 0;
当我检查 ret_num_devices 的值时,我得到 2。如果我更改代码以获取第二个设备的平台 ID,则一切正常。所以我想知道问题是否是:opengl上下文是为第二个平台(我的显卡(创建的,我正在尝试访问我的cpu(第一个平台(的GPU。
如果这是真的,你能解释一下如何检索与opengl使用的平台相对应的平台吗?
相关文章:
- clCreateFromGLBuffer crash
- Protobuf ShortDebugString() crash
- Crash in boost::archive::text_iarchive in_archive {is} boost
- OpenCV Native Android cvtColor crash
- 通过调用 CreateRemoteThread 来弹出 dll:crash
- 获取stacktrace for Crash,而无需在调试器中运行该应用程序
- C++/Qt memcpy crash with QSharedMemory
- SDL_GetRendererInfo crash
- Python Numpy 方法对应于 C++ Eigen make crash
- Tesseract 3.02.02 Crash JRE
- Emscripten crash with mappedGlobals.find(name) != mappedGlob
- 在C 中导入.CSV文件:crash
- Qt threadred QOpenGLWidget crash
- Crash on curl_easy_perform() when uploading a file on CURL i
- 我可以从Crash Signature(Windows Crash Report)获取源代码吗?
- WinAPI EM_STREAMOUT crash
- JVM-Crash 在 JNI 中调用 ReleaseStringUTFChars,仅在 Windows 7 上,Win
- DirectX GetSystemMetrics Crash
- glBindBuffer crash - 使用 glew 实现 VBO
- Cocos2d-x Crash at setResponseCallback in Android