VkVideoEncoder: clean the deinit when the encode codec extension is not supported by the driver#218
Open
dabrain34 wants to merge 1 commit into
Open
Conversation
45a628a to
01ca36a
Compare
When the encoder does not find an available queue for the given codec, the encoder init exits and deinit the encoder calling MultiThreadedQueueWaitIdle. But in that method it requires to get the given queue (0) which failed to init. Validate first that there is an existing queue before trying to retrieve it.
01ca36a to
0939368
Compare
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.
Description
As h26x codec might be not supported by the driver, CreateVideoEncoder already returns a correct error result with a not supported status but fails to exit properly as the deInit runs into an assert due to a non existing queue.
Indeed with a driver not supporting h265 encode queue for example, the encode tests are failing and do not report/exit properly when detecting the missing queue. On deinit of the video encoder, there is an assert such as:
To avoid this issue,
MultiThreadedQueueWaitIdleshould retrieve a null queue seen that no queue has been initialized.Type of change
bug fix
Issue (optional)
Tests
Intel(R) Iris(R) Xe Graphics (ADL GT2) / Intel open-source Mesa driver Mesa 26.2.0-devel (git-2b62ef1a3e) / Ubuntu 24.04.4 LTS
Total Tests: 83
Passed: 57
Crashed: 0
Failed: 0
Not Supported: 23
Skipped: 3 (in skip list)
Success Rate: 100.0%
Additional Details (optional)