Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through Paypal, Flattr and Liberapay!
  Go to:
Running Assassin's Creed III with DXVK
Franchiver commented on 28 October 2018 at 9:05 pm UTC

Greetings,

My environment: Linux Mint 17.3, graphics card NVidia GeForce GTX960, NVidia Graphics driver 396.54.

In a new Wine 3.18 (staging) prefix, I first installed Steam, then Uplay, then Assassin's Creed III through Steam.

After that, hoping to increase the performance, I installed the libvulkan* packages, then checked vulkaninfo which gave me this output:

Spoiler, click me
===========
VULKAN INFO
===========

Vulkan Instance Version: 1.1.70





Instance Extensions:
====================
Instance Extensions count = 15
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 9
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_KHR_display : extension revision 21
VK_KHR_get_physical_device_properties2: extension revision 1
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_KHR_device_group_creation : extension revision 1
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities: extension revision 1
VK_EXT_debug_utils : extension revision 1
Layers: count = 3
=======
VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.0.3, layer version 1
Layer Extensions count = 0
Devices count = 2
GPU id : 0 (GeForce GTX 960)
Layer-Device Extensions count = 0
GPU id : 1 (GeForce GTX 960)
Layer-Device Extensions count = 0

VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.0.3, layer version 1
Layer Extensions count = 0
Devices count = 2
GPU id : 0 (GeForce GTX 960)
Layer-Device Extensions count = 0
GPU id : 1 (GeForce GTX 960)
Layer-Device Extensions count = 0

VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.70, layer version 1
Layer Extensions count = 0
Devices count = 2
GPU id : 0 (GeForce GTX 960)
Layer-Device Extensions count = 0
GPU id : 1 (GeForce GTX 960)
Layer-Device Extensions count = 0

Presentable Surfaces:
=====================
GPU id : 0 (GeForce GTX 960)
Surface type : VK_KHR_xcb_surface
Formats: count = 2
B8G8R8A8_UNORM
B8G8R8A8_SRGB
Present Modes: count = 3
FIFO_KHR
FIFO_RELAXED_KHR
IMMEDIATE_KHR

VkSurfaceCapabilitiesKHR:
=========================
minImageCount = 2
maxImageCount = 8
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 1
supportedTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
currentTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
supportedCompositeAlpha:
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
supportedUsageFlags:
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VK_IMAGE_USAGE_TRANSFER_DST_BIT
VK_IMAGE_USAGE_SAMPLED_BIT
VK_IMAGE_USAGE_STORAGE_BIT
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

VkSurfaceCapabilities2EXT:
==========================

supportedSurfaceCounters:
None
GPU id : 1 (GeForce GTX 960)
Surface type : VK_KHR_xcb_surface
Formats: count = 2
B8G8R8A8_UNORM
B8G8R8A8_SRGB
Present Modes: count = 3
FIFO_KHR
FIFO_RELAXED_KHR
IMMEDIATE_KHR

VkSurfaceCapabilitiesKHR:
=========================
minImageCount = 2
maxImageCount = 8
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 1
supportedTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
currentTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
supportedCompositeAlpha:
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
supportedUsageFlags:
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VK_IMAGE_USAGE_TRANSFER_DST_BIT
VK_IMAGE_USAGE_SAMPLED_BIT
VK_IMAGE_USAGE_STORAGE_BIT
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

VkSurfaceCapabilities2EXT:
==========================

supportedSurfaceCounters:
None


