| ------------------------------------------------------------------------- |
| drawElements Quality Program Test Specification |
| ----------------------------------------------- |
| |
| Copyright 2014 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ------------------------------------------------------------------------- |
| GLES 3.1 debug (KHR_debug) |
| |
| Tests: |
| + dEQP-GLES31.functional.debug.* |
| |
| Includes: |
| + Reporting basic API errors |
| - Callback |
| - Log |
| - glGetError |
| + Application generated messages |
| - InsertMessage |
| - Push/Pop |
| + Message filtering |
| + Debug groups |
| + Asynchronous output |
| - Most cases use synchronous |
| + Labels (for all valid object types) |
| + Handling for debug/non-debug contexts |
| + Limits (MAX_DEBUG_MESSAGE_LENGTH, MAX_DEBUG_LOGGED_MESSAGES) |
| |
| Excludes: |
| + Negative API tests for the extension itself |
| + Some API errors |
| + Labeled objects are not used for anything |
| + Initial state of DEBUG_OUTPUT |
| |
| |
| Description: |
| |
| KHR_debug does not require generating messages if the GL context is not a |
| debug context. The verification logic takes this into account and thus the |
| tests have significantly lower criteria for passing when not running in a |
| debug context. In situations that would not pass with a debug context (and |
| some other suspect cases) a quality warning is generated instead. |
| As such any real testing of this feature should be done in a debug context. |
| |
| Tests can be run in a debug context with the --deqp-gl-context-flags=debug |
| command line argument |
| |
| Basic API error conditions are tested by calling the API in a manner that should |
| generate errors and verifying that appropriate errors were generated. |
| Verification is performed with a callback, querying the error log or GetError. |
| Other than the fetching of errors (where necessary) the API usage is identical |
| between equivalent test cases with different verification methods. |
| |
| Application generated messages are generated with DebugMessageInsert and |
| Push/Pop DebugGroup and verified with a callback. |
| |
| Message filtering tests use a partially randomized set of API calls. The |
| messages produced by these calls are first gathered without any filtering. |
| Filtering is then enabled with a randomized set of changes from the base |
| (unfiltered) state and the API calls are re-run. The messages from the second |
| run are verified to be the correct subset of messages from the first run. |
| |
| Debug groups are tested with an extended version of filtering tests. |
| Filtering tests are essentially run several times with the same set of API |
| calls and with verification after every push/pop. |
| |
| Asynchronous message generation is tested by running the same set of API calls |
| first with DEBUG_OUTPUT_SYNCHRONOUS enabled and then with it disabled and |
| comparing the generated messages. The set of API calls used is randomized. |
| Some async cases use callbacks while others query the debyg message log. |
| Other than the calls necessari to query the log these cases use identical |
| framework code. |
| |
| Labels are set and immediately read back. |