vkd3d: Add flag to force native FP16 paths.
Apparently RT shaders in RE Engine require min16float to be implemented as native FP16. Fun ... ._. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
afb87e013f
commit
ee39209798
|
@ -90,6 +90,7 @@ extern "C" {
|
|||
#define VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV (1ull << 28)
|
||||
#define VKD3D_CONFIG_FLAG_ZERO_MEMORY_WORKAROUNDS_COMMITTED_BUFFER_UAV (1ull << 29)
|
||||
#define VKD3D_CONFIG_FLAG_ALLOW_SBT_COLLECTION (1ull << 30)
|
||||
#define VKD3D_CONFIG_FLAG_FORCE_NATIVE_FP16 (1ull << 31)
|
||||
|
||||
typedef HRESULT (*PFN_vkd3d_signal_event)(HANDLE event);
|
||||
|
||||
|
|
|
@ -532,7 +532,8 @@ static const struct vkd3d_instance_application_meta application_override[] = {
|
|||
/* Resident Evil: Village (1196590).
|
||||
* Game relies on mesh + sampler feedback to be exposed to use DXR.
|
||||
* Likely used as a proxy for Turing+ to avoid potential software fallbacks on Pascal. */
|
||||
{ VKD3D_STRING_COMPARE_EXACT, "re8.exe", 0, 0, VKD3D_APPLICATION_FEATURE_OVERRIDE_PROMOTE_DXR_TO_ULTIMATE },
|
||||
{ VKD3D_STRING_COMPARE_EXACT, "re8.exe",
|
||||
VKD3D_CONFIG_FLAG_FORCE_NATIVE_FP16, 0, VKD3D_APPLICATION_FEATURE_OVERRIDE_PROMOTE_DXR_TO_ULTIMATE },
|
||||
{ VKD3D_STRING_COMPARE_NEVER, NULL, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -6152,7 +6153,8 @@ static void vkd3d_init_shader_extensions(struct d3d12_device *device)
|
|||
}
|
||||
|
||||
if (device->d3d12_caps.options4.Native16BitShaderOpsSupported &&
|
||||
device->device_info.driver_properties.driverID == VK_DRIVER_ID_MESA_RADV)
|
||||
(device->device_info.driver_properties.driverID == VK_DRIVER_ID_MESA_RADV ||
|
||||
(vkd3d_config_flags & VKD3D_CONFIG_FLAG_FORCE_NATIVE_FP16)))
|
||||
{
|
||||
/* Native FP16 is buggy on NV for now. */
|
||||
device->vk_info.shader_extensions[device->vk_info.shader_extension_count++] =
|
||||
|
|
Loading…
Reference in New Issue