Device Properties and Extensions :
==================================
GPU0
VkPhysicalDeviceProperties:
===========================
apiVersion = 0x401046 (1.1.70)
driverVersion = 1661829120 (0x630d8000)
vendorID = 0x10de
deviceID = 0x1401
deviceType = DISCRETE_GPU
deviceName = GeForce GTX 960
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 16384
maxImageDimension2D = 16384
maxImageDimension3D = 2048
maxImageDimensionCube = 16384
maxImageArrayLayers = 2048
maxTexelBufferElements = 0x8000000
maxUniformBufferRange = 0x10000
maxStorageBufferRange = 0xffffffff
maxPushConstantsSize = 256
maxMemoryAllocationCount = 4294967295
maxSamplerAllocationCount = 4000
bufferImageGranularity = 0x400
sparseAddressSpaceSize = 0xffffffffffffffff
maxBoundDescriptorSets = 8
maxPerStageDescriptorSamplers = 1048576
maxPerStageDescriptorUniformBuffers = 15
maxPerStageDescriptorStorageBuffers = 1048576
maxPerStageDescriptorSampledImages = 1048576
maxPerStageDescriptorStorageImages = 1048576
maxPerStageDescriptorInputAttachments = 1048576
maxPerStageResources = 4294967295
maxDescriptorSetSamplers = 1048576
maxDescriptorSetUniformBuffers = 90
maxDescriptorSetUniformBuffersDynamic = 15
maxDescriptorSetStorageBuffers = 1048576
maxDescriptorSetStorageBuffersDynamic = 16
maxDescriptorSetSampledImages = 1048576
maxDescriptorSetStorageImages = 1048576
maxDescriptorSetInputAttachments = 1048576
maxVertexInputAttributes = 32
maxVertexInputBindings = 32
maxVertexInputAttributeOffset = 0x7ff
maxVertexInputBindingStride = 0x800
maxVertexOutputComponents = 128
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 128
maxTessellationControlPerVertexOutputComponents = 128
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 4216
maxTessellationEvaluationInputComponents = 128
maxTessellationEvaluationOutputComponents = 128
maxGeometryShaderInvocations = 32
maxGeometryInputComponents = 128
maxGeometryOutputComponents = 128
maxGeometryOutputVertices = 1024
maxGeometryTotalOutputComponents = 1024
maxFragmentInputComponents = 128
maxFragmentOutputAttachments = 8
maxFragmentDualSrcAttachments = 1
maxFragmentCombinedOutputResources = 16
maxComputeSharedMemorySize = 0xc000
maxComputeWorkGroupCount[0] = 2147483647
maxComputeWorkGroupCount[1] = 65535
maxComputeWorkGroupCount[2] = 65535
maxComputeWorkGroupInvocations = 1536
maxComputeWorkGroupSize[0] = 1536
maxComputeWorkGroupSize[1] = 1024
maxComputeWorkGroupSize[2] = 64
subPixelPrecisionBits = 8
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 4294967295
maxSamplerLodBias = 15.000000
maxSamplerAnisotropy = 16.000000
maxViewports = 16
maxViewportDimensions[0] = 16384
maxViewportDimensions[1] = 16384
viewportBoundsRange[0] =-32768.000000
viewportBoundsRange[1] = 32768.000000
viewportSubPixelBits = 8
minMemoryMapAlignment = 64
minTexelBufferOffsetAlignment = 0x10
minUniformBufferOffsetAlignment = 0x100
minStorageBufferOffsetAlignment = 0x20
minTexelOffset = -8
maxTexelOffset = 7
minTexelGatherOffset =-32
maxTexelGatherOffset = 31
minInterpolationOffset =-0.500000
maxInterpolationOffset = 0.437500
subPixelInterpolationOffsetBits = 4
maxFramebufferWidth = 16384
maxFramebufferHeight = 16384
maxFramebufferLayers = 2048
framebufferColorSampleCounts = 15
framebufferDepthSampleCounts = 15
framebufferStencilSampleCounts = 31
framebufferNoAttachmentsSampleCounts = 31
maxColorAttachments = 8
sampledImageColorSampleCounts = 15
sampledImageDepthSampleCounts = 15
sampledImageStencilSampleCounts = 31
sampledImageIntegerSampleCounts = 15
storageImageSampleCounts = 15
maxSampleMaskWords = 1
timestampComputeAndGraphics = 1
timestampPeriod = 1.000000
maxClipDistances = 8
maxCullDistances = 8
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange[0] = 1.000000
pointSizeRange[1] = 189.875000
lineWidthRange[0] = 0.500000
lineWidthRange[1] = 10.000000
pointSizeGranularity = 0.125000
lineWidthGranularity = 0.125000
strictLines = 1
standardSampleLocations = 1
optimalBufferCopyOffsetAlignment = 0x1
optimalBufferCopyRowPitchAlignment = 0x1
nonCoherentAtomSize = 0x40
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = 1
residencyStandard2DMultisampleBlockShape = 1
residencyStandard3DBlockShape = 1
residencyAlignedMipSize = 0
residencyNonResidentStrict = 1

