Skip to content

fix(UI): scale layout values for high-DPI#1987

Merged
doodlum merged 6 commits into
community-shaders:devfrom
Dlizzio:scale-layout-values-for-high-DPI
Mar 19, 2026
Merged

fix(UI): scale layout values for high-DPI#1987
doodlum merged 6 commits into
community-shaders:devfrom
Dlizzio:scale-layout-values-for-high-DPI

Conversation

@Dlizzio
Copy link
Copy Markdown
Contributor

@Dlizzio Dlizzio commented Mar 17, 2026

Scales all other UI elements to set text scale

Before @4k:
SkyrimSE_i4svEKn6Vo

After @4k:
SkyrimSE_wsRYI0gdfR

Summary by CodeRabbit

  • Refactor
    • UI now respects user scaling across overlays, menus, dialogs, editor panels, graphs and tables for consistent sizing, spacing and fonts.
    • Overlay and shader/status windows position and stacking adjust dynamically for proper layering.
    • Dialogs, buttons, tables, graphs, icons and text wrapping scale responsively; borders and padding adapt to theme/style.
    • Minor UI text/tooltip wording refined and logo/watermark sizing adjusted for better visual balance.

Dlizzio and others added 2 commits March 17, 2026 00:42
Automated formatting by clang-format, prettier, and other hooks.
See https://pre-commit.ci for details.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 17, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 62e41443-9495-48a7-857c-9e5778062fac

📥 Commits

Reviewing files that changed from the base of the PR and between 8f1cd69 and c8846c3.

📒 Files selected for processing (2)
  • src/Menu.cpp
  • src/Menu/SettingsTabRenderer.cpp
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/Menu/SettingsTabRenderer.cpp
  • src/Menu.cpp

📝 Walkthrough

Walkthrough

This PR adds a UI scaling helper (Util::GetUIScale()) and applies it broadly: overlay positions use ThemeManager::Constants::OVERLAY_WINDOW_POSITION scaled, ThemeManager border/font scaling updated, and many menus, overlays, and WeatherEditor UIs are adjusted for dynamic UI scale. Also changes a WeatherUtils TOD API signature.

Changes

Cohort / File(s) Summary
UI Scaling Foundation
src/Utils/UI.h, src/Utils/UI.cpp
Add kBaselineFontSize and Util::GetUIScale(); change a couple of fixed button widths to automatic sizing.
Theme & Global Style
src/Menu/ThemeManager.cpp, src/Menu.cpp, src/Menu/MenuHeaderRenderer.cpp
Compute per-font scaleFactor, scale style sizes via ScaleAllSizes, explicitly scale/floor border sizes; minor footer/logo spacing adjustments.
Overlay positioning & shader stacking
src/Menu/OverlayRenderer.cpp, src/Features/LightLimitFix.cpp, src/Features/PerformanceOverlay/..., src/Features/PerformanceOverlay/ABTesting/ABTesting.cpp, src/Features/UnifiedWater.cpp
Replace hardcoded overlay positions with scaled OVERLAY_WINDOW_POSITION; compute stacked y-offsets for shader-related windows; adjust overlay paddings/sizes to respect UI scale.
Menu renderers & dialogs
src/Menu/FeatureListRenderer.cpp, src/Menu/HomePageRenderer.cpp, src/Menu/HomePageRenderer.h, src/Menu/SettingsTabRenderer.cpp, src/Menu/AdvancedSettingsRenderer.cpp, src/Menu/OverlayRenderer.cpp
Apply UI scale to dialogs, paddings, rounding, button/layout sizing; add HomePage dialog constants and update logo/watermark sizes and spacing.
VR / Performance UI
src/Features/VR/SettingsUI.cpp, src/Features/PerformanceOverlay.cpp
Make overlay widths, text wrap, graph heights, spacings and border usage scale-aware via Util::GetUIScale() and style border sizes.
WeatherEditor & widgets
src/WeatherEditor/EditorWindow.cpp, src/WeatherEditor/Widget.cpp, src/WeatherEditor/InteriorOnlyPanel.cpp, src/WeatherEditor/PaletteWindow.cpp, src/WeatherEditor/Weather/.../WeatherWidget.cpp, src/WeatherEditor/Weather/ImageSpaceWidget.cpp
Widespread application of Util::GetUIScale() to window sizes/positions, table/column widths, button sizes, paddings, and drawing thickness; one table width call switched to default sizing.
WeatherUtils API & TOD UI
src/WeatherEditor/WeatherUtils.cpp, src/WeatherEditor/WeatherUtils.h
Add DrawCenteredLabel, scale-aware TOD rendering, and change BeginTODTable signature to BeginTODTable(const char* tableId, float paramColumnWidth = 0.0f).
Misc UI tweaks
src/Features/WeatherEditor.cpp, src/Utils/UI.cpp*
Scale Weather details window position/size; convert some fixed button sizes to auto; refine layout math to use style metrics.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested reviewers

  • doodlum
  • davo0411

"I nibble pixels, measure each line,
Fonts and paddings now scale just fine.
Overlays hop to their proper place,
Windows align with gentle grace,
A rabbit's cheer for tidy UI shine!"

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: scaling layout values to support high-DPI displays. All file changes center on applying UI scaling via GetUIScale() throughout the codebase.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

You can disable sequence diagrams in the walkthrough.

Disable the reviews.sequence_diagrams setting to disable sequence diagrams in the walkthrough.

@github-actions
Copy link
Copy Markdown

No actionable suggestions for changed features.

@davo0411
Copy link
Copy Markdown
Collaborator

does this also fix the freakishly big text on the first startup popup

@Dlizzio
Copy link
Copy Markdown
Contributor Author

Dlizzio commented Mar 17, 2026

does this also fix the freakishly big text on the first startup popup

startup popup is all scaled dynamically now, it was never freakishly big for me it was actually almost too small to read

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 17, 2026

✅ A pre-release build is available for this PR:
Download

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
src/WeatherEditor/WeatherUtils.cpp (1)

597-623: ⚠️ Potential issue | 🟡 Minor

Budget the inherit gap into the per-column width.

The width formula subtracts the checkbox slots and inter-column ItemSpacing, but it doesn't subtract the extra SameLine(0, 2 * scale) gap added on Line 623. With parent inheritance enabled, every TOD row becomes Count * 2 * scale wider than the available region, so the last slider starts clipping on narrower windows.

♻️ Suggested fix
-		float checkboxWidth = 20.0f * scale;
+		const float checkboxWidth = 20.0f * scale;
+		const float inheritGap = 2.0f * scale;
 		float spacing = ImGui::GetStyle().ItemSpacing.x;
