hk: gate custom border colour emulation on feature

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35181>
diff --git a/src/asahi/vulkan/hk_sampler.c b/src/asahi/vulkan/hk_sampler.c
index cbc57a7..4a30d4d 100644
--- a/src/asahi/vulkan/hk_sampler.c
+++ b/src/asahi/vulkan/hk_sampler.c
@@ -178,7 +178,6 @@
 {
    VK_FROM_HANDLE(hk_device, dev, device);
    struct hk_physical_device *pdev = hk_device_physical(dev);
-   struct hk_instance *instance = (struct hk_instance *)pdev->vk.instance;
    struct hk_sampler *sampler;
    VkResult result;
 
@@ -186,7 +185,7 @@
    if (!sampler)
       return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY);
 
-   bool workaround_rgba4 = instance->workaround_rgba4;
+   bool workaround_rgba4 = dev->vk.enabled_features.customBorderColors;
    bool custom_border =
       uses_border(info) &&
       is_border_color_custom(info->borderColor, workaround_rgba4);
diff --git a/src/asahi/vulkan/hk_shader.c b/src/asahi/vulkan/hk_shader.c
index 9726121..f306d61 100644
--- a/src/asahi/vulkan/hk_shader.c
+++ b/src/asahi/vulkan/hk_shader.c
@@ -224,6 +224,7 @@
 
 enum hk_feature_key {
    HK_FEAT_MIN_LOD = BITFIELD_BIT(0),
+   HK_FEAT_CUSTOM_BORDER = BITFIELD_BIT(1),
 };
 
 static enum hk_feature_key
@@ -232,7 +233,8 @@
    if (!features)
       return ~0U;
 
-   return (features->minLod ? HK_FEAT_MIN_LOD : 0);
+   return (features->minLod ? HK_FEAT_MIN_LOD : 0) |
+          (features->customBorderColors ? HK_FEAT_CUSTOM_BORDER : 0);
 }
 
 static void
@@ -716,7 +718,7 @@
       NIR_PASS(_, nir, agx_nir_lower_image_view_min_lod);
    }
 
-   if (!HK_PERF(dev, NOBORDER)) {
+   if ((features & HK_FEAT_CUSTOM_BORDER) && !HK_PERF(dev, NOBORDER)) {
       NIR_PASS(_, nir, agx_nir_lower_custom_border);
    }