From 2f7835f5c57cb200dae9185f26127cd9b372e37b Mon Sep 17 00:00:00 2001 From: Castro-Fidel Date: Mon, 1 Jun 2020 00:08:46 +0300 Subject: [PATCH] a_from_portwine/dxvk_nvidia.conf --- data_from_portwine/dxvk_amd.conf | 334 ++++++++++++++++++ .../{dxvk.conf => dxvk_nvidia.conf} | 2 +- data_from_portwine/scripts/runlib | 20 +- 3 files changed, 347 insertions(+), 9 deletions(-) create mode 100755 data_from_portwine/dxvk_amd.conf rename data_from_portwine/{dxvk.conf => dxvk_nvidia.conf} (99%) mode change 100644 => 100755 diff --git a/data_from_portwine/dxvk_amd.conf b/data_from_portwine/dxvk_amd.conf new file mode 100755 index 0000000..5dcab93 --- /dev/null +++ b/data_from_portwine/dxvk_amd.conf @@ -0,0 +1,334 @@ +# Create the VkSurface on the first call to IDXGISwapChain::Present, +# rather than when creating the swap chain. Some games that start +# rendering with a different graphics API may require this option, +# or otherwise the window may stay black. +# +# Supported values: True, False + +# dxgi.deferSurfaceCreation = False +# d3d9.deferSurfaceCreation = False + + +# Enforce a stricter maximum frame latency. Overrides the application +# setting specified by calling IDXGIDevice::SetMaximumFrameLatency. +# Setting this to 0 will have no effect. +# +# Supported values : 0 - 16 + +# dxgi.maxFrameLatency = 2 +# d3d9.maxFrameLatency = 2 + + +# Override PCI vendor and device IDs reported to the application. Can +# cause the app to adjust behaviour depending on the selected values. +# +# Supported values: Any four-digit hex number. + +# dxgi.customDeviceId = 0000 +# dxgi.customVendorId = 10de + +# d3d9.customDeviceId = 0000 +# d3d9.customVendorId = 10de + + +# Report Nvidia GPUs as AMD GPUs by default. This is enabled by default +# to work around issues with NVAPI, but may cause issues in some games. +# +# Supported values: True, False + +dxgi.nvapiHack = False + + + +# Override maximum amount of device memory and shared system memory +# reported to the application. This may fix texture streaming issues +# in games that do not support cards with large amounts of VRAM. +# +# Supported values: Any number in Megabytes. + +# dxgi.maxDeviceMemory = 0 +# dxgi.maxSharedMemory = 0 + + +# Override back buffer count for the Vulkan swap chain. +# Setting this to 0 or less will have no effect. +# +# Supported values: Any number greater than or equal to 2. + +# dxgi.numBackBuffers = 0 + + +# Overrides synchronization interval (Vsync) for presentation. +# Setting this to 0 disables vertical synchronization entirely. +# A positive value 'n' will enable Vsync and repeat the same +# image n times, and a negative value will have no effect. +# +# Supported values: Any non-negative number + +# dxgi.syncInterval = -1 +# d3d9.presentInterval = -1 + + +# True enables the mailbox present mode in case regular Vsync is disabled. +# This should avoid tearing, but may be unsupported on some systems +# or require setting dxgi.numBackBuffers to a higher value in order +# to work properly. +# +# False enables the relaxed fifo present mode in case regular Vsync is enabled. +# This should result in tearing but reduce stutter if FPS are too low, +# but may be unsupported on some systems. +# +# Please do not report issues with this option. +# +# Supported values: Auto, True, False + +# dxgi.tearFree = Auto +# d3d9.tearFree = Auto + + +# Performs range check on dynamically indexed constant buffers in shaders. +# This may be needed to work around a certain type of game bug, but may +# also introduce incorrect behaviour. +# +# Supported values: True, False + +# d3d11.constantBufferRangeCheck = False + + +# Assume single-use mode for command lists created on deferred contexts. +# This may need to be disabled for some applications to avoid rendering +# issues, which may come at a significant performance cost. +# +# Supported values: True, False + +# d3d11.dcSingleUseMode = True + + +# Override the maximum feature level that a D3D11 device can be created +# with. Setting this to a higher value may allow some applications to run +# that would otherwise fail to create a D3D11 device. +# +# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1 + +# d3d11.maxFeatureLevel = 11_1 + + +# Overrides the maximum allowed tessellation factor. This can be used to +# improve performance in titles which overuse tessellation. +# +# Supported values: Any number between 8 and 64 + +# d3d11.maxTessFactor = 8 + + +# Enables relaxed pipeline barriers around UAV writes. +# +# This may improve performance in some games, but may also introduce +# rendering issues. Please don't report bugs with the option enabled. +# +# Supported values: True, False + +# d3d11.relaxedBarriers = False + + +# Overrides anisotropic filtering for all samplers. Set this to a positive +# value to enable AF for all samplers in the game, or to 0 in order to +# disable AF entirely. Negative values will have no effect. +# +# Supported values: Any number between 0 and 16 + +# d3d11.samplerAnisotropy = 8 +# d3d9.samplerAnisotropy = 8 + + +# Declares vertex positions as invariant in order to solve +# potential Z-fighting issues at a small performance cost. +# +# Supported values: True, False + +# d3d11.invariantPosition = False +# d3d9.invariantPosition = False + + +# Replaces NaN outputs from fragment shaders with zeroes for floating +# point render target. Used in some games to prevent artifacting. +# +# Supported values: True, False + +# d3d11.enableRtOutputNanFixup = False + + +# Clears workgroup memory in compute shaders to zero. Some games don't do +# this and rely on undefined behaviour. Enabling may reduce performance. +# +# Supported values: True, False + +# d3d11.zeroWorkgroupMemory = False + + +# Sets number of pipeline compiler threads. +# +# Supported values: +# - 0 to automatically determine the number of threads to use +# - any positive number to enforce the thread count + +# dxvk.numCompilerThreads = 0 + + +# Toggles raw SSBO usage. +# +# Uses storage buffers to implement raw and structured buffer +# views. Enabled by default on hardware which has a storage +# buffer offset alignment requirement of 4 Bytes (e.g. AMD). +# Enabling this may improve performance, but is not safe on +# hardware with higher alignment requirements. +# +# Supported values: +# - Auto: Don't change the default +# - True, False: Always enable / disable + +# dxvk.useRawSsbo = Auto + + +# Toggles early discard. +# +# Uses subgroup operations to determine whether it is safe to +# discard fragments before the end of a fragment shader. This +# is enabled by default on all drivers except RADV and Nvidia. +# Enabling this may improve or degrade performance depending +# on the game and hardware, or cause other issues. +# +# Supported values: +# - Auto: Don't change the default +# - True, False: Always enable / disable + +# dxvk.useEarlyDiscard = Auto + + +# Sets enabled HUD elements +# +# Behaves like the DXVK_HUD environment variable if the +# environment variable is not set, otherwise it will be +# ignored. The syntax is identical. + +# dxvk.hud = + + +# Reported shader model +# +# The shader model to state that we support in the device +# capabilities that the applicatation queries. +# +# Supported values: +# - 1: Shader Model 1 +# - 2: Shader Model 2 +# - 3: Shader Model 3 + +# d3d9.shaderModel = 3 + + +# Evict Managed on Unlock +# +# Decides whether we should evict managed resources from +# system memory when they are unlocked entirely. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.evictManagedOnUnlock = False + + +# DPI Awareness +# +# Decides whether we should call SetProcessDPIAware on device +# creation. Helps avoid upscaling blur in modern Windows on +# Hi-DPI screens/devices. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.dpiAware = True + + +# Strict Constant Copies +# +# Decides whether we should always copy defined constants to +# the UBO when relative addresssing is used, or only when the +# relative addressing starts a defined constant. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.strictConstantCopies = False + + +# Strict Pow +# +# Decides whether we have an opSelect for handling pow(0,0) = 0 +# otherwise it becomes undefined. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.strictPow = True + + +# Lenient Clear +# +# Decides whether or not we fastpath clear anyway if we are close enough to +# clearing a full render target. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.lenientClear = False + + +# Max available memory +# +# Changes the max initial value used in tracking and GetAvailableTextureMem +# Value in Megabytes +# +# Supported values: +# - Any int32_t + +# d3d9.maxAvailableMemory = 4096 + + +# Force enable/disable floating point quirk emulation +# +# Force toggle anything * 0 emulation +# Tristate +# Supported values: +# - True/False + +# d3d9.floatEmulation = + + +# Enable dialog box mode +# +# Changes the default state of dialog box mode. +# *Disables* exclusive fullscreen when enabled. +# +# Supported values: +# - True, False: Always enable / disable + +# d3d9.enableDialogMode = False + +# Overrides the application's MSAA level on the swapchain +# +# Supported values: -1 (application) and 0 to 16 (user override) + +# d3d9.forceSwapchainMSAA = -1 + + +# Long Mad +# +# Should we make our Mads a FFma or do it the long way with an FMul and an FAdd? +# This solves some rendering bugs in games that have z-pass shaders which +# don't match entirely to the regular vertex shader in this way. +# +# Supported values: +# - True/False + +# d3d9.longMad = False diff --git a/data_from_portwine/dxvk.conf b/data_from_portwine/dxvk_nvidia.conf old mode 100644 new mode 100755 similarity index 99% rename from data_from_portwine/dxvk.conf rename to data_from_portwine/dxvk_nvidia.conf index 6c30331..651f988 --- a/data_from_portwine/dxvk.conf +++ b/data_from_portwine/dxvk_nvidia.conf @@ -36,7 +36,7 @@ # # Supported values: True, False -# dxgi.nvapiHack = True +dxgi.nvapiHack = True diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 117b040..5a467cf 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -123,11 +123,12 @@ then export __GL_SHADER_DISK_CACHE_SIZE=1000000000 export __GL_THREADED_OPTIMIZATIONS=1 nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1 > /dev/null + export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk_nvidia.conf" if [ ! -z "${WINEDLLOVERRIDES}" ] then - export WINEDLLOVERRIDES="nvapi,nvapi64=";${WINEDLLOVERRIDES} + export WINEDLLOVERRIDES="nvapi=;nvapi64=;${WINEDLLOVERRIDES}" else - export WINEDLLOVERRIDES="nvapi,nvapi64=" + export WINEDLLOVERRIDES="nvapi=;nvapi64=" fi echo "runtime libs is disabled" else @@ -136,12 +137,16 @@ else export mesa_glthread=true # export RADV_DEBUG=nocache,nomemorycache local AMD_ATI="$(lspci | grep AMD/ATI)" - if [ ! -z "${AMD_ATI}" ] && [ "${PORTWINE_ACO}" -eq "1" ] + if [ ! -z "${AMD_ATI}" ] then - export RADV_PERFTEST=aco - echo "ACO is enabled" - else - echo "ACO is disabled" + export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk_amd.conf" + if [ "${PORTWINE_ACO}" -eq "1" ] + then + export RADV_PERFTEST=aco + echo "ACO is enabled" + else + echo "ACO is disabled" + fi fi fi if [ "${var_dxvk_on}" -eq "1" ] @@ -151,7 +156,6 @@ elif [ "${var_dxvk_on}" -eq "2" ] then export DXVK_HUD="fps,devinfo,version" fi -#export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf" export def_pfx="${PORT_WINE_PATH}data/dist/share/default_pfx/" if [ ! -d "${def_pfx}" ] then