Skip to content

Introduce control to relax memory ordering semantics for atomics on Intel HW#42

Open
eternastudento wants to merge 1 commit intodoitsujin:mainfrom
eternastudento:wip/intel-atomic-semantics
Open

Introduce control to relax memory ordering semantics for atomics on Intel HW#42
eternastudento wants to merge 1 commit intodoitsujin:mainfrom
eternastudento:wip/intel-atomic-semantics

Conversation

@eternastudento
Copy link
Copy Markdown

DX specification does not mention any additional synchronization requirements for atomics, e.g.:
https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/atomic-iadd--sm5---asm-
Therefore the semantics could be relaxed for certain HW to not introduce additional synchronization.

To be followed with dxvk change to set the flag on Intel HW.

…ntel HW

DX specification does not mention any additional synchronization requirements
for atomics, e.g.:
https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/atomic-iadd--sm5---asm-
Therefore the semantics could be relaxed for certain HW to not introduce additional
synchronization.
@doitsujin
Copy link
Copy Markdown
Owner

doitsujin commented Mar 31, 2026

I really don't want to add hardware-specific paths here.

I'm aware that this is still an issue, but I'm busy with far too many non-dxvk things at the moment to really look into this, I simply don't have the time to deal with this properly at the moment.

Either way, adding config hacks to work around suboptimal code gen without understanding why the supposedly optimal thing breaks in certain game/driver combinations isn't really acceptable unless this issue is very high priority for some reason (i.e. things are broken/unusable on current Experimental or something). I want this code to remain maintainable, changing things in such a way that it potentially creates more hardware-specific issues in the long run is the opposite of that.

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.

2 participants