From 8761a04d0d9332d9c0c99164faf855fc3c741f7c Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 18 Oct 2017 18:02:49 -0700 Subject: [PATCH] anv: Add support for the variablePointers feature Not to be confused with variablePointersStorageBuffer which is the subset of VK_KHR_variable_pointers required to enable the extension. This means we now have "full" support for variable pointers. Reviewed-by: Kristian H. Kristensen --- src/intel/vulkan/anv_device.c | 2 +- src/intel/vulkan/anv_pipeline.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 9712415..2e85189 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -728,7 +728,7 @@ void anv_GetPhysicalDeviceFeatures2KHR( case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: { VkPhysicalDeviceVariablePointerFeaturesKHR *features = (void *)ext; features->variablePointersStorageBuffer = true; - features->variablePointers = false; + features->variablePointers = true; break; } diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 827767c..bd9c552 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -133,6 +133,7 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline, } struct spirv_to_nir_options spirv_options = { + .lower_workgroup_access_to_offsets = true, .caps = { .float64 = device->instance->physicalDevice.info.gen >= 8, .int64 = device->instance->physicalDevice.info.gen >= 8, @@ -400,10 +401,8 @@ anv_pipeline_compile(struct anv_pipeline *pipeline, if (stage != MESA_SHADER_COMPUTE) NIR_PASS_V(nir, anv_nir_lower_multiview, pipeline->subpass->view_mask); - if (stage == MESA_SHADER_COMPUTE) { - NIR_PASS_V(nir, brw_nir_lower_cs_shared); + if (stage == MESA_SHADER_COMPUTE) prog_data->total_shared = nir->num_shared; - } nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir)); -- 2.7.4