Device Extensions count = 50
VK_KHR_swapchain : extension revision 70
VK_KHR_16bit_storage : extension revision 1
VK_KHR_bind_memory2 : extension revision 1
VK_KHR_dedicated_allocation : extension revision 3
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_device_group : extension revision 3
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_maintenance1 : extension revision 1
VK_KHR_maintenance2 : extension revision 1
VK_KHR_maintenance3 : extension revision 1
VK_KHR_multiview : extension revision 1
VK_KHR_push_descriptor : extension revision 2
VK_KHR_relaxed_block_layout : extension revision 1
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 1
VK_KHR_sampler_ycbcr_conversion : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_fd : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_variable_pointers : extension revision 1
VK_KHX_device_group : extension revision 2
VK_KHX_multiview : extension revision 1
VK_EXT_blend_operation_advanced : extension revision 2
VK_EXT_conservative_rasterization : extension revision 1
VK_EXT_depth_range_unrestricted : extension revision 1
VK_EXT_discard_rectangles : extension revision 1
VK_EXT_display_control : extension revision 1
VK_EXT_post_depth_coverage : extension revision 1
VK_EXT_sample_locations : extension revision 1
VK_EXT_sampler_filter_minmax : extension revision 1
VK_EXT_shader_subgroup_ballot : extension revision 1
VK_EXT_shader_subgroup_vote : extension revision 1
VK_EXT_shader_viewport_index_layer : extension revision 1
VK_EXT_vertex_attribute_divisor : extension revision 2
VK_NV_dedicated_allocation : extension revision 1
VK_NV_fill_rectangle : extension revision 1
VK_NV_fragment_coverage_to_color : extension revision 1
VK_NV_framebuffer_mixed_samples : extension revision 1
VK_NV_glsl_shader : extension revision 1
VK_NV_sample_mask_override_coverage : extension revision 1
VK_NV_viewport_array2 : extension revision 1
VK_NV_viewport_swizzle : extension revision 1
VK_NV_geometry_shader_passthrough : extension revision 1
VK_NVX_device_generated_commands : extension revision 3
VK_NVX_multiview_per_view_attributes: extension revision 1

VkQueueFamilyProperties[0]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER | SPARSE
queueCount = 16
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)

VkQueueFamilyProperties[1]:
===========================
queueFlags = TRANSFER
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeapCount = 2
memoryHeaps[0] :
size = 2147483648 (0x80000000) (2.00 GiB)
flags:
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryHeaps[1] :
size = 6235435008 (0x173a93000) (5.81 GiB)
flags:
None
memoryTypeCount = 11
memoryTypes[0] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[1] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[2] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[3] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[4] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[5] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[6] :
heapIndex = 1
propertyFlags = 0x0:
memoryTypes[7] :
heapIndex = 0
propertyFlags = 0x1:
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
memoryTypes[8] :
heapIndex = 0
propertyFlags = 0x1:
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
memoryTypes[9] :
heapIndex = 1
propertyFlags = 0x6:
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
memoryTypes[10] :
heapIndex = 1
propertyFlags = 0xe:
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_HOST_CACHED_BIT

