vkd3d: Add VKD3D_CONFIG option to force raw VA CBV descriptors.
For certain ExecuteIndirect() uses, we're forced to use this path since we have no way to update push descriptors indirectly yet. Also, useful for testing performance deltas easily on NV while we're trying to figure out what is going on w.r.t. codegen. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
71940797d1
commit
343437316b
|
@ -90,6 +90,7 @@ enum vkd3d_config_flags
|
|||
VKD3D_CONFIG_FLAG_BREADCRUMBS = 0x04000000,
|
||||
VKD3D_CONFIG_FLAG_PIPELINE_LIBRARY_APP_CACHE_ONLY = 0x08000000,
|
||||
VKD3D_CONFIG_FLAG_SHADER_CACHE_SYNC = 0x10000000,
|
||||
VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV = 0x20000000,
|
||||
};
|
||||
|
||||
typedef HRESULT (*PFN_vkd3d_signal_event)(HANDLE event);
|
||||
|
|
|
@ -652,6 +652,7 @@ static const struct vkd3d_debug_option vkd3d_config_options[] =
|
|||
{"breadcrumbs", VKD3D_CONFIG_FLAG_BREADCRUMBS},
|
||||
{"pipeline_library_app_cache", VKD3D_CONFIG_FLAG_PIPELINE_LIBRARY_APP_CACHE_ONLY},
|
||||
{"shader_cache_sync", VKD3D_CONFIG_FLAG_SHADER_CACHE_SYNC},
|
||||
{"force_raw_va_cbv", VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV},
|
||||
};
|
||||
|
||||
static void vkd3d_config_flags_init_once(void)
|
||||
|
|
|
@ -4676,7 +4676,8 @@ static uint32_t vkd3d_bindless_state_get_bindless_flags(struct d3d12_device *dev
|
|||
* The difference in performance is profound (~15% in some cases).
|
||||
* On ACO, BDA with NonWritable can be promoted directly to scalar loads,
|
||||
* which is great. */
|
||||
if (device_info->properties2.properties.vendorID != VKD3D_VENDOR_ID_NVIDIA)
|
||||
if ((vkd3d_config_flags & VKD3D_CONFIG_FLAG_FORCE_RAW_VA_CBV) ||
|
||||
device_info->properties2.properties.vendorID != VKD3D_VENDOR_ID_NVIDIA)
|
||||
flags |= VKD3D_RAW_VA_ROOT_DESCRIPTOR_CBV;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue