X Tutup
Skip to content

Check for Typed UAV Load Additional Formats capability when creating D3D12 device.#112989

Merged
Repiteo merged 1 commit intogodotengine:masterfrom
blueskythlikesclouds:typed-uav-load-additional-check
Nov 21, 2025
Merged

Check for Typed UAV Load Additional Formats capability when creating D3D12 device.#112989
Repiteo merged 1 commit intogodotengine:masterfrom
blueskythlikesclouds:typed-uav-load-additional-check

Conversation

@blueskythlikesclouds
Copy link
Contributor

Tested on GT 740M. This device has no support for the capability, so a ton of compute pipelines just fail to create. Better to redirect to Vulkan.

Relevant: https://d3d12infodb.boolka.dev/CanIUse.html?q=D3D12_FEATURE_DATA_D3D12_OPTIONS.TypedUAVLoadAdditionalFormats

@blueskythlikesclouds blueskythlikesclouds requested a review from a team as a code owner November 20, 2025 16:36
Copy link
Member

@clayjohn clayjohn left a comment

Choose a reason for hiding this comment

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

I guess the idea here is that the engine simply can't run if TypedUAVLoadAdditionalFormats is false? I'm a little bit surprised since we were only using it for half float detection before.

Is there some place where we are implicitly relying on half floats being available? Or does TypedUAVLoadAdditionalFormats just cover more functionality than half floats?

@blueskythlikesclouds
Copy link
Contributor Author

blueskythlikesclouds commented Nov 21, 2025

Yes, a lot of storage textures in Godot use half floats and load them using imageLoad in compute shaders without any prior checks to see if that's actually supported.

Making this value in the shader translator true might help, but I found some shaders that use both imageLoad and imageStore on the same half float storage texture, so it wouldn't work in those cases.

@clayjohn
Copy link
Member

I see. I think the intention here was to check if loading half floats directly from SSBOs is supported to match the check in Vulkan. But it looks like this covers texture loads as well. We definitely use RG16 widely, so we need to ensure that it is available. Anything old enough to not support it likely shouldn't be using the RD renderera anyway

@Repiteo Repiteo merged commit ccf414e into godotengine:master Nov 21, 2025
20 checks passed
@Repiteo
Copy link
Contributor

Repiteo commented Nov 21, 2025

Thanks!

@clayjohn clayjohn added the cherrypick:4.5 Considered for cherry-picking into a future 4.5.x release label Jan 8, 2026
@akien-mga
Copy link
Member

Cherry-picked for 4.5.2.

@akien-mga akien-mga removed the cherrypick:4.5 Considered for cherry-picking into a future 4.5.x release label Jan 8, 2026
@blueskythlikesclouds blueskythlikesclouds deleted the typed-uav-load-additional-check branch January 15, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

X Tutup