VkPhysicalDeviceFeatures:
=========================
alphaToOne = 1
depthBiasClamp = 1
depthBounds = 1
depthClamp = 1
drawIndirectFirstInstance = 1
dualSrcBlend = 1
fillModeNonSolid = 1
fragmentStoresAndAtomics = 1
fullDrawIndexUint32 = 1
geometryShader = 1
imageCubeArray = 1
independentBlend = 1
inheritedQueries = 1
largePoints = 1
logicOp = 1
multiDrawIndirect = 1
multiViewport = 1
occlusionQueryPrecise = 1
pipelineStatisticsQuery = 1
robustBufferAccess = 1
samplerAnisotropy = 1
sampleRateShading = 1
shaderClipDistance = 1
shaderCullDistance = 1
shaderFloat64 = 1
shaderImageGatherExtended = 1
shaderInt16 = 1
shaderInt64 = 1
shaderSampledImageArrayDynamicIndexing = 1
shaderStorageBufferArrayDynamicIndexing = 1
shaderStorageImageArrayDynamicIndexing = 1
shaderStorageImageExtendedFormats = 1
shaderStorageImageMultisample = 1
shaderStorageImageReadWithoutFormat = 1
shaderStorageImageWriteWithoutFormat = 1
shaderTessellationAndGeometryPointSize = 1
shaderUniformBufferArrayDynamicIndexing = 1
sparseBinding = 1
sparseResidency2Samples = 1
sparseResidency4Samples = 1
sparseResidency8Samples = 1
sparseResidency16Samples = 1
sparseResidencyAliased = 1
sparseResidencyBuffer = 1
sparseResidencyImage2D = 1
sparseResidencyImage3D = 1
shaderResourceMinLod = 1
shaderResourceResidency = 1
tessellationShader = 1
textureCompressionASTC_LDR = 0
textureCompressionBC = 1
textureCompressionETC2 = 0
variableMultisampleRate = 1
vertexPipelineStoresAndAtomics = 1
wideLines = 1

Format Properties:
==================
FORMAT_UNDEFINED:
linearTiling FormatFeatureFlags:
None
optimalTiling FormatFeatureFlags:
None
bufferFeatures FormatFeatureFlags:
None

(long list of formats following...)

Then I followed this guide to copy the DXVK DLL into the game folder.

Finally, I launched the game - only to get this ugly message:
0030:err:vulkan:wine_vk_init Failed to load Wine graphics driver supporting Vulkan

Please, did I do something wrong?

sr_ls_boy commented on 29 October 2018 at 12:54 pm UTC

Can you hide all of that behind a spoiler tag?

Franchiver commented on 29 October 2018 at 1:07 pm UTC

My apologies - I naively thought that the code tag would suffice to reduce the visible size of the log... Sadly, I realize only now that the end of the post looks missing. I'll try to rewrite it once I'm back home.

Franchiver commented on 29 October 2018 at 1:22 pm UTC

Here, I shortened the vulkaninfo log and used the "spoiler" tag instead of the "code" one.

Ehvis commented on 29 October 2018 at 5:30 pm UTC

Missing 32 bit Vulkan support maybe?

Franchiver commented on 29 October 2018 at 10:55 pm UTC

EhvisMissing 32 bit Vulkan support maybe?
I installed libvulkan, libvulkan:i386 and vulkan-utils. What could I have missed?

Franchiver commented on 5 November 2018 at 10:36 pm UTC

Here is the logfile regarding my attempt to run AC III with Wine and Vulkan: https://pastebin.com/8njW01Kt
And here is the result of the 'locate vulkan' command: https://pastebin.com/prGDDgL3

All Vulkan-related libraries seem in the right place. I'm still wondering what is yet to be done to make it work. Even Wine 3.19 Staging seems to have been built with Vulkan support - or should I still build it myself?

Franchiver commented on 6 November 2018 at 1:31 pm UTC

Guestdxvk files should go to the wine directory.


export WINEPREFIX=/home/xfce/.wine/
winetricks --force setup_dxvk.verb
Even if the game is installed in a specific, non-default WINE prefix?

Franchiver commented on 7 November 2018 at 12:24 am UTC

Never mind - I just did so, and running the game gives the same result as before...

Franchiver commented on 10 November 2018 at 2:56 pm UTC

Hi,

Once again, thank you for your support. Please rest assured I haven't given up on that case. The thing is, I had to upgrade my distribution from Linux Mint 17.3 to 19 for outdatedness concerns, which wasn't without bad events, and now I have to re-configure PulseAudio from the ground in my new environment, before I resume tweaking my graphics. When I do, I'll let you know about my results.

Best regards

Franchiver commented on 16 November 2018 at 7:05 pm UTC

Hi,

Once again, thank you for your support. After completing my upgrade to Linux Mint 19, the problem seems solved (the new distribution may include a better Vulkan-supporting version of Wine).

Best regards,

Benoît

  Go to:

You need to Register and Login to comment, submit articles and more.


Or login with...

Livestreams & Videos
Community Livestreams
See more!
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts