diff --git a/docs/features.txt b/docs/features.txt index 8396b266c20..81911e32851 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -618,7 +618,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv) VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv) VK_EXT_shader_image_atomic_int64 DONE (nvk, radv) - VK_EXT_shader_object DONE (lvp) + VK_EXT_shader_object DONE (lvp, nvk) VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn) VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn) VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index cf6fc0056ed..aad9b52e31c 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -209,6 +209,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance, nvk_use_nak(info), .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_module_identifier = true, + .EXT_shader_object = true, .EXT_shader_subgroup_ballot = true, .EXT_shader_subgroup_vote = true, .EXT_shader_viewport_index_layer = info->cls_eng3d >= MAXWELL_B, @@ -527,6 +528,9 @@ nvk_get_device_features(const struct nv_device_info *info, /* VK_EXT_shader_module_identifier */ .shaderModuleIdentifier = true, + /* VK_EXT_shader_object */ + .shaderObject = true, + /* VK_EXT_texel_buffer_alignment */ .texelBufferAlignment = true, @@ -854,6 +858,9 @@ nvk_get_device_properties(const struct nvk_instance *instance, .sampleLocationSubPixelBits = 4, .variableSampleLocations = true, + /* VK_EXT_shader_object */ + .shaderBinaryVersion = 0, + /* VK_EXT_transform_feedback */ .maxTransformFeedbackStreams = 4, .maxTransformFeedbackBuffers = 4, @@ -924,6 +931,7 @@ nvk_physical_device_init_pipeline_cache(struct nvk_physical_device *pdev) STATIC_ASSERT(SHA1_DIGEST_LENGTH >= VK_UUID_SIZE); memcpy(pdev->vk.properties.pipelineCacheUUID, sha, VK_UUID_SIZE); + memcpy(pdev->vk.properties.shaderBinaryUUID, sha, VK_UUID_SIZE); #ifdef ENABLE_SHADER_CACHE char renderer[10];