-		float sliderWidth = (totalWidth - (static_cast<int>(Count) - 1) * spacing - (parentValues ? static_cast<int>(Count) * checkboxWidth : 0)) / static_cast<float>(Count);
+		float sliderWidth = (totalWidth
+			- (static_cast<int>(Count) - 1) * spacing
+			- (parentValues ? static_cast<int>(Count) * (checkboxWidth + inheritGap) : 0.0f))
+			/ static_cast<float>(Count);
@@
-				ImGui::SameLine(0, 2 * scale);
+				ImGui::SameLine(0, inheritGap);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/WeatherEditor/WeatherUtils.cpp` around lines 597 - 623, The computed
sliderWidth doesn't account for the extra horizontal gap created by
ImGui::SameLine(0, 2 * scale) when parentValues is true, causing the total row
width to exceed available space; update the sliderWidth calculation (the
expression that currently subtracts static_cast<int>(Count) * checkboxWidth when
parentValues is true) to also subtract the total extra gap (Count * 2 * scale)
so the per-column width budgets both the checkbox slot and the SameLine gap;
adjust the expression that sets sliderWidth (which references Count,
checkboxWidth, spacing, and parentValues) to include this extra subtraction so
sliders no longer clip.
src/Features/PerformanceOverlay.cpp (1)

335-343: ⚠️ Potential issue | 🟡 Minor

Include TextSize in the FPS-only minimum-width calculation.

fpsWidth is measured before ImGui::SetWindowFontScale(this->settings.TextSize) on Line 372, so the FPS-only branch underestimates the rendered width whenever TextSize != 1.0f. The overlay can still auto-grow/jitter even though the draw-call and VRAM branches already budget for the extra scale.

♻️ Suggested fix
-			float fpsWidth = ImGui::CalcTextSize(fpsText.c_str()).x;
+			float fpsWidth = ImGui::CalcTextSize(fpsText.c_str()).x * this->settings.TextSize;

Also applies to: 371-372

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Features/PerformanceOverlay.cpp` around lines 335 - 343, The FPS-only
min-width uses fpsWidth measured before font scaling, so multiply the measured
width by the current font scale (the same "scale" used elsewhere) when updating
minWidth; e.g., compute fpsWidth = ImGui::CalcTextSize(fpsText.c_str()).x and
then use fpsWidth * scale (plus Settings::kLabelPadding * scale) when calling
std::max to set minWidth, ensuring the measurement reflects
ImGui::SetWindowFontScale(this->settings.TextSize) and covers both the normal
and state.isFrameGenerationActive fpsText variants.
🧹 Nitpick comments (2)
src/Features/WeatherEditor.cpp (1)

283-289: Consider normalizing persisted window position to avoid scale-dependent restore offsets.

