Conversation
WalkthroughThe update modifies the logic in the Changes
Poem
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
Automated formatting by clang-format, prettier, and other hooks. See https://pre-commit.ci for details.
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/Upscaling.cpp(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build plugin and addons
| bool frameGenAvailable = ((globals::streamline && globals::streamline->featureDLSSG) || | ||
| (globals::fidelityFX && globals::fidelityFX->featureFSR3FG)); |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Update the user message to reflect the new availability logic.
The error message at line 156 still mentions "D3D12 interop" as a requirement, but the availability check no longer considers this requirement. This will confuse users who see the feature as available but then see conflicting error messages.
- ImGui::Text("Frame Generation is not available on your system.\nThis requires either NVIDIA DLSS-G or AMD FSR 3.1 Frame Generation support and D3D12 interop.");
+ ImGui::Text("Frame Generation is not available on your system.\nThis requires either NVIDIA DLSS-G or AMD FSR 3.1 Frame Generation support.");📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| bool frameGenAvailable = ((globals::streamline && globals::streamline->featureDLSSG) || | |
| (globals::fidelityFX && globals::fidelityFX->featureFSR3FG)); | |
| ImGui::Text("Frame Generation is not available on your system.\nThis requires either NVIDIA DLSS-G or AMD FSR 3.1 Frame Generation support."); |
🤖 Prompt for AI Agents
In src/Upscaling.cpp around lines 93 to 94 and line 156, the user error message
still references "D3D12 interop" as a requirement, but the availability logic no
longer checks for this. Update the error message at line 156 to remove or revise
the mention of "D3D12 interop" so it accurately reflects the current feature
availability conditions, preventing user confusion.
💡 Verification agent
🧩 Analysis chain
Review the inconsistency between availability check and functionality requirements.
The change removes the d3d12Interop dependency from the availability check, but frame generation functionality throughout the codebase still requires d3d12Interop to be true (lines 128, 141-142, 146-147, 541, 676, 728, 752, 834). This creates an inconsistency where users will see frame generation options available but most functionality will be disabled or non-functional without D3D12 interop.
Consider either:
- Reverting this change and fixing the root cause of the missing menu differently
- Updating the user message at line 156 to reflect the new logic
- Implementing graceful handling throughout the codebase when frame generation features are available but D3D12 interop is not
🏁 Script executed:
#!/bin/bash
# Search for other d3d12Interop dependencies in frame generation code
rg -A 3 -B 3 "d3d12Interop.*frame|frame.*d3d12Interop" --type cppLength of output: 1501
Frame Generation Availability Inconsistency
The new availability check in DrawSettings (lines 93–94) no longer includes d3d12Interop, but downstream functionality still requires it. Verified references in src/Upscaling.cpp:
- DrawSettings():
bool frameGenAvailable = ((globals::streamline && globals::streamline->featureDLSSG) || (globals::fidelityFX && globals::fidelityFX->featureFSR3FG)); - UI warning (onlyRequiresRestart):
if (onlyRequiresRestart && settings.frameGenerationMode && !d3d12Interop) ImGui::Text("Warning: Requires restart");
- Upscaling::CopyBuffersToSharedResources():
if (!d3d12Interop || !settings.frameGenerationMode) return;
- RenderReShade path:
if (!d3d12Interop || !settings.frameGenerationMode) return;
- Upscaling::FrameLimiter():
if (d3d12Interop && settings.frameLimitMode) { … } - Upscaling::IsFrameGenerationActive():
return d3d12Interop && settings.frameGenerationMode;
Action items:
- Either restore the
d3d12Interopcheck in the availability logic - Or remove/adjust all downstream
d3d12Interopguards so they align with the new availability semantics - At minimum, update the user-facing message in DrawSettings (around line 156) to indicate that D3D12 interop is required for full functionality
🤖 Prompt for AI Agents
In src/Upscaling.cpp around lines 93-94, the frame generation availability check
in DrawSettings no longer includes the d3d12Interop condition, but downstream
code still depends on it. To fix this, either add the d3d12Interop check back
into the frameGenAvailable assignment to ensure consistency, or update all
downstream conditions that check d3d12Interop to align with the new availability
logic. Additionally, update the user-facing warning message near line 156 to
clearly state that D3D12 interop is required for full frame generation
functionality.
|
✅ A pre-release build is available for this PR: |
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Summary by CodeRabbit