vkd3d: Enable VK_EXT_scalar_block_layout.
dxil-spirv can take advantage of this now. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
58aab78a5b
commit
3210832ad9
|
@ -99,6 +99,7 @@ static const struct vkd3d_optional_extension_info optional_device_extensions[] =
|
|||
VK_EXTENSION(EXT_EXTERNAL_MEMORY_HOST, EXT_external_memory_host),
|
||||
VK_EXTENSION(EXT_4444_FORMATS, EXT_4444_formats),
|
||||
VK_EXTENSION(EXT_SHADER_IMAGE_ATOMIC_INT64, EXT_shader_image_atomic_int64),
|
||||
VK_EXTENSION(EXT_SCALAR_BLOCK_LAYOUT, EXT_scalar_block_layout),
|
||||
/* AMD extensions */
|
||||
VK_EXTENSION(AMD_BUFFER_MARKER, AMD_buffer_marker),
|
||||
VK_EXTENSION(AMD_SHADER_CORE_PROPERTIES, AMD_shader_core_properties),
|
||||
|
@ -1261,6 +1262,13 @@ static void vkd3d_physical_device_info_init(struct vkd3d_physical_device_info *i
|
|||
vk_prepend_struct(&info->features2, &info->shader_image_atomic_int64_features);
|
||||
}
|
||||
|
||||
if (vulkan_info->EXT_scalar_block_layout)
|
||||
{
|
||||
info->scalar_block_layout_features.sType =
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT;
|
||||
vk_prepend_struct(&info->features2, &info->scalar_block_layout_features);
|
||||
}
|
||||
|
||||
/* Core in Vulkan 1.1. */
|
||||
info->shader_draw_parameters_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
|
||||
vk_prepend_struct(&info->features2, &info->shader_draw_parameters_features);
|
||||
|
@ -5578,6 +5586,12 @@ static void vkd3d_init_shader_extensions(struct d3d12_device *device)
|
|||
device->vk_info.shader_extensions[device->vk_info.shader_extension_count++] =
|
||||
VKD3D_SHADER_TARGET_EXTENSION_RAY_TRACING_PRIMITIVE_CULLING;
|
||||
}
|
||||
|
||||
if (device->device_info.scalar_block_layout_features.scalarBlockLayout)
|
||||
{
|
||||
device->vk_info.shader_extensions[device->vk_info.shader_extension_count++] =
|
||||
VKD3D_SHADER_TARGET_EXTENSION_SCALAR_BLOCK_LAYOUT;
|
||||
}
|
||||
}
|
||||
|
||||
static bool d3d12_device_supports_feature_level(struct d3d12_device *device, D3D_FEATURE_LEVEL feature_level)
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
#define MAKE_MAGIC(a,b,c,d) (((uint32_t)a) | (((uint32_t)b) << 8) | (((uint32_t)c) << 16) | (((uint32_t)d) << 24))
|
||||
|
||||
#define VKD3D_MAX_COMPATIBLE_FORMAT_COUNT 6u
|
||||
#define VKD3D_MAX_SHADER_EXTENSIONS 4u
|
||||
#define VKD3D_MAX_SHADER_EXTENSIONS 5u
|
||||
#define VKD3D_MAX_SHADER_STAGES 5u
|
||||
#define VKD3D_MAX_VK_SYNC_OBJECTS 4u
|
||||
|
||||
|
@ -147,6 +147,7 @@ struct vkd3d_vulkan_info
|
|||
bool EXT_external_memory_host;
|
||||
bool EXT_4444_formats;
|
||||
bool EXT_shader_image_atomic_int64;
|
||||
bool EXT_scalar_block_layout;
|
||||
/* AMD device extensions */
|
||||
bool AMD_buffer_marker;
|
||||
bool AMD_shader_core_properties;
|
||||
|
@ -2724,6 +2725,7 @@ struct vkd3d_physical_device_info
|
|||
VkPhysicalDeviceComputeShaderDerivativesFeaturesNV compute_shader_derivatives_features_nv;
|
||||
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR shader_atomic_int64_features;
|
||||
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT shader_image_atomic_int64_features;
|
||||
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT scalar_block_layout_features;
|
||||
|
||||
VkPhysicalDeviceFeatures2 features2;
|
||||
|
||||
|
|
Loading…
Reference in New Issue