Changeset View
Changeset View
Standalone View
Standalone View
autotests/opengl_context_attribute_builder_test.cpp
Show All 39 Lines | |||||
40 | private Q_SLOTS: | 40 | private Q_SLOTS: | ||
41 | void testCtor(); | 41 | void testCtor(); | ||
42 | void testRobust(); | 42 | void testRobust(); | ||
43 | void testForwardCompatible(); | 43 | void testForwardCompatible(); | ||
44 | void testProfile(); | 44 | void testProfile(); | ||
45 | void testResetOnVideoMemoryPurge(); | 45 | void testResetOnVideoMemoryPurge(); | ||
46 | void testVersionMajor(); | 46 | void testVersionMajor(); | ||
47 | void testVersionMajorAndMinor(); | 47 | void testVersionMajorAndMinor(); | ||
48 | void testHighPriority(); | ||||
48 | void testEgl_data(); | 49 | void testEgl_data(); | ||
49 | void testEgl(); | 50 | void testEgl(); | ||
50 | void testGles_data(); | 51 | void testGles_data(); | ||
51 | void testGles(); | 52 | void testGles(); | ||
52 | void testGlx_data(); | 53 | void testGlx_data(); | ||
53 | void testGlx(); | 54 | void testGlx(); | ||
54 | }; | 55 | }; | ||
55 | 56 | | |||
Show All 14 Lines | 69 | { | |||
70 | QCOMPARE(builder.isVersionRequested(), false); | 71 | QCOMPARE(builder.isVersionRequested(), false); | ||
71 | QCOMPARE(builder.majorVersion(), 0); | 72 | QCOMPARE(builder.majorVersion(), 0); | ||
72 | QCOMPARE(builder.minorVersion(), 0); | 73 | QCOMPARE(builder.minorVersion(), 0); | ||
73 | QCOMPARE(builder.isRobust(), false); | 74 | QCOMPARE(builder.isRobust(), false); | ||
74 | QCOMPARE(builder.isForwardCompatible(), false); | 75 | QCOMPARE(builder.isForwardCompatible(), false); | ||
75 | QCOMPARE(builder.isCoreProfile(), false); | 76 | QCOMPARE(builder.isCoreProfile(), false); | ||
76 | QCOMPARE(builder.isCompatibilityProfile(), false); | 77 | QCOMPARE(builder.isCompatibilityProfile(), false); | ||
77 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | 78 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | ||
79 | QCOMPARE(builder.isHighPriority(), false); | ||||
78 | } | 80 | } | ||
79 | 81 | | |||
80 | void OpenGLContextAttributeBuilderTest::testRobust() | 82 | void OpenGLContextAttributeBuilderTest::testRobust() | ||
81 | { | 83 | { | ||
82 | MockOpenGLContextAttributeBuilder builder; | 84 | MockOpenGLContextAttributeBuilder builder; | ||
83 | QCOMPARE(builder.isRobust(), false); | 85 | QCOMPARE(builder.isRobust(), false); | ||
84 | builder.setRobust(true); | 86 | builder.setRobust(true); | ||
85 | QCOMPARE(builder.isRobust(), true); | 87 | QCOMPARE(builder.isRobust(), true); | ||
Show All 32 Lines | 119 | { | |||
118 | MockOpenGLContextAttributeBuilder builder; | 120 | MockOpenGLContextAttributeBuilder builder; | ||
119 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | 121 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | ||
120 | builder.setResetOnVideoMemoryPurge(true); | 122 | builder.setResetOnVideoMemoryPurge(true); | ||
121 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), true); | 123 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), true); | ||
122 | builder.setResetOnVideoMemoryPurge(false); | 124 | builder.setResetOnVideoMemoryPurge(false); | ||
123 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | 125 | QCOMPARE(builder.isResetOnVideoMemoryPurge(), false); | ||
124 | } | 126 | } | ||
125 | 127 | | |||
128 | void OpenGLContextAttributeBuilderTest::testHighPriority() | ||||
129 | { | ||||
130 | MockOpenGLContextAttributeBuilder builder; | ||||
131 | QCOMPARE(builder.isHighPriority(), false); | ||||
132 | builder.setHighPriority(true); | ||||
133 | QCOMPARE(builder.isHighPriority(), true); | ||||
134 | builder.setHighPriority(false); | ||||
135 | QCOMPARE(builder.isHighPriority(), false); | ||||
136 | } | ||||
137 | | ||||
126 | void OpenGLContextAttributeBuilderTest::testVersionMajor() | 138 | void OpenGLContextAttributeBuilderTest::testVersionMajor() | ||
127 | { | 139 | { | ||
128 | MockOpenGLContextAttributeBuilder builder; | 140 | MockOpenGLContextAttributeBuilder builder; | ||
129 | builder.setVersion(2); | 141 | builder.setVersion(2); | ||
130 | QCOMPARE(builder.isVersionRequested(), true); | 142 | QCOMPARE(builder.isVersionRequested(), true); | ||
131 | QCOMPARE(builder.majorVersion(), 2); | 143 | QCOMPARE(builder.majorVersion(), 2); | ||
132 | QCOMPARE(builder.minorVersion(), 0); | 144 | QCOMPARE(builder.minorVersion(), 0); | ||
133 | builder.setVersion(3); | 145 | builder.setVersion(3); | ||
Show All 19 Lines | |||||
153 | { | 165 | { | ||
154 | QTest::addColumn<bool>("requestVersion"); | 166 | QTest::addColumn<bool>("requestVersion"); | ||
155 | QTest::addColumn<int>("major"); | 167 | QTest::addColumn<int>("major"); | ||
156 | QTest::addColumn<int>("minor"); | 168 | QTest::addColumn<int>("minor"); | ||
157 | QTest::addColumn<bool>("robust"); | 169 | QTest::addColumn<bool>("robust"); | ||
158 | QTest::addColumn<bool>("forwardCompatible"); | 170 | QTest::addColumn<bool>("forwardCompatible"); | ||
159 | QTest::addColumn<bool>("coreProfile"); | 171 | QTest::addColumn<bool>("coreProfile"); | ||
160 | QTest::addColumn<bool>("compatibilityProfile"); | 172 | QTest::addColumn<bool>("compatibilityProfile"); | ||
173 | QTest::addColumn<bool>("highPriority"); | ||||
161 | QTest::addColumn<std::vector<int>>("expectedAttribs"); | 174 | QTest::addColumn<std::vector<int>>("expectedAttribs"); | ||
162 | 175 | | |||
163 | QTest::newRow("fallback") << false << 0 << 0 << false << false << false << false << std::vector<int>{EGL_NONE}; | 176 | QTest::newRow("fallback") << false << 0 << 0 << false << false << false << false << false << std::vector<int>{EGL_NONE}; | ||
164 | QTest::newRow("legacy/robust") << false << 0 << 0 << true << false << false << false << | 177 | QTest::newRow("legacy/robust") << false << 0 << 0 << true << false << false << false << false << | ||
178 | std::vector<int>{ | ||||
179 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||||
180 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | ||||
181 | EGL_NONE}; | ||||
182 | QTest::newRow("legacy/robust/high priority") << false << 0 << 0 << true << false << false << false << true << | ||||
165 | std::vector<int>{ | 183 | std::vector<int>{ | ||
166 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | 184 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||
167 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | 185 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | ||
186 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
168 | EGL_NONE}; | 187 | EGL_NONE}; | ||
169 | QTest::newRow("core") << true << 3 << 1 << false << false << false << false << | 188 | QTest::newRow("core") << true << 3 << 1 << false << false << false << false << false << | ||
170 | std::vector<int>{ | 189 | std::vector<int>{ | ||
171 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 190 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
172 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | 191 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||
173 | EGL_NONE}; | 192 | EGL_NONE}; | ||
174 | QTest::newRow("core/robust") << true << 3 << 1 << true << false << false << false << | 193 | QTest::newRow("core/high priority") << true << 3 << 1 << false << false << false << false << true << | ||
194 | std::vector<int>{ | ||||
195 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
196 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||||
197 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
198 | EGL_NONE}; | ||||
199 | QTest::newRow("core/robust") << true << 3 << 1 << true << false << false << false << false << | ||||
175 | std::vector<int>{ | 200 | std::vector<int>{ | ||
176 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 201 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
177 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | 202 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||
178 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | 203 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||
179 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | 204 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | ||
180 | EGL_NONE}; | 205 | EGL_NONE}; | ||
181 | QTest::newRow("core/robust/forward compatible") << true << 3 << 1 << true << true << false << false << | 206 | QTest::newRow("core/robust/high priority") << true << 3 << 1 << true << false << false << false << true << | ||
207 | std::vector<int>{ | ||||
208 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
209 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||||
210 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||||
211 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR, | ||||
212 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
213 | EGL_NONE}; | ||||
214 | QTest::newRow("core/robust/forward compatible") << true << 3 << 1 << true << true << false << false << false << | ||||
215 | std::vector<int>{ | ||||
216 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
217 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||||
218 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||||
219 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
220 | EGL_NONE}; | ||||
221 | QTest::newRow("core/robust/forward compatible/high priority") << true << 3 << 1 << true << true << false << false << true << | ||||
182 | std::vector<int>{ | 222 | std::vector<int>{ | ||
183 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 223 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
184 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | 224 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||
185 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | 225 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||
186 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 226 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
227 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
187 | EGL_NONE}; | 228 | EGL_NONE}; | ||
188 | QTest::newRow("core/forward compatible") << true << 3 << 1 << false << true << false << false << | 229 | QTest::newRow("core/forward compatible") << true << 3 << 1 << false << true << false << false << false << | ||
189 | std::vector<int>{ | 230 | std::vector<int>{ | ||
190 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 231 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
191 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | 232 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||
192 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 233 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
193 | EGL_NONE}; | 234 | EGL_NONE}; | ||
194 | QTest::newRow("core profile/forward compatible") << true << 3 << 2 << false << true << true << false << | 235 | QTest::newRow("core/forward compatible/high priority") << true << 3 << 1 << false << true << false << false << true << | ||
236 | std::vector<int>{ | ||||
237 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
238 | EGL_CONTEXT_MINOR_VERSION_KHR, 1, | ||||
239 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
240 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
241 | EGL_NONE}; | ||||
242 | QTest::newRow("core profile/forward compatible") << true << 3 << 2 << false << true << true << false << false << | ||||
195 | std::vector<int>{ | 243 | std::vector<int>{ | ||
196 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 244 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
197 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | 245 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||
198 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 246 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
199 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | 247 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | ||
200 | EGL_NONE}; | 248 | EGL_NONE}; | ||
201 | QTest::newRow("compatibility profile/forward compatible") << true << 3 << 2 << false << true << false << true << | 249 | QTest::newRow("core profile/forward compatible/high priority") << true << 3 << 2 << false << true << true << false << true << | ||
250 | std::vector<int>{ | ||||
251 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
252 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||||
253 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
254 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | ||||
255 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
256 | EGL_NONE}; | ||||
257 | QTest::newRow("compatibility profile/forward compatible") << true << 3 << 2 << false << true << false << true << false << | ||||
202 | std::vector<int>{ | 258 | std::vector<int>{ | ||
203 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 259 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
204 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | 260 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||
205 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 261 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
206 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | 262 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | ||
207 | EGL_NONE}; | 263 | EGL_NONE}; | ||
208 | QTest::newRow("core profile/robust/forward compatible") << true << 3 << 2 << true << true << true << false << | 264 | QTest::newRow("compatibility profile/forward compatible/high priority") << true << 3 << 2 << false << true << false << true << true << | ||
265 | std::vector<int>{ | ||||
266 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
267 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||||
268 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
269 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | ||||
270 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
271 | EGL_NONE}; | ||||
272 | QTest::newRow("core profile/robust/forward compatible") << true << 3 << 2 << true << true << true << false << false << | ||||
273 | std::vector<int>{ | ||||
274 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
275 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||||
276 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||||
277 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
278 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | ||||
279 | EGL_NONE}; | ||||
280 | QTest::newRow("core profile/robust/forward compatible/high priority") << true << 3 << 2 << true << true << true << false << true << | ||||
209 | std::vector<int>{ | 281 | std::vector<int>{ | ||
210 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 282 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
211 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | 283 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||
212 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | 284 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||
213 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 285 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
214 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | 286 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, | ||
287 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
215 | EGL_NONE}; | 288 | EGL_NONE}; | ||
216 | QTest::newRow("compatibility profile/robust/forward compatible") << true << 3 << 2 << true << true << false << true << | 289 | QTest::newRow("compatibility profile/robust/forward compatible") << true << 3 << 2 << true << true << false << true << false << | ||
217 | std::vector<int>{ | 290 | std::vector<int>{ | ||
218 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | 291 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||
219 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | 292 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||
220 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | 293 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||
221 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | 294 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||
222 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | 295 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | ||
223 | EGL_NONE}; | 296 | EGL_NONE}; | ||
297 | QTest::newRow("compatibility profile/robust/forward compatible/high priority") << true << 3 << 2 << true << true << false << true << true << | ||||
298 | std::vector<int>{ | ||||
299 | EGL_CONTEXT_MAJOR_VERSION_KHR, 3, | ||||
300 | EGL_CONTEXT_MINOR_VERSION_KHR, 2, | ||||
301 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR, EGL_LOSE_CONTEXT_ON_RESET_KHR, | ||||
302 | EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR | EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, | ||||
303 | EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR, | ||||
304 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
305 | EGL_NONE}; | ||||
224 | } | 306 | } | ||
225 | 307 | | |||
226 | void OpenGLContextAttributeBuilderTest::testEgl() | 308 | void OpenGLContextAttributeBuilderTest::testEgl() | ||
227 | { | 309 | { | ||
228 | QFETCH(bool, requestVersion); | 310 | QFETCH(bool, requestVersion); | ||
229 | QFETCH(int, major); | 311 | QFETCH(int, major); | ||
230 | QFETCH(int, minor); | 312 | QFETCH(int, minor); | ||
231 | QFETCH(bool, robust); | 313 | QFETCH(bool, robust); | ||
232 | QFETCH(bool, forwardCompatible); | 314 | QFETCH(bool, forwardCompatible); | ||
233 | QFETCH(bool, coreProfile); | 315 | QFETCH(bool, coreProfile); | ||
234 | QFETCH(bool, compatibilityProfile); | 316 | QFETCH(bool, compatibilityProfile); | ||
317 | QFETCH(bool, highPriority); | ||||
235 | 318 | | |||
236 | EglContextAttributeBuilder builder; | 319 | EglContextAttributeBuilder builder; | ||
237 | if (requestVersion) { | 320 | if (requestVersion) { | ||
238 | builder.setVersion(major, minor); | 321 | builder.setVersion(major, minor); | ||
239 | } | 322 | } | ||
240 | builder.setRobust(robust); | 323 | builder.setRobust(robust); | ||
241 | builder.setForwardCompatible(forwardCompatible); | 324 | builder.setForwardCompatible(forwardCompatible); | ||
242 | builder.setCoreProfile(coreProfile); | 325 | builder.setCoreProfile(coreProfile); | ||
243 | builder.setCompatibilityProfile(compatibilityProfile); | 326 | builder.setCompatibilityProfile(compatibilityProfile); | ||
327 | builder.setHighPriority(highPriority); | ||||
244 | 328 | | |||
245 | auto attribs = builder.build(); | 329 | auto attribs = builder.build(); | ||
246 | QTEST(attribs, "expectedAttribs"); | 330 | QTEST(attribs, "expectedAttribs"); | ||
247 | } | 331 | } | ||
248 | 332 | | |||
249 | void OpenGLContextAttributeBuilderTest::testGles_data() | 333 | void OpenGLContextAttributeBuilderTest::testGles_data() | ||
250 | { | 334 | { | ||
251 | QTest::addColumn<bool>("robust"); | 335 | QTest::addColumn<bool>("robust"); | ||
336 | QTest::addColumn<bool>("highPriority"); | ||||
252 | QTest::addColumn<std::vector<int>>("expectedAttribs"); | 337 | QTest::addColumn<std::vector<int>>("expectedAttribs"); | ||
253 | 338 | | |||
254 | QTest::newRow("robust") << true << std::vector<int>{ | 339 | QTest::newRow("robust") << true << false << std::vector<int>{ | ||
255 | EGL_CONTEXT_CLIENT_VERSION, 2, | 340 | EGL_CONTEXT_CLIENT_VERSION, 2, | ||
256 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT, EGL_TRUE, | 341 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT, EGL_TRUE, | ||
257 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT, EGL_LOSE_CONTEXT_ON_RESET_EXT, | 342 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT, EGL_LOSE_CONTEXT_ON_RESET_EXT, | ||
258 | EGL_NONE}; | 343 | EGL_NONE}; | ||
259 | QTest::newRow("normal") << false << std::vector<int>{ | 344 | QTest::newRow("robust/high priority") << true << true << std::vector<int>{ | ||
345 | EGL_CONTEXT_CLIENT_VERSION, 2, | ||||
346 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT, EGL_TRUE, | ||||
347 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT, EGL_LOSE_CONTEXT_ON_RESET_EXT, | ||||
348 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
349 | EGL_NONE}; | ||||
350 | QTest::newRow("normal") << false << false << std::vector<int>{ | ||||
351 | EGL_CONTEXT_CLIENT_VERSION, 2, | ||||
352 | EGL_NONE}; | ||||
353 | QTest::newRow("normal/high priority") << false << true << std::vector<int>{ | ||||
260 | EGL_CONTEXT_CLIENT_VERSION, 2, | 354 | EGL_CONTEXT_CLIENT_VERSION, 2, | ||
355 | EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_HIGH_IMG, | ||||
261 | EGL_NONE}; | 356 | EGL_NONE}; | ||
262 | } | 357 | } | ||
263 | 358 | | |||
264 | void OpenGLContextAttributeBuilderTest::testGles() | 359 | void OpenGLContextAttributeBuilderTest::testGles() | ||
265 | { | 360 | { | ||
266 | QFETCH(bool, robust); | 361 | QFETCH(bool, robust); | ||
362 | QFETCH(bool, highPriority); | ||||
267 | 363 | | |||
268 | EglOpenGLESContextAttributeBuilder builder; | 364 | EglOpenGLESContextAttributeBuilder builder; | ||
269 | builder.setVersion(2); | 365 | builder.setVersion(2); | ||
270 | builder.setRobust(robust); | 366 | builder.setRobust(robust); | ||
367 | builder.setHighPriority(highPriority); | ||||
271 | 368 | | |||
272 | auto attribs = builder.build(); | 369 | auto attribs = builder.build(); | ||
273 | QTEST(attribs, "expectedAttribs"); | 370 | QTEST(attribs, "expectedAttribs"); | ||
274 | } | 371 | } | ||
275 | 372 | | |||
276 | void OpenGLContextAttributeBuilderTest::testGlx_data() | 373 | void OpenGLContextAttributeBuilderTest::testGlx_data() | ||
277 | { | 374 | { | ||
278 | #if HAVE_EPOXY_GLX | 375 | #if HAVE_EPOXY_GLX | ||
▲ Show 20 Lines • Show All 67 Lines • Show Last 20 Lines |