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 <hoegsberg@google.com>
This commit is contained in:
parent
93b4cb61eb
commit
8761a04d0d
|
@ -728,7 +728,7 @@ void anv_GetPhysicalDeviceFeatures2KHR(
|
||||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: {
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: {
|
||||||
VkPhysicalDeviceVariablePointerFeaturesKHR *features = (void *)ext;
|
VkPhysicalDeviceVariablePointerFeaturesKHR *features = (void *)ext;
|
||||||
features->variablePointersStorageBuffer = true;
|
features->variablePointersStorageBuffer = true;
|
||||||
features->variablePointers = false;
|
features->variablePointers = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,7 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct spirv_to_nir_options spirv_options = {
|
struct spirv_to_nir_options spirv_options = {
|
||||||
|
.lower_workgroup_access_to_offsets = true,
|
||||||
.caps = {
|
.caps = {
|
||||||
.float64 = device->instance->physicalDevice.info.gen >= 8,
|
.float64 = device->instance->physicalDevice.info.gen >= 8,
|
||||||
.int64 = 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)
|
if (stage != MESA_SHADER_COMPUTE)
|
||||||
NIR_PASS_V(nir, anv_nir_lower_multiview, pipeline->subpass->view_mask);
|
NIR_PASS_V(nir, anv_nir_lower_multiview, pipeline->subpass->view_mask);
|
||||||
|
|
||||||
if (stage == MESA_SHADER_COMPUTE) {
|
if (stage == MESA_SHADER_COMPUTE)
|
||||||
NIR_PASS_V(nir, brw_nir_lower_cs_shared);
|
|
||||||
prog_data->total_shared = nir->num_shared;
|
prog_data->total_shared = nir->num_shared;
|
||||||
}
|
|
||||||
|
|
||||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue