kk: Support VK_EXT_post_depth_coverage
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Requires slightly different declaration of sample mask input.

Reviewed-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41283>
This commit is contained in:
squidbus 2026-04-29 18:52:40 -07:00 committed by Marge Bot
parent 0df9ba3033
commit 279669c0a0
3 changed files with 17 additions and 3 deletions

View file

@ -671,7 +671,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn)
VK_EXT_physical_device_drm DONE (anv, hasvk, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_pipeline_library_group_handles DONE (anv, lvp, radv, vn)
VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu, vn)
VK_EXT_post_depth_coverage DONE (anv/gfx11+, kk, lvp, nvk, radv/gfx10+, tu, vn)
VK_EXT_present_timing DONE (anv, hk, nvk, radv, tu, panvk)
VK_EXT_primitive_restart_index DONE (lvp, radv)
VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn, nvk)

View file

@ -63,14 +63,27 @@ static const char *sysval_table[SYSTEM_VALUE_MAX] = {
"uint mtl_AmplificationID [[amplification_id]]",
[SYSTEM_VALUE_FIRST_VERTEX] = "uint gl_FirstVertex [[base_vertex]]",
};
static const char *sysval_sample_mask_in_post_depth_coverage =
"uint gl_SampleMask [[sample_mask, post_depth_coverage]]";
static void
emit_sysvals(struct nir_to_msl_ctx *ctx, nir_shader *shader)
{
bool is_frag_with_post_depth_coverage =
ctx->shader->info.stage == MESA_SHADER_FRAGMENT &&
ctx->shader->info.fs.post_depth_coverage;
unsigned i;
BITSET_FOREACH_SET(i, shader->info.system_values_read, SYSTEM_VALUE_MAX) {
assert(sysval_table[i]);
P_IND(ctx, "%s,\n", sysval_table[i]);
const char *sysval;
if (is_frag_with_post_depth_coverage &&
i == SYSTEM_VALUE_SAMPLE_MASK_IN)
sysval = sysval_sample_mask_in_post_depth_coverage;
else
sysval = sysval_table[i];
assert(sysval);
P_IND(ctx, "%s,\n", sysval);
}
}

View file

@ -147,6 +147,7 @@ kk_get_device_extensions(const struct kk_instance *instance,
.EXT_load_store_op_none = true,
.EXT_multi_draw = true,
.EXT_mutable_descriptor_type = true,
.EXT_post_depth_coverage = true,
.EXT_shader_atomic_float = true,
.EXT_shader_replicated_composites = true,
.EXT_shader_subgroup_ballot = true,