Skip to content

[SPIRV] Use unknown image format in vk1.3 and later#7528

Merged
s-perron merged 3 commits into
microsoft:mainfrom
s-perron:i7478
Jun 13, 2025
Merged

[SPIRV] Use unknown image format in vk1.3 and later#7528
s-perron merged 3 commits into
microsoft:mainfrom
s-perron:i7478

Conversation

@s-perron
Copy link
Copy Markdown
Collaborator

@s-perron s-perron commented Jun 11, 2025

We have had many request to use the unknown image format for storage
images (OpTypeImage with sampled=2). We did not want to do that when
targeting earlier versions of Vulkan because it could break existing
code. The capability StorageImageWriteWithoutFormat is not guarenteed to
be available on Vulkan 1.1 devices. This means the application will stop
working.

However, Vulkan 1.3 guarentees that StorageImageWriteWithoutFormat and
StorageImageReadWithoutFormat are available. We can make this change for
VK1.3 and later without breaking existing code.

Fixes #7484

We have had many request to use the `unknown` image format for storage
images (OpTypeImage with sampled=2). We did not want to do that when
targeting earlier versions of Vulkan because it could break existing
code. The capability StorageImageWriteWithoutFormat is not guarenteed to
be available on Vulkan 1.1 devices. This means the application will stop
working.

However, Vulkan 1.3 guarentees that StorageImageWriteWithoutFormat and
StorageImageReadWithoutFormat are available. We can make this change for
VK1.3 and later without breaking existing code.

Fixes microsoft#7478
@s-perron s-perron enabled auto-merge (squash) June 12, 2025 17:20
@s-perron s-perron requested a review from Keenuts June 12, 2025 17:20
@s-perron s-perron merged commit 57177f7 into microsoft:main Jun 13, 2025
12 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in HLSL Roadmap Jun 13, 2025
@s-perron s-perron deleted the i7478 branch June 13, 2025 16:12
s-perron added a commit that referenced this pull request Jun 23, 2025
s-perron added a commit that referenced this pull request Jun 24, 2025
I just learned more about the VK feature. In VK1.3, the validation rule
was moved from the existence of the capability to being specific to the
format. It is possible that people will see regressions if their code
runs on a driver that does not support
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT or
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT for the format used
by the developer.

Reverts #7528
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[Feature Request] [SPIR-V] Add a command line option to set storage image and storage texel buffer format to Unknown

3 participants