mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-04 08:48:14 +02:00
util: add a separate file for turnip drirc
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41731>
This commit is contained in:
parent
aba4094636
commit
85ac866f5e
3 changed files with 82 additions and 77 deletions
|
|
@ -1394,83 +1394,6 @@ TODO: document the other workarounds.
|
|||
<option name="disable_explicit_sync_heuristic" value="true"/>
|
||||
</application>
|
||||
</device>
|
||||
|
||||
<device driver="turnip">
|
||||
<!-- Up to DXVK version 2.3.0 -->
|
||||
<engine engine_name_match="DXVK" engine_versions="0:8400896">
|
||||
<!--
|
||||
See: https://github.com/doitsujin/dxvk/issues/3861
|
||||
|
||||
The shader-defined array size is entirely meaningless in D3D.
|
||||
-->
|
||||
<option name="tu_allow_oob_indirect_ubo_loads" value="true" />
|
||||
</engine>
|
||||
<engine engine_name_match="DXVK|vkd3d">
|
||||
<!--
|
||||
DXVK and VKD3D-Proton use customBorderColorWithoutFormat and have most of
|
||||
D24S8 images with USAGE_SAMPLED, but never sample it with border color.
|
||||
-->
|
||||
<option name="tu_enable_fast_border_color_for_undefined_formats" value="true" />
|
||||
<!--
|
||||
For sampling, Vulkan requires texture coordinates to be truncated, whereas
|
||||
D3D requires them to be rounded to nearest even value. The former is used by
|
||||
default, the latter is used through this option.
|
||||
-->
|
||||
<option name="tu_use_tex_coord_round_nearest_even_mode" value="true" />
|
||||
|
||||
<!--
|
||||
The hardware algorithm for alpha-to-coverage seems to
|
||||
consistently produce bad results compared to other vendors.
|
||||
Always enabling emulation would potentially regress performance
|
||||
when it is dynamically enabled and off, but both both DXVK and
|
||||
vkd3d-proton are known to compile pipelines with
|
||||
alpha-to-coverage statically disabled.
|
||||
-->
|
||||
<option name="tu_emulate_alpha_to_coverage" value="true" />
|
||||
|
||||
<!--
|
||||
DX games almost always tend to prefer SYSMEM over GMEM, so we just hardcode
|
||||
this for DXVK and VKD3D-Proton.
|
||||
-->
|
||||
<option name="tu_autotune_algorithm" value="prefer_sysmem" />
|
||||
</engine>
|
||||
<engine engine_name_match="vkd3d">
|
||||
<option name="tu_enable_softfloat32" value="true" />
|
||||
</engine>
|
||||
<engine engine_name_match="ANGLE">
|
||||
<!--
|
||||
ANGLE uses customBorderColorWithoutFormat on D24S8 and doesn't check
|
||||
depthStencilSwizzleOneSupport.
|
||||
-->
|
||||
<option name="tu_enable_d24s8_border_color_workaround" value="true" />
|
||||
</engine>
|
||||
<application name="Sons Of The Forest" executable="SonsOfTheForest.exe">
|
||||
<option name="tu_ignore_frag_depth_direction" value="true" />
|
||||
</application>
|
||||
<application name="Yooka-Laylee" application_name_match="YookaLaylee.x86_64">
|
||||
<!--
|
||||
A vertex shader performs OOB UBO reads causing vertex corruption.
|
||||
Disable UBO to const lowering to force bounds checking which
|
||||
fixes the corruption.
|
||||
-->
|
||||
<option name="tu_allow_oob_indirect_ubo_loads" value="true" />
|
||||
</application>
|
||||
<application name="Creed: Rise to Glory" executable="Creed-Win64-Shipping.exe">
|
||||
<option name="tu_ignore_frag_depth_direction" value="true" />
|
||||
</application>
|
||||
<application name="Half-Life: Alyx" application_name_match="hlvr">
|
||||
<option name="tu_emulate_alpha_to_coverage" value="true" />
|
||||
</application>
|
||||
<application name='No Man's Sky' application_name_match='No Man's Sky'>
|
||||
<!-- A lighting CS reducing 8x8 regions with fmin/fmax does a write once per
|
||||
subgroup (assuming 64), or collects the results from two subgroups in the
|
||||
32 subgroup size case. Thus, our 128 subgroup size results in vertical banding
|
||||
when half the 8x8 regions don't get written.
|
||||
-->
|
||||
<option name="tu_restrict_subgroup_size_64" value="true" />
|
||||
</application>
|
||||
</device>
|
||||
|
||||
<device driver="asahi">
|
||||
<!-- Override GL renderer for known web browsers since one or more
|
||||
web security frameworks apparently block clients with "Apple"
|
||||
|
|
|
|||
78
src/util/00-turnip-defaults.conf
Normal file
78
src/util/00-turnip-defaults.conf
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0"?>
|
||||
<driconf>
|
||||
<device driver="turnip">
|
||||
<!-- Up to DXVK version 2.3.0 -->
|
||||
<engine engine_name_match="DXVK" engine_versions="0:8400896">
|
||||
<!--
|
||||
See: https://github.com/doitsujin/dxvk/issues/3861
|
||||
|
||||
The shader-defined array size is entirely meaningless in D3D.
|
||||
-->
|
||||
<option name="tu_allow_oob_indirect_ubo_loads" value="true" />
|
||||
</engine>
|
||||
<engine engine_name_match="DXVK|vkd3d">
|
||||
<!--
|
||||
DXVK and VKD3D-Proton use customBorderColorWithoutFormat and have most of
|
||||
D24S8 images with USAGE_SAMPLED, but never sample it with border color.
|
||||
-->
|
||||
<option name="tu_enable_fast_border_color_for_undefined_formats" value="true" />
|
||||
<!--
|
||||
For sampling, Vulkan requires texture coordinates to be truncated, whereas
|
||||
D3D requires them to be rounded to nearest even value. The former is used by
|
||||
default, the latter is used through this option.
|
||||
-->
|
||||
<option name="tu_use_tex_coord_round_nearest_even_mode" value="true" />
|
||||
|
||||
<!--
|
||||
The hardware algorithm for alpha-to-coverage seems to
|
||||
consistently produce bad results compared to other vendors.
|
||||
Always enabling emulation would potentially regress performance
|
||||
when it is dynamically enabled and off, but both both DXVK and
|
||||
vkd3d-proton are known to compile pipelines with
|
||||
alpha-to-coverage statically disabled.
|
||||
-->
|
||||
<option name="tu_emulate_alpha_to_coverage" value="true" />
|
||||
|
||||
<!--
|
||||
DX games almost always tend to prefer SYSMEM over GMEM, so we just hardcode
|
||||
this for DXVK and VKD3D-Proton.
|
||||
-->
|
||||
<option name="tu_autotune_algorithm" value="prefer_sysmem" />
|
||||
</engine>
|
||||
<engine engine_name_match="vkd3d">
|
||||
<option name="tu_enable_softfloat32" value="true" />
|
||||
</engine>
|
||||
<engine engine_name_match="ANGLE">
|
||||
<!--
|
||||
ANGLE uses customBorderColorWithoutFormat on D24S8 and doesn't check
|
||||
depthStencilSwizzleOneSupport.
|
||||
-->
|
||||
<option name="tu_enable_d24s8_border_color_workaround" value="true" />
|
||||
</engine>
|
||||
<application name="Sons Of The Forest" executable="SonsOfTheForest.exe">
|
||||
<option name="tu_ignore_frag_depth_direction" value="true" />
|
||||
</application>
|
||||
<application name="Yooka-Laylee" application_name_match="YookaLaylee.x86_64">
|
||||
<!--
|
||||
A vertex shader performs OOB UBO reads causing vertex corruption.
|
||||
Disable UBO to const lowering to force bounds checking which
|
||||
fixes the corruption.
|
||||
-->
|
||||
<option name="tu_allow_oob_indirect_ubo_loads" value="true" />
|
||||
</application>
|
||||
<application name="Creed: Rise to Glory" executable="Creed-Win64-Shipping.exe">
|
||||
<option name="tu_ignore_frag_depth_direction" value="true" />
|
||||
</application>
|
||||
<application name="Half-Life: Alyx" application_name_match="hlvr">
|
||||
<option name="tu_emulate_alpha_to_coverage" value="true" />
|
||||
</application>
|
||||
<application name='No Man's Sky' application_name_match='No Man's Sky'>
|
||||
<!-- A lighting CS reducing 8x8 regions with fmin/fmax does a write once per
|
||||
subgroup (assuming 64), or collects the results from two subgroups in the
|
||||
32 subgroup size case. Thus, our 128 subgroup size results in vertical banding
|
||||
when half the 8x8 regions don't get written.
|
||||
-->
|
||||
<option name="tu_restrict_subgroup_size_64" value="true" />
|
||||
</application>
|
||||
</device>
|
||||
</driconf>
|
||||
|
|
@ -217,6 +217,10 @@ if with_amd_vk
|
|||
files_drirc += files('00-radv-defaults.conf')
|
||||
endif
|
||||
|
||||
if with_freedreno_vk
|
||||
files_drirc += files('00-turnip-defaults.conf')
|
||||
endif
|
||||
|
||||
if with_gallium_radeonsi
|
||||
files_drirc += files('00-radeonsi-defaults.conf')
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue