Repository navigation
thirdparty: add NDEBUG check before glGetErrorCode if-statement in sokol_gfx.h - #24754
Merged
Merged
Conversation
When built for release, assert(x) becomes NOOP. Commit 37e5ead, had introduced an if-block & fprintf statement to print the glGetError() code to make diagnostic easier. However, this change will execute even when assert(x) is a cast to void(0). Resulting in performance drop - which can be noticable. (Ex: Using gg with emscripten will result in single-digit framerate) This commit provides a fix by having an ifdef check for NDEBUG, and if NDEBUG is defined then _SG_GL_CHECK_ERROR will be defined as nothing, as the result of SOKOL_ASSERT -> ASSERT, would also be nothing (glibc/assert.h).
|
Connected to Huly®: V_0.6-23172 |
Contributor
|
Sorry for not being careful and testing with -prod too. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a performance drop caused by 37e5ead
When built for release, assert(x) is no-op. Commit 37e5ead, had introduced an if-block & fprintf statement to print the glGetError() code to make diagnostic easier. However, this change will execute even when assert(x) is void.
This commit provides a fix by having an ifdef check for NDEBUG, and if NDEBUG is defined then _SG_GL_CHECK_ERROR will be defined as nothing, as the result of SOKOL_ASSERT/ASSERT, would also be nothing (glibc/assert.h).
Edit:
Video of performance drop (left is after this pull, right is before):
resultss.mp4