anv: Enable SPV_KHR_16bit_storage and VK_KHR_16bit_storage for SSBO/UBO
Enables SPV_KHR_16bit_storage on gen 8+. VK_KHR_16bit_storage is enabled for SSBO/UBO using the VK_KHR_get_physical_device_properties2 functionality to expose if the extension is supported or not. v2: update due rebase against master (Alejandro) v3: (Jason Ekstrand) - Move this patch up in VK_KHR_16bit_storage series enabling only storageBuffer16BitAccess and uniformAndStorageBuffer16BitAccess. - Only expose VK_KHR_16bit_storage on Gen8+ v4: (Jason Ekstrand) - Squash enable SPV_KHR_16bit_storage into VK_KHR_16bit_storage enablement for SSBO/UBO. Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> Signed-off-by: Alejandro Piñeiro <apinheiro@igalia.com> Signed-off-by: Eduardo Lima Mitev <elima@igalia.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:

committed by
Jose Maria Casanova Crespo

parent
3282309f74
commit
66ce6ce78f
@@ -739,6 +739,19 @@ void anv_GetPhysicalDeviceFeatures2KHR(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: {
|
||||||
|
ANV_FROM_HANDLE(anv_physical_device, pdevice, physicalDevice);
|
||||||
|
|
||||||
|
VkPhysicalDevice16BitStorageFeaturesKHR *features =
|
||||||
|
(VkPhysicalDevice16BitStorageFeaturesKHR *)ext;
|
||||||
|
|
||||||
|
features->storageBuffer16BitAccess = pdevice->info.gen >= 8;
|
||||||
|
features->uniformAndStorageBuffer16BitAccess = pdevice->info.gen >= 8;
|
||||||
|
features->storagePushConstant16 = false;
|
||||||
|
features->storageInputOutput16 = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
anv_debug_ignored_stype(ext->sType);
|
anv_debug_ignored_stype(ext->sType);
|
||||||
break;
|
break;
|
||||||
|
@@ -51,6 +51,7 @@ class Extension:
|
|||||||
# and dEQP-VK.api.info.device fail due to the duplicated strings.
|
# and dEQP-VK.api.info.device fail due to the duplicated strings.
|
||||||
EXTENSIONS = [
|
EXTENSIONS = [
|
||||||
Extension('VK_ANDROID_native_buffer', 5, 'ANDROID'),
|
Extension('VK_ANDROID_native_buffer', 5, 'ANDROID'),
|
||||||
|
Extension('VK_KHR_16bit_storage', 1, 'device->info.gen >= 8'),
|
||||||
Extension('VK_KHR_bind_memory2', 1, True),
|
Extension('VK_KHR_bind_memory2', 1, True),
|
||||||
Extension('VK_KHR_dedicated_allocation', 1, True),
|
Extension('VK_KHR_dedicated_allocation', 1, True),
|
||||||
Extension('VK_KHR_descriptor_update_template', 1, True),
|
Extension('VK_KHR_descriptor_update_template', 1, True),
|
||||||
|
@@ -142,6 +142,7 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline,
|
|||||||
.image_write_without_format = true,
|
.image_write_without_format = true,
|
||||||
.multiview = true,
|
.multiview = true,
|
||||||
.variable_pointers = true,
|
.variable_pointers = true,
|
||||||
|
.storage_16bit = device->instance->physicalDevice.info.gen >= 8,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user