KhronosGroup / KhronosGroup/Vulkan-MemoryModel

avvisinc is redundant in the last two lines of the definition of locord

Open
#22 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
117
Forks
15
PR merge metrics
No merged PRs in 30d

Description

This is not a bug, but a proposed simplification.

These lines include the following parts:
- (stor[W]) . (hb & avvisinc) . avdv
- visdv . (hb & avvisinc) . (stor[R])
Where avdv = stor[AVDEVICE] and visdv = stor[VISDEVICE]

We know that "SC0+SC1 = R+W"
, and avvisinc = (rai[((SC0+SC1)->(AVDEVICE+VISDEVICE)) + ...]) - iden + ...
, and no (R+W)&(AVDEVICE+VISDEVICE) (so we don't fall in the '- iden' case)
So (stor[W]) . avdv in avvisinc, and visdv . (stor[R]) in avvisinc.
So I suggest replacing "(hb & avvisinc)" by "hb" in these two lines.
This in turn would allow us to remove (SC0+SC1)->(AVDEVICE+VISDEVICE) from avvisinc, since avvisinc no longer appears in a position where either end could be AVDEVICE or VISDEVICE.

Contributor guide

No contributing guide indexed for this repository

Research direction

Locate the definition of locord and avvisinc in the repository, then inspect the surrounding model rules and any checks that exercise these definitions. Verify the stated SC0+SC1 and device-set assumptions before simplifying the two expressions and removing the now-unneeded relation; done means the model still validates without avvisinc in those positions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.