|
1 | 1 | /*
|
2 |
| - * Copyright (C) 2023-2024 Intel Corporation |
| 2 | + * Copyright (C) 2023-2025 Intel Corporation |
3 | 3 | *
|
4 | 4 | * SPDX-License-Identifier: MIT
|
5 | 5 | *
|
@@ -37,6 +37,9 @@ bool GLSharingFunctionsLinux::isOpenGlExtensionSupported(const unsigned char *pE
|
37 | 37 | }
|
38 | 38 |
|
39 | 39 | bool GLSharingFunctionsLinux::isOpenGlSharingSupported() {
|
| 40 | + if (glGetString == nullptr) { |
| 41 | + return false; |
| 42 | + } |
40 | 43 |
|
41 | 44 | std::basic_string<unsigned char> vendor = glGetString(GL_VENDOR);
|
42 | 45 | const unsigned char intelVendor[] = "Intel";
|
@@ -72,6 +75,20 @@ bool GLSharingFunctionsLinux::isOpenGlSharingSupported() {
|
72 | 75 | }
|
73 | 76 | }
|
74 | 77 |
|
| 78 | + switch (glHDCType) { |
| 79 | + case CL_GLX_DISPLAY_KHR: |
| 80 | + if (!glXLoaded) |
| 81 | + return false; |
| 82 | + break; |
| 83 | + case CL_EGL_DISPLAY_KHR: |
| 84 | + if (!eglLoaded) |
| 85 | + return false; |
| 86 | + break; |
| 87 | + default: |
| 88 | + if (!glXLoaded && !eglLoaded) |
| 89 | + return false; |
| 90 | + } |
| 91 | + |
75 | 92 | return true;
|
76 | 93 | }
|
77 | 94 |
|
@@ -102,13 +119,19 @@ GLboolean GLSharingFunctionsLinux::initGLFunctions() {
|
102 | 119 | glXGLInteropQueryDeviceInfo = glXGetProc["glXGLInteropQueryDeviceInfoMESA"];
|
103 | 120 | glXGLInteropExportObject = glXGetProc["glXGLInteropExportObjectMESA"];
|
104 | 121 | glXGLInteropFlushObjects = glXGetProc["glXGLInteropFlushObjectsMESA"];
|
| 122 | + glXLoaded = ((glXGLInteropQueryDeviceInfo != nullptr) && |
| 123 | + (glXGLInteropExportObject != nullptr) && |
| 124 | + (glXGLInteropFlushObjects != nullptr)); |
105 | 125 | }
|
106 | 126 |
|
107 | 127 | GlFunctionHelper eglGetProc(dynLibrary.get(), "eglGetProcAddress");
|
108 | 128 | if (eglGetProc.ready()) {
|
109 | 129 | eglGLInteropQueryDeviceInfo = eglGetProc["eglGLInteropQueryDeviceInfoMESA"];
|
110 | 130 | eglGLInteropExportObject = eglGetProc["eglGLInteropExportObjectMESA"];
|
111 | 131 | eglGLInteropFlushObjects = eglGetProc["eglGLInteropFlushObjectsMESA"];
|
| 132 | + eglLoaded = ((eglGLInteropQueryDeviceInfo != nullptr) && |
| 133 | + (eglGLInteropExportObject != nullptr) && |
| 134 | + (eglGLInteropFlushObjects != nullptr)); |
112 | 135 | }
|
113 | 136 |
|
114 | 137 | glGetString = (*dynLibrary)["glGetString"];
|
|
0 commit comments