Line 285 stores scaled absolute pixels, and Line 288 later reuses absolute values. If UI scale changes between sessions, the restored margin can drift. Persisting normalized viewport coordinates would keep restore behavior stable across scale changes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Features/WeatherEditor.cpp` around lines 283 - 289, The persisted
WeatherDetailsWindow.Position is stored in scaled absolute pixels (using local
pos = 50.0f * scale) which causes restore drift when UI scale changes; change
persistence to store normalized coordinates (e.g., divide the ImVec2 Position by
current scale or by viewport size when saving) and when restoring (in the block
that calls ImGui::SetNextWindowPos and assigns WeatherDetailsWindow.Position)
multiply the normalized values back by the current scale (or multiply by
viewport size) so Position and ImGui::SetNextWindowPos always use coordinates
adjusted for the current UI scale; update the save/load paths that set Position
and PositionSet accordingly.
src/Menu/HomePageRenderer.cpp (1)

1-1: Optional: add an issue-closing reference in PR description if this fixes a tracked DPI bug.

If there is an existing issue, adding Fixes #<id> will auto-close it on merge and improve traceability.

As per coding guidelines, "Suggest adding appropriate GitHub keywords: 'Fixes #123' or 'Closes #123' for bug fixes."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Menu/HomePageRenderer.cpp` at line 1, The PR should include an
issue-closing keyword in its description if this change resolves a tracked DPI
bug; update the PR description to add a line like "Fixes #<issue-number>" or
"Closes #<issue-number>" referencing the tracked DPI issue so it auto-closes on
merge and improves traceability (mention the HomePageRenderer change if
helpful).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/Features/UnifiedWater.cpp`:
- Around line 61-67: The placement code currently anchors UWCacheCreationInfo
(and the similar block in OverlayRenderer.cpp) under the "ShaderCompilationInfo"
window only, causing overlaps when multiple overlays are visible; replace that
single-window lookup with a helper that computes the lowest active overlay Y by
iterating visible overlay windows (e.g., scan ImGui windows for overlay
names/flags and track max(shaderWin->Pos.y + shaderWin->Size.y)), return the
bottom-most Y and add style.ItemSpacing.y to compute vOffset, and use that
helper from UWCacheCreationInfo and the OverlayRenderer positioning code so both
rely on the same lowest-active-overlay Y.

In `@src/Menu/AdvancedSettingsRenderer.cpp`:
- Around line 238-240: The code pushes ImGuiStyleVar_WindowBorderSize but the
child created with BeginChild(..., true, ...) uses
ImGuiStyleVar_ChildBorderSize; change the second PushStyleVar call to use
ImGuiStyleVar_ChildBorderSize and pass the child border size (e.g.
ImGui::GetStyle().ChildBorderSize * scale or a scaled literal) so the child
border actually renders—update the PushStyleVar that currently references
ImGuiStyleVar_WindowBorderSize to ImGuiStyleVar_ChildBorderSize (referencing
Util::GetUIScale(), ImGui::PushStyleVar and BeginChild).

In `@src/Menu/OverlayRenderer.cpp`:
- Around line 279-287: Multiple top-left overlays can overlap because
ShaderBlockingInfo in OverlayRenderer.cpp and UnifiedWater::DrawOverlay() both
independently stack below ShaderCompilationInfo; extract a single stacking
helper (e.g., OverlayStack::ReserveTopLeft(float height) or a helper function
GetTopLeftYOffset()) and have ShaderBlockingInfo use that helper instead of
computing yPos locally, and update UnifiedWater::DrawOverlay() to call the same
helper so each overlay registers/reserves its vertical space deterministically
relative to ShaderCompilationInfo and each other.

In `@src/WeatherEditor/Weather/WeatherWidget.cpp`:
- Around line 1082-1090: The cloud preview is forced off-screen when the scaled
thumbnail (textureSize) exceeds the available right space (availRight) because
offset is clamped positive and SameLine is always used; update the code in the
block that uses GetCloudTexture(i) so that you check if textureSize > availRight
and, in that case, avoid ImGui::SameLine (call ImGui::NewLine() or let it flow
to the next line and optionally add ImGui::Spacing()), otherwise compute offset
= std::max(20.0f * scale, (availRight - textureSize) * 0.5f) and call
ImGui::SameLine as before; reference symbols: textureSize, availRight, offset,
GetCloudTexture, settings.clouds.

---

Outside diff comments:
In `@src/Features/PerformanceOverlay.cpp`:
- Around line 335-343: The FPS-only min-width uses fpsWidth measured before font
scaling, so multiply the measured width by the current font scale (the same
"scale" used elsewhere) when updating minWidth; e.g., compute fpsWidth =
ImGui::CalcTextSize(fpsText.c_str()).x and then use fpsWidth * scale (plus
Settings::kLabelPadding * scale) when calling std::max to set minWidth, ensuring
the measurement reflects ImGui::SetWindowFontScale(this->settings.TextSize) and
covers both the normal and state.isFrameGenerationActive fpsText variants.

In `@src/WeatherEditor/WeatherUtils.cpp`:
- Around line 597-623: The computed sliderWidth doesn't account for the extra
horizontal gap created by ImGui::SameLine(0, 2 * scale) when parentValues is
true, causing the total row width to exceed available space; update the
sliderWidth calculation (the expression that currently subtracts
static_cast<int>(Count) * checkboxWidth when parentValues is true) to also
subtract the total extra gap (Count * 2 * scale) so the per-column width budgets
both the checkbox slot and the SameLine gap; adjust the expression that sets
sliderWidth (which references Count, checkboxWidth, spacing, and parentValues)
to include this extra subtraction so sliders no longer clip.

---

Nitpick comments:
In `@src/Features/WeatherEditor.cpp`:
- Around line 283-289: The persisted WeatherDetailsWindow.Position is stored in
scaled absolute pixels (using local pos = 50.0f * scale) which causes restore
drift when UI scale changes; change persistence to store normalized coordinates
(e.g., divide the ImVec2 Position by current scale or by viewport size when
saving) and when restoring (in the block that calls ImGui::SetNextWindowPos and
assigns WeatherDetailsWindow.Position) multiply the normalized values back by
the current scale (or multiply by viewport size) so Position and
ImGui::SetNextWindowPos always use coordinates adjusted for the current UI
scale; update the save/load paths that set Position and PositionSet accordingly.

In `@src/Menu/HomePageRenderer.cpp`:
- Line 1: The PR should include an issue-closing keyword in its description if
this change resolves a tracked DPI bug; update the PR description to add a line
like "Fixes #<issue-number>" or "Closes #<issue-number>" referencing the tracked
DPI issue so it auto-closes on merge and improves traceability (mention the
HomePageRenderer change if helpful).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 46f9ff05-6e15-4baf-9a8a-9e33c0530a00

📥 Commits

Reviewing files that changed from the base of the PR and between 491e83e and 75b0aff.

📒 Files selected for processing (24)
  • src/Features/LightLimitFix.cpp
  • src/Features/PerformanceOverlay.cpp
  • src/Features/PerformanceOverlay/ABTesting/ABTesting.cpp
  • src/Features/UnifiedWater.cpp
  • src/Features/VR/SettingsUI.cpp
  • src/Features/WeatherEditor.cpp
  • src/Menu.cpp
  • src/Menu/AdvancedSettingsRenderer.cpp
  • src/Menu/FeatureListRenderer.cpp
  • src/Menu/HomePageRenderer.cpp
  • src/Menu/HomePageRenderer.h
  • src/Menu/MenuHeaderRenderer.cpp
  • src/Menu/OverlayRenderer.cpp
  • src/Menu/SettingsTabRenderer.cpp
  • src/Menu/ThemeManager.cpp
  • src/Utils/UI.cpp
  • src/Utils/UI.h
  • src/WeatherEditor/EditorWindow.cpp
  • src/WeatherEditor/InteriorOnlyPanel.cpp
  • src/WeatherEditor/PaletteWindow.cpp
  • src/WeatherEditor/Weather/ImageSpaceWidget.cpp
  • src/WeatherEditor/Weather/WeatherWidget.cpp
  • src/WeatherEditor/WeatherUtils.cpp
  • src/WeatherEditor/Widget.cpp

Comment thread src/Features/UnifiedWater.cpp
Comment thread src/Menu/AdvancedSettingsRenderer.cpp Outdated
Comment thread src/Menu/OverlayRenderer.cpp
Comment thread src/WeatherEditor/Weather/WeatherWidget.cpp
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
src/Menu/OverlayRenderer.cpp (1)

279-292: ⚠️ Potential issue | 🟠 Major

UWCacheCreationInfo stacking check is draw-order dependent and can still overlap.

Line 287-Line 290 checks UWCacheCreationInfo, but RenderShaderBlockingStatus() is called before feature overlays are drawn (Line 53 vs. Line 74), so this window is typically not active when queried. That makes this collision-prone in the same frame.

Suggested fix (minimal ordering fix)
-	RenderShaderCompilationStatus(keyIdToString);
-	RenderShaderBlockingStatus();
+	RenderShaderCompilationStatus(keyIdToString);
+	RenderFeatureOverlays();
+	RenderShaderBlockingStatus();
...
-	RenderFeatureOverlays();

Run this read-only check to verify call order and dependency on an internal ImGui window state:

#!/bin/bash
set -euo pipefail

echo "== Overlay draw order in src/Menu/OverlayRenderer.cpp =="
rg -n --type=cpp -C2 'RenderShaderCompilationStatus\(|RenderShaderBlockingStatus\(|RenderFeatureOverlays\(' src/Menu/OverlayRenderer.cpp

echo
echo "== Stacking lookup usage in src/Menu/OverlayRenderer.cpp =="
rg -n --type=cpp -C2 'FindWindowByName\("ShaderCompilationInfo"\)|FindWindowByName\("UWCacheCreationInfo"\)|\.Active\b' src/Menu/OverlayRenderer.cpp

echo
echo "== Producer of UWCacheCreationInfo window =="
rg -n --type=cpp -C2 'Begin\("UWCacheCreationInfo"' src/Features/UnifiedWater.cpp

Expected result: RenderShaderBlockingStatus appears before RenderFeatureOverlays, while UWCacheCreationInfo is created in UnifiedWater::DrawOverlay, confirming this order dependency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Menu/OverlayRenderer.cpp` around lines 279 - 292, The stacking check for
"UWCacheCreationInfo" is racey because RenderShaderBlockingStatus queries ImGui
windows before UnifiedWater::DrawOverlay creates UWCacheCreationInfo; move the
call to RenderShaderBlockingStatus so it runs after RenderFeatureOverlays (or
after the code path that draws UnifiedWater overlays) so
FindWindowByName("UWCacheCreationInfo") sees the window in the same frame;
update any callers in OverlayRenderer (where RenderShaderBlockingStatus and
RenderFeatureOverlays are invoked) to reorder those calls accordingly to ensure
correct stacking logic.
🧹 Nitpick comments (3)
src/WeatherEditor/WeatherUtils.cpp (1)

999-1004: Inconsistent scaling between TOD::BeginTODTable and PropertyDrawer::BeginTable.

The default fallback 200.0f is not scaled, whereas PropertyDrawer::BeginTable (line 1072) applies labelWidth * Util::GetUIScale(). This means:

  • TOD::BeginTODTable("id") → unscaled 200px column
  • PropertyDrawer::BeginTable("id", 200.0f) → scaled column

Call sites that explicitly pass a scaled width (like 120.0f * scale in WeatherWidget.cpp:1105) work correctly, but call sites relying on the default may appear inconsistent at high DPI.

Consider scaling the default fallback for consistency:

