protonscr

Vulkan requirements?

dxvkclosed question
doitsujin/dxvk#2531 · opened 2022-03-09 by christophe-lunarg · updated 2022-07-04 · 6 comments · github
Cchristophe-lunarg 2022-03-09 github

Looking at the wiki page I can see these:
"
DXVK aims to provide support for D3D11, feature level 11_1, and D3D10, feature level 10_1.

Currently unsupported features:

D3D11: Shared Resources.
D3D11: Class linkage.
D3D11: Predication.
D3D11.1: Target-independent rasterization (behaves incorrectly; no MSAA16x support).
D3D11.2: Tiled resources (optional).
D3D11.3: Rasterizer Ordered Views (optional).
D3D11.4: D3D12 interop.
"
Is there any indication of the Vulkan API version and extensions requirement to get D3D11.1 support and to get D3D10.1 support?
What the Vulkan drivers need to support? Is it currently a matter of trial and error?

Thanks

Ddoitsujin maintainer 2022-03-09 github

DXVK generally requires a Vulkan 1.1 driver to run at all with the following device features:

geometryShader
robustBufferAccess
shaderStorageImageWriteWithoutFormat
shaderDrawParameters
depthClamp
depthBiasClamp
fillModeNonSolid
pipelineStatisticsQuery
sampleRateShading
shaderClipDistance
shaderCullDistance
textureCompressionBC
occlusionQueryPrecise
independentBlend
multiViewport
fullDrawIndexUint32
shaderImageGatherExtended
transformFeedback
geometryStreams

For feature level 10_1:

dualSrcBlend
imageCubeArray

For feature level 11_0:

drawIndirectFirstInstance
fragmentStoresAndAtomics
multiDrawIndirect
tessellationShader

For feature level 11_1:

logicOp
variableMultisampleRate
vertexPipelineStoresAndAtomics

There's also a whole bunch of semi-optional features that we use to either implemement certain optional D3D features, ensure correctness, or to achieve good performance:

extendedDynamicState
formatA4B4G4R4
formatA4R4G4B4
shaderFloat64
shaderInt64
shaderStorageImageReadWithoutFormat
depthClipEnable
hostQueryReset
samplerAnisotropy
pipelineStatisticsQuery
vertexAttributeInstanceRateDivisor
vertexAttributeInstanceRateZeroDivisor
shaderDemoteToHelperInvocation
robustBufferAccess2
robustImageAccess2
nullDescriptor
memoryPriority
depthBounds

Note that all of this is subject to change and we will likely move on to Vulkan 1.2 in the future and make hostQueryReset a hard requirement, which allows us to get rid of a slow and more or less untested code path. Portability and compatibility with mobile drivers is not a priority for us.

AAugusto7743 2022-03-19 github

Thanks very much for any improvement.
Installing DXVK is much time in WINE even being few files to copy to WINE path.

KK0bin maintainer 2022-07-04 github

FYI upcoming versions will require null descriptors and dynamic rendering.

I'm closing this issue, I think the question has been answered. Feel free to reopen if there's anything else you want to know.

AAugusto7743 2022-07-04 github

You are saying future version will be compatible with any Vulkan version installed in OS ?

BBlisto91 2022-07-04 github

Null descriptors (VK_EXT_robustness2) have been supported for a couple of years. On linux at least.

For VK_KHR_dynamic_rendering you need atleast 510.39.01 for nvidia and mesa 22.0.0 (radv & anv) for amd and intel.

KK0bin maintainer 2022-07-04 github

You are saying future version will be compatible with any Vulkan version installed in OS ?

It will be compatible with any Vulkan driver that supports those features and works correctly.

Nothing extracted yet.