anv: Implement VK_KHR_vulkan_memory_model

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Caio Marcelo de Oliveira Filho 2019-09-05 11:10:02 -07:00
parent b8784fe652
commit 06aecb14c0
4 changed files with 13 additions and 0 deletions

View File

@ -6,6 +6,7 @@ VK_ANDROID_external_memory_android_hardware_buffer on RADV.
VK_KHR_shader_clock on Intel, RADV.
VK_KHR_shader_float_controls on Intel, RADV.
VK_KHR_spirv_1_4 on Intel, RADV.
VK_KHR_vulkan_memory_model on Intel.
VK_EXT_shader_subgroup_ballot on Intel.
VK_EXT_shader_subgroup_vote on Intel.
VK_EXT_texel_buffer_alignment on RADV.

View File

@ -1270,6 +1270,14 @@ void anv_GetPhysicalDeviceFeatures2(
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: {
VkPhysicalDeviceVulkanMemoryModelFeaturesKHR *features = (void *)ext;
features->vulkanMemoryModel = true;
features->vulkanMemoryModelDeviceScope = true;
features->vulkanMemoryModelAvailabilityVisibilityChains = true;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *features =
(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)ext;

View File

@ -120,6 +120,7 @@ EXTENSIONS = [
Extension('VK_KHR_swapchain', 70, 'ANV_HAS_SURFACE'),
Extension('VK_KHR_uniform_buffer_standard_layout', 1, True),
Extension('VK_KHR_variable_pointers', 1, True),
Extension('VK_KHR_vulkan_memory_model', 3, True),
Extension('VK_KHR_wayland_surface', 6, 'VK_USE_PLATFORM_WAYLAND_KHR'),
Extension('VK_KHR_xcb_surface', 6, 'VK_USE_PLATFORM_XCB_KHR'),
Extension('VK_KHR_xlib_surface', 6, 'VK_USE_PLATFORM_XLIB_KHR'),

View File

@ -168,6 +168,7 @@ anv_shader_compile_to_nir(struct anv_device *device,
};
struct spirv_to_nir_options spirv_options = {
.frag_coord_is_sysval = true,
.use_scoped_memory_barrier = true,
.caps = {
.demote_to_helper_invocation = true,
.derivative_group = true,
@ -206,6 +207,8 @@ anv_shader_compile_to_nir(struct anv_device *device,
.tessellation = true,
.transform_feedback = pdevice->info.gen >= 8,
.variable_pointers = true,
.vk_memory_model = true,
.vk_memory_model_device_scope = true,
},
.ubo_addr_format = nir_address_format_32bit_index_offset,
.ssbo_addr_format =