From de1805faedc742e021754b571b5949bed019b38f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 28 Mar 2023 11:37:30 +0200 Subject: [PATCH] radv: enable prologs/epilogs in-memory cache for shader objects Shader objects always use VS prologs/PS epilogs/TCS epilogs. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 9169f99b485..4dcc4725dd5 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -710,7 +710,7 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr bool attachment_vrs_enabled = false; bool image_float32_atomics = false; bool vs_prologs = false; - UNUSED bool tcs_epilogs = false; /* TODO: Enable for shader object */ + bool tcs_epilogs = false; bool ps_epilogs = false; bool global_bo_list = false; bool image_2d_view_of_3d = false; @@ -841,6 +841,15 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr mesh_shader_queries = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: { + const VkPhysicalDeviceShaderObjectFeaturesEXT *features = (const void *)ext; + if (features->shaderObject) { + vs_prologs = true; + tcs_epilogs = true; + ps_epilogs = true; + } + break; + } default: break; }