Skip to content

Revert adapter reordering on Intel iGPU+dGPU systems #7987

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Dec 31, 2022

Conversation

RytoEX
Copy link
Member

@RytoEX RytoEX commented Dec 30, 2022

Description

This PR reverts commits related to Intel iGPU+dGPU adapter reordering that occurs in systems with both an Intel iGPU and Intel dGPU. See PR #3686 where this was originally introduced.

Reverts the following commits:

Fixes #7917.

Motivation and Context

PR #3686 originally introduced this change "to improve performance" (per commit c83eaaa). With the release of the Intel Arc GPUs, users were confused as to why they could not run OBS on their Arc GPU if their system also had an Intel iGPU. After further discussion internally and with Intel, we've decided that it's less confusing to just allow users to choose to run OBS on their Arc dGPU if they want to. If they run into GPU headroom issues, that will become apparent in the video output and in log files, and we can make recommendations from there during troubleshooting sessions.

Initially, I also wanted to revert these commits:

However, the new InitFactory introduced in 1e106c8 was used in abddfea (#6146), and I did not want to adjust the code there. Commit 477199e does not revert cleanly, and it only seems to apply to DG1 GPUs, so it has a limited scope, and I decided not address it here. We could look into addressing either of those later.

I don't see a reason that we would need to keep 02d20e9 or e62759a , but we can keep them if needed.

How Has This Been Tested?

Tested on my Intel iGPU+dGPU system (Iris Xe + Arc A770M). The QSV encoder worked fine no matter which GPU I set OBS to use via Windows Graphics Settings, and the encoder preferred the GPU OBS is running on if the codec is available. The OBS log showed the selected GPU as adapter index 0 and that OBS was running on it. When running on the iGPU, the AV1 encoder uses its non-texture sharing fallback, though with additional resource usage.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Tweak (non-breaking change to improve existing functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@RytoEX RytoEX added Bug Fix Non-breaking change which fixes an issue Enhancement Improvement to existing functionality Seeking Testers Build artifacts on CI labels Dec 30, 2022
@jp9000 jp9000 merged commit 88ea0bb into obsproject:master Dec 31, 2022
@RytoEX RytoEX deleted the revert-intel-igpu-dgpu-reorder branch January 3, 2023 16:50
@RytoEX RytoEX added this to the OBS Studio 29.0 milestone Jan 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Fix Non-breaking change which fixes an issue Enhancement Improvement to existing functionality Seeking Testers Build artifacts on CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Intel QSV encoders incorrectly use Intel iGPU when Intel dGPU is present on NUC 12 Enthusiast Kit
2 participants