diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index 205126f195b..57078b2a861 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -79,6 +79,9 @@ EXTENSIONS = [ alias="interlock", features=True, conditions=["$feats.fragmentShaderSampleInterlock", "$feats.fragmentShaderPixelInterlock"]), + Extension("VK_EXT_sample_locations", + alias="sample_locations", + properties=True), Extension("VK_KHR_shader_draw_parameters"), Extension("VK_KHR_sampler_mirror_clamp_to_edge"), Extension("VK_EXT_conditional_rendering", diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 4e82e1a1f5b..9bbb172e8f4 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1209,6 +1209,11 @@ load_device_extensions(struct zink_screen *screen) GET_PROC_ADDR(DestroySwapchainKHR); } + if (screen->info.have_EXT_sample_locations) { + GET_PROC_ADDR(CmdSetSampleLocationsEXT); + GET_PROC_ADDR_INSTANCE(GetPhysicalDeviceMultisamplePropertiesEXT); + } + return true; } diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index ebfd231a2dd..d8610b63dcd 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -159,6 +159,9 @@ struct zink_screen { uint32_t image_view; uint32_t buffer_view; } null_descriptor_hashes; + + PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vk_GetPhysicalDeviceMultisamplePropertiesEXT; + PFN_vkCmdSetSampleLocationsEXT vk_CmdSetSampleLocationsEXT; };