vkd3d: Remove force_bindless_texel_buffer workaround.
Obsolete now that we fully split typed and untyped buffer descriptors. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
57f2124721
commit
a531ee5fd4
|
@ -148,8 +148,6 @@ commas or semicolons.
|
||||||
- `vk_debug` - enables Vulkan debug extensions and loads validation layer.
|
- `vk_debug` - enables Vulkan debug extensions and loads validation layer.
|
||||||
- `skip_application_workarounds` - Skips all application workarounds.
|
- `skip_application_workarounds` - Skips all application workarounds.
|
||||||
For debugging purposes.
|
For debugging purposes.
|
||||||
- `force_bindless_texel_buffer` - Forces use of texel buffers for bindless Raw/Structured buffers.
|
|
||||||
For game workarounds only!
|
|
||||||
- `VKD3D_DEBUG` - controls the debug level for log messages produced by
|
- `VKD3D_DEBUG` - controls the debug level for log messages produced by
|
||||||
vkd3d-proton. Accepts the following values: none, err, info, fixme, warn, trace.
|
vkd3d-proton. Accepts the following values: none, err, info, fixme, warn, trace.
|
||||||
- `VKD3D_SHADER_DEBUG` - controls the debug level for log messages produced by
|
- `VKD3D_SHADER_DEBUG` - controls the debug level for log messages produced by
|
||||||
|
|
|
@ -405,9 +405,6 @@ static const struct vkd3d_debug_option vkd3d_config_options[] =
|
||||||
{
|
{
|
||||||
/* Enable Vulkan debug extensions. */
|
/* Enable Vulkan debug extensions. */
|
||||||
{"vk_debug", VKD3D_CONFIG_FLAG_VULKAN_DEBUG},
|
{"vk_debug", VKD3D_CONFIG_FLAG_VULKAN_DEBUG},
|
||||||
/* Never use VKD3D_BINDLESS_RAW_SSBO.
|
|
||||||
* Works around buggy games which mix typed and raw buffer types. */
|
|
||||||
{"force_bindless_texel_buffer", VKD3D_CONFIG_FLAG_FORCE_BINDLESS_TEXEL_BUFFER},
|
|
||||||
{"skip_application_workarounds", VKD3D_CONFIG_FLAG_SKIP_APPLICATION_WORKAROUNDS},
|
{"skip_application_workarounds", VKD3D_CONFIG_FLAG_SKIP_APPLICATION_WORKAROUNDS},
|
||||||
{"disable_query_optimization", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION},
|
{"disable_query_optimization", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION},
|
||||||
};
|
};
|
||||||
|
@ -433,12 +430,6 @@ struct vkd3d_instance_application_meta
|
||||||
uint64_t global_flags_remove;
|
uint64_t global_flags_remove;
|
||||||
};
|
};
|
||||||
static const struct vkd3d_instance_application_meta application_override[] = {
|
static const struct vkd3d_instance_application_meta application_override[] = {
|
||||||
/* Application uses R32_UINT and misses raw buffer type.
|
|
||||||
* Fixes map rendering. */
|
|
||||||
{ "ds.exe", VKD3D_CONFIG_FLAG_FORCE_BINDLESS_TEXEL_BUFFER, 0 },
|
|
||||||
/* Application has many bugs with descriptor handling.
|
|
||||||
* Not using this triggers weird flickering artifacts which are very distracting. */
|
|
||||||
{ "Cyberpunk2077.exe", VKD3D_CONFIG_FLAG_FORCE_BINDLESS_TEXEL_BUFFER, 0 },
|
|
||||||
/* Game changes render targets while occlusion queries are active */
|
/* Game changes render targets while occlusion queries are active */
|
||||||
{ "ACValhalla.exe", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION, 0 },
|
{ "ACValhalla.exe", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION, 0 },
|
||||||
{ "ACValhalla_Plus.exe", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION, 0 },
|
{ "ACValhalla_Plus.exe", VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION, 0 },
|
||||||
|
|
|
@ -3701,20 +3701,17 @@ static uint32_t vkd3d_bindless_state_get_bindless_flags(struct d3d12_device *dev
|
||||||
device_info->descriptor_indexing_features.shaderStorageBufferArrayNonUniformIndexing)
|
device_info->descriptor_indexing_features.shaderStorageBufferArrayNonUniformIndexing)
|
||||||
flags |= VKD3D_BINDLESS_CBV | VKD3D_BINDLESS_CBV_AS_SSBO;
|
flags |= VKD3D_BINDLESS_CBV | VKD3D_BINDLESS_CBV_AS_SSBO;
|
||||||
|
|
||||||
if (!(device->vkd3d_instance->config_flags & VKD3D_CONFIG_FLAG_FORCE_BINDLESS_TEXEL_BUFFER))
|
/* Normally, we would be able to use SSBOs conditionally even when maxSSBOAlignment > 4, but
|
||||||
|
* applications (RE2 being one example) are of course buggy and don't match descriptor and shader usage of resources,
|
||||||
|
* so we cannot rely on alignment analysis to select the appropriate resource type. */
|
||||||
|
if (device_info->descriptor_indexing_properties.maxPerStageDescriptorUpdateAfterBindStorageBuffers >= 1000000 &&
|
||||||
|
device_info->descriptor_indexing_features.descriptorBindingStorageBufferUpdateAfterBind &&
|
||||||
|
device_info->properties2.properties.limits.minStorageBufferOffsetAlignment <= 16)
|
||||||
{
|
{
|
||||||
/* Normally, we would be able to use SSBOs conditionally even when maxSSBOAlignment > 4, but
|
flags |= VKD3D_BINDLESS_RAW_SSBO;
|
||||||
* applications (RE2 being one example) are of course buggy and don't match descriptor and shader usage of resources,
|
|
||||||
* so we cannot rely on alignment analysis to select the appropriate resource type. */
|
|
||||||
if (device_info->descriptor_indexing_properties.maxPerStageDescriptorUpdateAfterBindStorageBuffers >= 1000000 &&
|
|
||||||
device_info->descriptor_indexing_features.descriptorBindingStorageBufferUpdateAfterBind &&
|
|
||||||
device_info->properties2.properties.limits.minStorageBufferOffsetAlignment <= 16)
|
|
||||||
{
|
|
||||||
flags |= VKD3D_BINDLESS_RAW_SSBO;
|
|
||||||
|
|
||||||
if (device_info->properties2.properties.limits.minStorageBufferOffsetAlignment > 4)
|
if (device_info->properties2.properties.limits.minStorageBufferOffsetAlignment > 4)
|
||||||
flags |= VKD3D_SSBO_OFFSET_BUFFER;
|
flags |= VKD3D_SSBO_OFFSET_BUFFER;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Always use a typed offset buffer. Otherwise, we risk ending up with unbounded size on view maps. */
|
/* Always use a typed offset buffer. Otherwise, we risk ending up with unbounded size on view maps. */
|
||||||
|
|
|
@ -158,9 +158,8 @@ struct vkd3d_vulkan_info
|
||||||
enum vkd3d_config_flags
|
enum vkd3d_config_flags
|
||||||
{
|
{
|
||||||
VKD3D_CONFIG_FLAG_VULKAN_DEBUG = 0x00000001,
|
VKD3D_CONFIG_FLAG_VULKAN_DEBUG = 0x00000001,
|
||||||
VKD3D_CONFIG_FLAG_FORCE_BINDLESS_TEXEL_BUFFER = 0x00000002,
|
VKD3D_CONFIG_FLAG_SKIP_APPLICATION_WORKAROUNDS = 0x00000002,
|
||||||
VKD3D_CONFIG_FLAG_SKIP_APPLICATION_WORKAROUNDS = 0x00000004,
|
VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION = 0x00000004,
|
||||||
VKD3D_CONFIG_FLAG_DISABLE_QUERY_OPTIMIZATION = 0x00000008,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vkd3d_instance
|
struct vkd3d_instance
|
||||||
|
|
Loading…
Reference in New Issue