♻️ Suggested fix
 bool BeginTODTable(const char* tableId, float paramColumnWidth)
 {
-    if (paramColumnWidth <= 0.0f)
-        paramColumnWidth = 200.0f;
+    if (paramColumnWidth <= 0.0f)
+        paramColumnWidth = 200.0f * Util::GetUIScale();
     if (ImGui::BeginTable(tableId, 2, ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_SizingStretchProp)) {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/WeatherEditor/WeatherUtils.cpp` around lines 999 - 1004, The default
fallback width in TOD::BeginTODTable uses an unscaled 200.0f which causes DPI
inconsistency compared to PropertyDrawer::BeginTable that multiplies labelWidth
by Util::GetUIScale(); update BeginTODTable to apply UI scaling to its fallback
(e.g., replace the hard 200.0f with 200.0f * Util::GetUIScale() or call
Util::GetUIScale() when computing paramColumnWidth) so the default behavior
matches PropertyDrawer::BeginTable's scaling; reference BeginTODTable,
PropertyDrawer::BeginTable, Util::GetUIScale, and labelWidth when making the
change.
src/WeatherEditor/Weather/WeatherWidget.cpp (1)

58-73: Consider reusing the existing scale variable for consistency.

The scale variable is declared at line 58 but line 73 calls Util::GetUIScale() directly. Since resolution cannot change at runtime, this isn't a bug, but using the local variable would be more consistent with the rest of the function.

♻️ Suggested fix
-			ImGui::SetNextWindowSize(ImVec2(300.0f * Util::GetUIScale(), 0));
+			ImGui::SetNextWindowSize(ImVec2(300.0f * scale, 0));

Based on learnings: "In the Skyrim engine, the game's resolution cannot be changed while the game is running. Resolution changes require restarting the game, so one-time initialization of display-related scaling values is appropriate."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/WeatherEditor/Weather/WeatherWidget.cpp` around lines 58 - 73, The code
declares a local float scale = Util::GetUIScale() but later calls
Util::GetUIScale() again when setting the search dropdown size; replace that
direct call with the local scale variable to be consistent (e.g., use scale
where Util::GetUIScale() is passed into ImGui::SetNextWindowSize and any other
subsequent UI size calculations), updating references near the
ImGui::SetNextWindowSize(ImVec2(300.0f * Util::GetUIScale(), 0)) call and any
similar uses so the function consistently uses the previously computed scale
variable.
src/Menu/OverlayRenderer.cpp (1)

1-1: PR metadata polish: normalize conventional-commit casing and add an issue keyword if applicable.

Suggested title: fix(ui): scale layout values for high dpi
If this PR maps to an issue, add a footer like Closes #<id> or Addresses #<id>.

As per coding guidelines: "**/*: provide suggestions for Conventional Commit Titles ... and Issue References."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Menu/OverlayRenderer.cpp` at line 1, Update the PR/commit metadata to
follow Conventional Commits: change the title to "fix(ui): scale layout values
for high dpi" (lowercase type/scope as shown) and, if this PR addresses an
existing issue, add a footer line "Closes #<id>" (or "Addresses #<id>") to the
commit/PR description; ensure the commit message body and PR title use the
normalized casing and include the issue reference if applicable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@src/Menu/OverlayRenderer.cpp`:
- Around line 279-292: The stacking check for "UWCacheCreationInfo" is racey
because RenderShaderBlockingStatus queries ImGui windows before
UnifiedWater::DrawOverlay creates UWCacheCreationInfo; move the call to
RenderShaderBlockingStatus so it runs after RenderFeatureOverlays (or after the
code path that draws UnifiedWater overlays) so
FindWindowByName("UWCacheCreationInfo") sees the window in the same frame;
update any callers in OverlayRenderer (where RenderShaderBlockingStatus and
RenderFeatureOverlays are invoked) to reorder those calls accordingly to ensure
correct stacking logic.

---

Nitpick comments:
In `@src/Menu/OverlayRenderer.cpp`:
- Line 1: Update the PR/commit metadata to follow Conventional Commits: change
the title to "fix(ui): scale layout values for high dpi" (lowercase type/scope
as shown) and, if this PR addresses an existing issue, add a footer line "Closes
#<id>" (or "Addresses #<id>") to the commit/PR description; ensure the commit
message body and PR title use the normalized casing and include the issue
reference if applicable.

In `@src/WeatherEditor/Weather/WeatherWidget.cpp`:
- Around line 58-73: The code declares a local float scale = Util::GetUIScale()
but later calls Util::GetUIScale() again when setting the search dropdown size;
replace that direct call with the local scale variable to be consistent (e.g.,
use scale where Util::GetUIScale() is passed into ImGui::SetNextWindowSize and
any other subsequent UI size calculations), updating references near the
ImGui::SetNextWindowSize(ImVec2(300.0f * Util::GetUIScale(), 0)) call and any
similar uses so the function consistently uses the previously computed scale
variable.

In `@src/WeatherEditor/WeatherUtils.cpp`:
- Around line 999-1004: The default fallback width in TOD::BeginTODTable uses an
unscaled 200.0f which causes DPI inconsistency compared to
PropertyDrawer::BeginTable that multiplies labelWidth by Util::GetUIScale();
update BeginTODTable to apply UI scaling to its fallback (e.g., replace the hard
200.0f with 200.0f * Util::GetUIScale() or call Util::GetUIScale() when
computing paramColumnWidth) so the default behavior matches
PropertyDrawer::BeginTable's scaling; reference BeginTODTable,
PropertyDrawer::BeginTable, Util::GetUIScale, and labelWidth when making the
change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 54c9ed56-e8e5-4d78-afbe-93f392318118

📥 Commits

Reviewing files that changed from the base of the PR and between 75b0aff and 8f1cd69.

📒 Files selected for processing (6)
  • src/Features/UnifiedWater.cpp
  • src/Menu/AdvancedSettingsRenderer.cpp
  • src/Menu/OverlayRenderer.cpp
  • src/WeatherEditor/Weather/WeatherWidget.cpp
  • src/WeatherEditor/WeatherUtils.cpp
  • src/WeatherEditor/WeatherUtils.h
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/Menu/AdvancedSettingsRenderer.cpp

@doodlum doodlum merged commit 5624f3d into community-shaders:dev Mar 19, 2026
14 checks passed
@Dlizzio Dlizzio deleted the scale-layout-values-for-high-DPI branch March 27, 2026 14:10
davo0411 added a commit to davo0411/skyrim-community-shaders that referenced this pull request Mar 28, 2026
* fix(weather overrides): ensure json format for features (community-shaders#1748)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* perf(terrain blending): tweak defaults (community-shaders#1771)

* fix(lighting): vanilla envcolor mult the correct value (community-shaders#1775)

* fix(water): remove final colour saturate (community-shaders#1778)

* fix(unified-water): LOD water cache mismatch (community-shaders#1779)

* fix(weather editor): override desync with weather transitions (community-shaders#1782)

* fix(weather editor): no-override weather file deletion (community-shaders#1777)

* fix(weather editor): apply weather settings post-load (community-shaders#1776)

* fix(weather editor): handling of weathers without overrides (community-shaders#1773)

* feat(UI): feature headings (community-shaders#1786)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(VR): add wand pointing (community-shaders#1790)

* chore(UI): theme consistency (community-shaders#1787)

* fix(upscaling): warn about max nvidia resolution (community-shaders#1795)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(linear lighting): UI settings changes (community-shaders#1785)

Co-authored-by: Jiaye <l936249247@hotmail.com>

* fix(grass-lighting) better basic grass brightness default (community-shaders#1780)

* chore(UI): remove settings and about tabs (community-shaders#1794)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(terrain shadows): fix compiler warnings (community-shaders#1798)

* fix: fix flickering particles (community-shaders#1791)

* fix(terrain blending): disable vr support (community-shaders#1799)

* refactor(upscaling): standardize behavior and tune settings (community-shaders#1783)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(UI): add auto-hide featurelist option (community-shaders#1793)

* fix: match grass brightness of vanilla (community-shaders#1801)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor(perfoverlay): remove color from "Other" and "Total" (community-shaders#1806)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(unified water): fix for mesh water jitter (community-shaders#1809)

* fix: clear shader cache on plugin version change (community-shaders#1739)

* feat(filewatcher): add hlsli tracking (community-shaders#1796)

* feat(linear lighting): add ambient multiplier (community-shaders#1805)

* fix(unified-water): underwater fog flicker (community-shaders#1807)

* fix(UI): conflicting esc key on welcome hotkey dialogue (community-shaders#1811)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* chore(UI): add subtext font to tooltips (community-shaders#1810)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: bump streamline to 2.10.3 (community-shaders#1813)

* build: resolve shader warnings (community-shaders#1818)

* feat(ui): add combo hotkey support (community-shaders#1808)

* feat: add feature constraints (community-shaders#1804)

* build: update version to 1.4.8 (community-shaders#1802)

* fix(VR): apply per eye upscaling (community-shaders#1819)

- Split upscaling across each eye for correctness and to avoid DLSS failing over 8k x 8k limit
- Changes HMD mask color to black to hide artifacts with fast movement

* build: bump common lib to 4.2.0 (community-shaders#1821)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(grass collision): catch trashed actor pointers (community-shaders#1765)

* fix(weather editor): desynced override transitions (community-shaders#1820)

* fix(upscaling): fix preset and allocation handling (community-shaders#1824)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* build: remove linear lighting from core whilst in development (community-shaders#1826)

* chore: bump version to 1.4.9 (community-shaders#1827)

* fix: add back LLF core file and remove LL core file (community-shaders#1828)

* fix: dont save shader debug toggles (community-shaders#1831)

* fix: remove IBL from core, unfinished (community-shaders#1830)

* chore: update version to 1.4.10 (community-shaders#1832)

* chore(dynamic cubemaps): lessen normalisation darkening (community-shaders#1833)

* chore(llf): remove LightsVisualisationMode settings loading (community-shaders#1834)

* revert: "fix: dont save shader debug toggles (community-shaders#1831)"

This reverts commit f55f195.

* revert: "chore(llf): remove LightsVisualisationMode settings loading (community-shaders#1834)"

This reverts commit b3db5a7.

* fix: default enabledClasses true

* build: bump version

* feat(upscaling): custom DLSS preset (community-shaders#1837)

* fix(weather editor): sync UI for full transition (community-shaders#1822)

* fix(linearlighting): return correct buffer when ll feature off (community-shaders#1838)

* fix(PBR): skip IrradianceToLinear on specular in vanilla (community-shaders#1839)

* feat(weather editor): adjust slider ranges (community-shaders#1847)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): replace volumetric Lighting RGB sliders with color picker (community-shaders#1846)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* fix(grass collision): collision radius math  (community-shaders#1849)

* chore: move new feature information into docs (community-shaders#1848)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(ui): background blur with upscaling (community-shaders#1815)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: move some features to core (community-shaders#1852)

* fix: fix blown out water specular (community-shaders#1853)

* feat(weather editor): toggle hotkey (community-shaders#1856)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(color picker): add an original color reference to all color pickers (community-shaders#1857)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* perf(emat): alternate tweaks (community-shaders#1850)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather-editor): merge weather picker and editor (community-shaders#1845)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* chore(llf): remove LLF settings loading (community-shaders#1859)

* feat: exponential height fog (community-shaders#1708)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): block editor access in loading screens (community-shaders#1871)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): improve weather picker UI and functionality (community-shaders#1863)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): repurpose unsaved changes tracking (community-shaders#1860)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix: sync grass lighting defaults to match ENB (community-shaders#1844)

* fix: stop shader compilation on game exit (community-shaders#1867)

closes community-shaders#1130

* fix(weather editor): prevent inputs when editor is open (community-shaders#1872)

* fix(weather editor): add ctd guards (community-shaders#1864)

* feat(weather editor): remove WorldSpace widget and associated code (community-shaders#1878)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(vr): add OpenComposite menu support (community-shaders#1880)

* revert: "feat(vr): add OpenComposite VR menu" (community-shaders#1881)

* revert: "fix: stop shader compilation on game exit" (community-shaders#1882)

* feat(vr): add OpenComposite menu support (community-shaders#1883)

* feat(weather editor): add time controls (community-shaders#1877)

* feat: add shadowmap rasterizer override (community-shaders#1690)

* fix(weather editor): clear feature overrides with revert (community-shaders#1884)

* feat(UI): Interior Only (community-shaders#1854)

* fix(VR): fix Shadowmap Cascade Rasterizer (community-shaders#1888)

* fix(unified water): distance calculation for raindrops & LOD fade (community-shaders#1890)

* refactor: clarify core feature version mismatch text (community-shaders#1886)

* fix: stop shader compilation on game exit (community-shaders#1885)

* build: exclude hlsl tests from packaging (community-shaders#1894)

* chore: disable feature constraints in dev mode (community-shaders#1893)

* fix(vr): improve stereo UV handling (community-shaders#1899)

* fix(weather editor): move esc key to native input system (community-shaders#1897)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* fix: move ResolveMonoUVForEye outside VR guard (community-shaders#1906)

* fix(grass collision): validate actor  (community-shaders#1905)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(terrain shadows): height map regression (community-shaders#1911)

* fix: util vertical fov math (community-shaders#1904)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* test: add float4 overload test (community-shaders#1902)

* refactor: move all features to globals::game::calendar (community-shaders#1909)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(UI): resolution based font (community-shaders#1907)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): make objects window be independently scrollable (community-shaders#1908)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(UI): consolidate searchbar to util and add to weather editor (community-shaders#1898)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): add filled star for favourites. (community-shaders#1913)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): add delete json button to objects window (community-shaders#1914)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(VR): resolution-based font (community-shaders#1923)

* refactor: use depthbuffer helper (community-shaders#1925)

* refactor: move TurboColormap into Color.hlsli (community-shaders#1924)

* fix(weather editor): expand clickable area of feature override (community-shaders#1921)

* feat(weather editor): enable snapping to viewport (community-shaders#1917)

* feat(weather editor): highlight enabled cloud layers (community-shaders#1916)

* fix(VR): SSGI discrepancies (community-shaders#1926)

* feat: volumetric shadows (community-shaders#1874)

* ci: enhance feature version audit (community-shaders#1927)

* feat(weather editor): add filter options for objects window (community-shaders#1922)

* feat(weather editor): sticky headers and scrollable content (community-shaders#1930)

* fix(UI): ImGui scaling for borderless mode (community-shaders#1929)

* ci: don't fail on feature audits (community-shaders#1934)

* fix(pbr): use scrap heap allocation (community-shaders#1928)

* chore(UI): add subsurface scattering to Interior Only (community-shaders#1932)

* fix(weather editor): align highlights, fix tooltip (community-shaders#1918)

* fix(ssgi): guard VR only compilation (community-shaders#1938)

* build: update template to avoid extra directory (community-shaders#1812)

* style: fix hlsl formatting (community-shaders#1939)

* fix(UI): improve theme management UI flow (community-shaders#1933)

closes community-shaders#1919

* build(deps): update pre-commit hooks (community-shaders#1768)

* feat(UI): delete theme button (community-shaders#1940)

* feat(UI): open log file button (community-shaders#1942)

* fix(hair): marschner volumetric shadow tint (community-shaders#1944)

* fix(VR): screen space shadows desync (community-shaders#1946)

closes community-shaders#1840

* fix(VR): depth culling during upscaling/Terrain Blending (community-shaders#1858)

* feat(VR): add edge detection for stereo blending (community-shaders#1948)

* refactor: allocate trampoline once (community-shaders#1951)

* fix(UI): PBR MATO color scale RGB settings corrected (community-shaders#1957)

* fix(weather editor): guard against loadorder changes (community-shaders#1953)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: davo0411 <davidkehoe0411@outlook.com>

* fix(UI): feature description text wrapping (community-shaders#1960)

* fix(VR): exponential height fog stereo mismatch (community-shaders#1961)

* chore: pbr consistency changes (community-shaders#1841)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: jiayev <l936249247@hotmail.com>

* fix(skylighting): remove PBR lighting scale (community-shaders#1963)

* fix(skysync): effect mesh blackout during shadow caster transitions (community-shaders#1965)

* ci: fix wiki deletion with buffer update (community-shaders#1967)

* feat(weather-editor): option to hide viewport (community-shaders#1970)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* test(shader): fallback to warp on invalidarg (community-shaders#1956)

Co-authored-by: LukeFrankio <loren@example.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: triplanar projected materials (community-shaders#1950)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(ao): better ao calculations (community-shaders#1968)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(pbr): fix improper kD terms (community-shaders#1971)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* perf(emat): tweak fade and shadow intensity (community-shaders#1892)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(ibl): revamp ibl and dalc sh (community-shaders#1947)

* build: bump commonlib to 4.7.1 (community-shaders#1977)

* fix: upscaling monitor detection fixes (community-shaders#1978)

* fix(weather editor): prevent overrides resetting settings (community-shaders#1980)

* fix(VR): bad llf offset (community-shaders#1984)

* perf: cache frequent ui checks (community-shaders#1985)

* fix: preserve vanilla water TAA when no upscaler is active (community-shaders#1986)

Co-authored-by: jturnley <jturnley@users.noreply.github.com>

* fix(UI): first-time dialog fade affects all overlays (community-shaders#1976)

* fix(skysync): remove sunlight fade and volumetric lighting overrides (community-shaders#1966)

* refactor(HLSL): standardize epsilon constants (community-shaders#1992)

closes community-shaders#1227

* feat(UI): require Shift to dock windows (community-shaders#1989)

* fix(UI): input spam after alt-tab (community-shaders#1993)

* fix(sky sync): early return for invalid cells (community-shaders#1991)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: jiayev <l936249247@hotmail.com>

* fix(sky sync): remove undeclared variable (community-shaders#1994)

* refactor(pbr): clear up semantics (community-shaders#1995)

* fix(UI): scale layout values for high-DPI (community-shaders#1987)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(water): hdr water taa blend (community-shaders#1988)

* refactor(color): clarify gamma conversion functions (community-shaders#1996)

* feat(ISL-editor): add light counters and fix filtering (community-shaders#1997)

* fix(UI): DPI-aware window layouts (community-shaders#2000)

* fix(weather-editor): save color palette window (community-shaders#2001)

* refactor: centralize feature category names (community-shaders#2007)

closes community-shaders#1265

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* chore: bump versions (community-shaders#2010)

* fix(water): sample history mask from current mask (community-shaders#2011)

* chore(wetness-effects): set default MaxPuddleWetness to 1.5 (community-shaders#1981)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather-editor): add free camera and play mode (community-shaders#2008)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: bump versions and reduce false positives (community-shaders#2013)

* fix(VR): LLF cluster building and culling (community-shaders#2012)

* build: update to VS 2026 (community-shaders#1990)

* ci: fix preset in vs2022 mode (community-shaders#2015)

* ci: remove v2022 from shader jobs (community-shaders#2016)

* feat(upscaling): integrate Streamline Reflex controls (community-shaders#1958)

* fix(unified-water): BSWaterShaderProperty.plane (community-shaders#1998)

---------

Co-authored-by: Skrubby Skrub In A Shrub <87662196+SkrubbySkrubInAShrub@users.noreply.github.com>
Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>
Co-authored-by: jiayev <l936249247@hotmail.com>
Co-authored-by: Dlizzio <77717521+Dlizzio@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alan Tse <alandtse@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bruce <44987693+brucenguyen@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Dawntic <197450198+Dawntic@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Alan Tse <alandtse@gmail.com>
Co-authored-by: Vanni Giachin <vanni.giachin@qlik.com>
Co-authored-by: zxcvbn <66063766+zndxcvbn@users.noreply.github.com>
Co-authored-by: ParticleTroned <248299730+ParticleTroned@users.noreply.github.com>
Co-authored-by: soda <130315225+soda3000@users.noreply.github.com>
Co-authored-by: YtzyFvra <59631290+YtzyFvra@users.noreply.github.com>
Co-authored-by: LukeFrankio <lorenzogrutzmann@gmail.com>
Co-authored-by: LukeFrankio <loren@example.com>
Co-authored-by: jturnley <32892261+jturnley@users.noreply.github.com>
Co-authored-by: jturnley <jturnley@users.noreply.github.com>
Co-authored-by: Igor Alan Albuquerque de Sousa <50077829+IgorAlanAlbuquerque@users.noreply.github.com>
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
davo0411 added a commit to davo0411/skyrim-community-shaders that referenced this pull request Mar 29, 2026
* fix(weather overrides): ensure json format for features (community-shaders#1748)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* perf(terrain blending): tweak defaults (community-shaders#1771)

* fix(lighting): vanilla envcolor mult the correct value (community-shaders#1775)

* fix(water): remove final colour saturate (community-shaders#1778)

* fix(unified-water): LOD water cache mismatch (community-shaders#1779)

* fix(weather editor): override desync with weather transitions (community-shaders#1782)

* fix(weather editor): no-override weather file deletion (community-shaders#1777)

* fix(weather editor): apply weather settings post-load (community-shaders#1776)

* fix(weather editor): handling of weathers without overrides (community-shaders#1773)

* feat(UI): feature headings (community-shaders#1786)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(VR): add wand pointing (community-shaders#1790)

* chore(UI): theme consistency (community-shaders#1787)

* fix(upscaling): warn about max nvidia resolution (community-shaders#1795)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(linear lighting): UI settings changes (community-shaders#1785)

Co-authored-by: Jiaye <l936249247@hotmail.com>

* fix(grass-lighting) better basic grass brightness default (community-shaders#1780)

* chore(UI): remove settings and about tabs (community-shaders#1794)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(terrain shadows): fix compiler warnings (community-shaders#1798)

* fix: fix flickering particles (community-shaders#1791)

* fix(terrain blending): disable vr support (community-shaders#1799)

* refactor(upscaling): standardize behavior and tune settings (community-shaders#1783)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(UI): add auto-hide featurelist option (community-shaders#1793)

* fix: match grass brightness of vanilla (community-shaders#1801)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor(perfoverlay): remove color from "Other" and "Total" (community-shaders#1806)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(unified water): fix for mesh water jitter (community-shaders#1809)

* fix: clear shader cache on plugin version change (community-shaders#1739)

* feat(filewatcher): add hlsli tracking (community-shaders#1796)

* feat(linear lighting): add ambient multiplier (community-shaders#1805)

* fix(unified-water): underwater fog flicker (community-shaders#1807)

* fix(UI): conflicting esc key on welcome hotkey dialogue (community-shaders#1811)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* chore(UI): add subtext font to tooltips (community-shaders#1810)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: bump streamline to 2.10.3 (community-shaders#1813)

* build: resolve shader warnings (community-shaders#1818)

* feat(ui): add combo hotkey support (community-shaders#1808)

* feat: add feature constraints (community-shaders#1804)

* build: update version to 1.4.8 (community-shaders#1802)

* fix(VR): apply per eye upscaling (community-shaders#1819)

- Split upscaling across each eye for correctness and to avoid DLSS failing over 8k x 8k limit
- Changes HMD mask color to black to hide artifacts with fast movement

* build: bump common lib to 4.2.0 (community-shaders#1821)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(grass collision): catch trashed actor pointers (community-shaders#1765)

* fix(weather editor): desynced override transitions (community-shaders#1820)

* fix(upscaling): fix preset and allocation handling (community-shaders#1824)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* build: remove linear lighting from core whilst in development (community-shaders#1826)

* chore: bump version to 1.4.9 (community-shaders#1827)

* fix: add back LLF core file and remove LL core file (community-shaders#1828)

* fix: dont save shader debug toggles (community-shaders#1831)

* fix: remove IBL from core, unfinished (community-shaders#1830)

* chore: update version to 1.4.10 (community-shaders#1832)

* chore(dynamic cubemaps): lessen normalisation darkening (community-shaders#1833)

* chore(llf): remove LightsVisualisationMode settings loading (community-shaders#1834)

* revert: "fix: dont save shader debug toggles (community-shaders#1831)"

This reverts commit f55f195.

* revert: "chore(llf): remove LightsVisualisationMode settings loading (community-shaders#1834)"

This reverts commit b3db5a7.

* fix: default enabledClasses true

* build: bump version

* feat(upscaling): custom DLSS preset (community-shaders#1837)

* fix(weather editor): sync UI for full transition (community-shaders#1822)

* fix(linearlighting): return correct buffer when ll feature off (community-shaders#1838)

* fix(PBR): skip IrradianceToLinear on specular in vanilla (community-shaders#1839)

* feat(weather editor): adjust slider ranges (community-shaders#1847)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): replace volumetric Lighting RGB sliders with color picker (community-shaders#1846)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* fix(grass collision): collision radius math  (community-shaders#1849)

* chore: move new feature information into docs (community-shaders#1848)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(ui): background blur with upscaling (community-shaders#1815)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: move some features to core (community-shaders#1852)

* fix: fix blown out water specular (community-shaders#1853)

* feat(weather editor): toggle hotkey (community-shaders#1856)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(color picker): add an original color reference to all color pickers (community-shaders#1857)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* perf(emat): alternate tweaks (community-shaders#1850)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather-editor): merge weather picker and editor (community-shaders#1845)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* chore(llf): remove LLF settings loading (community-shaders#1859)

* feat: exponential height fog (community-shaders#1708)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): block editor access in loading screens (community-shaders#1871)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): improve weather picker UI and functionality (community-shaders#1863)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): repurpose unsaved changes tracking (community-shaders#1860)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix: sync grass lighting defaults to match ENB (community-shaders#1844)

* fix: stop shader compilation on game exit (community-shaders#1867)

closes community-shaders#1130

* fix(weather editor): prevent inputs when editor is open (community-shaders#1872)

* fix(weather editor): add ctd guards (community-shaders#1864)

* feat(weather editor): remove WorldSpace widget and associated code (community-shaders#1878)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(vr): add OpenComposite menu support (community-shaders#1880)

* revert: "feat(vr): add OpenComposite VR menu" (community-shaders#1881)

* revert: "fix: stop shader compilation on game exit" (community-shaders#1882)

* feat(vr): add OpenComposite menu support (community-shaders#1883)

* feat(weather editor): add time controls (community-shaders#1877)

* feat: add shadowmap rasterizer override (community-shaders#1690)

* fix(weather editor): clear feature overrides with revert (community-shaders#1884)

* feat(UI): Interior Only (community-shaders#1854)

* fix(VR): fix Shadowmap Cascade Rasterizer (community-shaders#1888)

* fix(unified water): distance calculation for raindrops & LOD fade (community-shaders#1890)

* refactor: clarify core feature version mismatch text (community-shaders#1886)

* fix: stop shader compilation on game exit (community-shaders#1885)

* build: exclude hlsl tests from packaging (community-shaders#1894)

* chore: disable feature constraints in dev mode (community-shaders#1893)

* fix(vr): improve stereo UV handling (community-shaders#1899)

* fix(weather editor): move esc key to native input system (community-shaders#1897)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* fix: move ResolveMonoUVForEye outside VR guard (community-shaders#1906)

* fix(grass collision): validate actor  (community-shaders#1905)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* fix(terrain shadows): height map regression (community-shaders#1911)

* fix: util vertical fov math (community-shaders#1904)

Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>

* test: add float4 overload test (community-shaders#1902)

* refactor: move all features to globals::game::calendar (community-shaders#1909)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(UI): resolution based font (community-shaders#1907)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): make objects window be independently scrollable (community-shaders#1908)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(UI): consolidate searchbar to util and add to weather editor (community-shaders#1898)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(weather editor): add filled star for favourites. (community-shaders#1913)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather editor): add delete json button to objects window (community-shaders#1914)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(VR): resolution-based font (community-shaders#1923)

* refactor: use depthbuffer helper (community-shaders#1925)

* refactor: move TurboColormap into Color.hlsli (community-shaders#1924)

* fix(weather editor): expand clickable area of feature override (community-shaders#1921)

* feat(weather editor): enable snapping to viewport (community-shaders#1917)

* feat(weather editor): highlight enabled cloud layers (community-shaders#1916)

* fix(VR): SSGI discrepancies (community-shaders#1926)

* feat: volumetric shadows (community-shaders#1874)

* ci: enhance feature version audit (community-shaders#1927)

* feat(weather editor): add filter options for objects window (community-shaders#1922)

* feat(weather editor): sticky headers and scrollable content (community-shaders#1930)

* fix(UI): ImGui scaling for borderless mode (community-shaders#1929)

* ci: don't fail on feature audits (community-shaders#1934)

* fix(pbr): use scrap heap allocation (community-shaders#1928)

* chore(UI): add subsurface scattering to Interior Only (community-shaders#1932)

* fix(weather editor): align highlights, fix tooltip (community-shaders#1918)

* fix(ssgi): guard VR only compilation (community-shaders#1938)

* build: update template to avoid extra directory (community-shaders#1812)

* style: fix hlsl formatting (community-shaders#1939)

* fix(UI): improve theme management UI flow (community-shaders#1933)

closes community-shaders#1919

* build(deps): update pre-commit hooks (community-shaders#1768)

* feat(UI): delete theme button (community-shaders#1940)

* feat(UI): open log file button (community-shaders#1942)

* fix(hair): marschner volumetric shadow tint (community-shaders#1944)

* fix(VR): screen space shadows desync (community-shaders#1946)

closes community-shaders#1840

* fix(VR): depth culling during upscaling/Terrain Blending (community-shaders#1858)

* feat(VR): add edge detection for stereo blending (community-shaders#1948)

* refactor: allocate trampoline once (community-shaders#1951)

* fix(UI): PBR MATO color scale RGB settings corrected (community-shaders#1957)

* fix(weather editor): guard against loadorder changes (community-shaders#1953)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: davo0411 <davidkehoe0411@outlook.com>

* fix(UI): feature description text wrapping (community-shaders#1960)

* fix(VR): exponential height fog stereo mismatch (community-shaders#1961)

* chore: pbr consistency changes (community-shaders#1841)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: jiayev <l936249247@hotmail.com>

* fix(skylighting): remove PBR lighting scale (community-shaders#1963)

* fix(skysync): effect mesh blackout during shadow caster transitions (community-shaders#1965)

* ci: fix wiki deletion with buffer update (community-shaders#1967)

* feat(weather-editor): option to hide viewport (community-shaders#1970)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* test(shader): fallback to warp on invalidarg (community-shaders#1956)

Co-authored-by: LukeFrankio <loren@example.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: triplanar projected materials (community-shaders#1950)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(ao): better ao calculations (community-shaders#1968)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(pbr): fix improper kD terms (community-shaders#1971)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* perf(emat): tweak fade and shadow intensity (community-shaders#1892)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(ibl): revamp ibl and dalc sh (community-shaders#1947)

* build: bump commonlib to 4.7.1 (community-shaders#1977)

* fix: upscaling monitor detection fixes (community-shaders#1978)

* fix(weather editor): prevent overrides resetting settings (community-shaders#1980)

* fix(VR): bad llf offset (community-shaders#1984)

* perf: cache frequent ui checks (community-shaders#1985)

* fix: preserve vanilla water TAA when no upscaler is active (community-shaders#1986)

Co-authored-by: jturnley <jturnley@users.noreply.github.com>

* fix(UI): first-time dialog fade affects all overlays (community-shaders#1976)

* fix(skysync): remove sunlight fade and volumetric lighting overrides (community-shaders#1966)

* refactor(HLSL): standardize epsilon constants (community-shaders#1992)

closes community-shaders#1227

* feat(UI): require Shift to dock windows (community-shaders#1989)

* fix(UI): input spam after alt-tab (community-shaders#1993)

* fix(sky sync): early return for invalid cells (community-shaders#1991)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: jiayev <l936249247@hotmail.com>

* fix(sky sync): remove undeclared variable (community-shaders#1994)

* refactor(pbr): clear up semantics (community-shaders#1995)

* fix(UI): scale layout values for high-DPI (community-shaders#1987)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix(water): hdr water taa blend (community-shaders#1988)

* refactor(color): clarify gamma conversion functions (community-shaders#1996)

* feat(ISL-editor): add light counters and fix filtering (community-shaders#1997)

* fix(UI): DPI-aware window layouts (community-shaders#2000)

* fix(weather-editor): save color palette window (community-shaders#2001)

* refactor: centralize feature category names (community-shaders#2007)

closes community-shaders#1265

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* chore: bump versions (community-shaders#2010)

* fix(water): sample history mask from current mask (community-shaders#2011)

* chore(wetness-effects): set default MaxPuddleWetness to 1.5 (community-shaders#1981)

Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>

* feat(weather-editor): add free camera and play mode (community-shaders#2008)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* build: bump versions and reduce false positives (community-shaders#2013)

* fix(VR): LLF cluster building and culling (community-shaders#2012)

* build: update to VS 2026 (community-shaders#1990)

* ci: fix preset in vs2022 mode (community-shaders#2015)

* ci: remove v2022 from shader jobs (community-shaders#2016)

* feat(upscaling): integrate Streamline Reflex controls (community-shaders#1958)

* fix(unified-water): BSWaterShaderProperty.plane (community-shaders#1998)

---------

Co-authored-by: Skrubby Skrub In A Shrub <87662196+SkrubbySkrubInAShrub@users.noreply.github.com>
Co-authored-by: SkrubbySkrubInAShrub <skrubbyskrubinashrub@gmail.com>
Co-authored-by: doodlum <15017472+doodlum@users.noreply.github.com>
Co-authored-by: jiayev <l936249247@hotmail.com>
Co-authored-by: Dlizzio <77717521+Dlizzio@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alan Tse <alandtse@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bruce <44987693+brucenguyen@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Dawntic <197450198+Dawntic@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Alan Tse <alandtse@gmail.com>
Co-authored-by: Vanni Giachin <vanni.giachin@qlik.com>
Co-authored-by: zxcvbn <66063766+zndxcvbn@users.noreply.github.com>
Co-authored-by: ParticleTroned <248299730+ParticleTroned@users.noreply.github.com>
Co-authored-by: soda <130315225+soda3000@users.noreply.github.com>
Co-authored-by: YtzyFvra <59631290+YtzyFvra@users.noreply.github.com>
Co-authored-by: LukeFrankio <lorenzogrutzmann@gmail.com>
Co-authored-by: LukeFrankio <loren@example.com>
Co-authored-by: jturnley <32892261+jturnley@users.noreply.github.com>
Co-authored-by: jturnley <jturnley@users.noreply.github.com>
Co-authored-by: Igor Alan Albuquerque de Sousa <50077829+IgorAlanAlbuquerque@users.noreply.github.com>
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
ParticleTroned pushed a commit to ParticleTroned/skyrim-community-shaders that referenced this pull request May 2, 2026
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
(cherry picked from commit 5624f3d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants